Filtrando acessos com Squid
Uma das obrigações de um Administrador de Sistemas em alguns ambientes é controlar o que deve ou não deve ser acessível na internet a partir da rede interna.
Criando as acl's (access control list's)
As acl's são listas de controle de acesso onde pode facilitar muito a administração do arquivo de configuração, por exemplo, imagina o administrador tendo que escrever 1000 palavras que serão bloqueadas, url's que surgem a cada dia, liberar novas url's que por ventura venham ser bloqueadas, conhecidas como falso positivo. As acl's neste caso facilitam muito na administração, pois basta criar uma arquivo, inserir o que se deseja bloquear ou liberar e indicar o mesmo no arquivo de configuração.
# mkdir acl
# cd acl
# touch palavras_bloqueadas.acl
# touch extensoes_bloqueadas.acl
# touch url_bloqueadas.acl
# touch url_liberadas.acl
# touch url_trabalho.acl
# touch url_horario.acl
Com um editor de texto de sua escolha insira as seguintes linhas
# vi squid.conf
acl rede src 192.168.0.0/24
acl url_bloqueadas dstdomain "/etc/squid/acl/url_bloqueadas.acl"
acl url_liberadas dstdomain "/etc/squid/acl/url_liberadas.acl"
acl url_trabalho dstdomain "/etc/squid/acl/url_trabalho.acl"
acl palavras_bloqueadas dstdom_regex -i "/etc/squid/acl/palavras_bloqueadas.acl"
acl extensoes_bloqueadas url_regex -i "/etc/squid/acl/extensoes_bloqueadas.acl"
dstdomain e url_regex - Quanto ao dstdomain e url_regex, o dstdomain vc bloqueia um domínio (.orkut.com), e o url_regex você bloqueia por pedaços da URL. Por exemplo se vc quer bloquear o dominio todo do terra, você pode usar o dstdomain colocando ".terra.com.br". Mas se vc quiser bloquear todos os portais que tenham CHAT, você bloqueia no URL_REGEX a palavra chat, aí ele bloqueia o chat do Terra, do Uol, da Globo, etc.. (Terra Chat, Bate-papo UOL, etc.)
Em suma, dstdomain bloqueia DOMINIOS, url_regex bloqueia PALAVRAS contidas na url toda.
dstdom_regex - O uso desta regra é um pouco mais problemático, pois bloqueará todas páginas que contenham qualquer uma das palavras listadas na URL. Esta opção sempre levará a alguns falsos positivos e por isso deve ser usada com mais cuidado.
Uma vantagem é que ela permite bloquear facilmente páginas dinâmicas, onde a palavra é passada como parâmetro da URL. Um exemplo é o Orkut, onde, depois da transferência para o Google, os domínios principais passaram a encaminhar para URLs dinâmicas dentro do domínio do Google, como em:
https://www.google.com/accounts/ServiceLogin?service=orkut&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin.aspx%3Fmsg%3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.com%252FHome.aspx&hl=pt-BR&rm=false&passive=true
Você não poderia simplesmente bloquear o domínio "google.com" usando uma regra url_regex, mas poderia muito bem usar o dstdom_regex para bloquear a palavra "orkut" e assim bloquear o acesso ao site sem bloquear o acesso a outros serviços do Google.
-i - Indica que não será respeitado o case-sensitive.
http_access deny !rede
http_access deny rede url_bloqueadas
http_access deny rede palavras_bloqueadas
http_access deny rede extensoes_bloqueadas
http_access allow rede url_trabalho
# libera tudo pra rede exceto as url_bloqueadas e palavras_bloqueadas
http_access allow rede !url_bloqueadas !palavras_bloqueadas
http_access allow rede url_liberadas
http_access allow rede
http_access deny all
icp_access allow all
Salve e saia do arquivo de configuração
É necessário preencher as acl's antes de reiniciar o squid, use um editor de texto de sua preferencia e preencha cada arquivo antes criado.
# echo “.jpeg$” > extensoes_bloqueadas.acl
# echo “.microsoft.com” > url_bloqueadas.acl
# echo “.orkut.com” > url_horario.acl
# echo “.bb.com.br” > url_trabalho.acl
# echo “.caixa.com.br” >> url_trabalho.acl
# echo “sexo” > palavras_bloqueadas.acl
# echo “sexy” >> palavras_bloqueadas.acl
A mensagem abaixo é mostrada quando é encontrado uma acl vazia.
# squid -k parse
2009/02/05 00:19:39| aclParseAclLine: WARNING: empty ACL: acl url_liberadas dstdomain "/etc/squid/acl/url_liberadas.acl"
2009/02/05 00:19:39| ACL name 'autenticados' not defined!
FATAL: Bungled squid.conf line 48: http_access allow autenticados
Squid Cache (Version 2.6.STABLE18): Terminated abnormally.
Preencha a acl e reconfigure o squid.
# squid -k parse
# squid -k reconfigure
0 comentários:
Postar um comentário