Sie sind auf Seite 1von 3

Bloqueando por domnios ou palavras

O Squid permite bloquear sites indesejados de forma bastante simples usando o parmetro "dstdomain". Ele permite que voc crie acl's contendo endereos de sites que devem ser bloqueados (ou permitidos). Isso feito em duas etapas. Primeiro voc cria a acl, especificando os endereos e, em seguida, usa o parmetro "http_access" para bloquear ou liberar o acesso a eles. Veja um exemplo: acl bloqueados dstdomain orkut.com playboy.abril.com.br http_access deny bloqueados Aqui eu criei uma acl chamada "bloqueados", que contm os endereos "orkut.com" e "playboy.abril.com.br" e em seguida usei o parmetro "http_access deny" para bloquear o acesso a eles. Voc pode incluir diversas acls diferentes dentro da configurao do Squid, desde que use um nome diferente para cada uma. De certa forma, elas so similares s variveis, que usamos ao programar em qualquer linguagem. Ao aplicar a regra, o Squid faz a resoluo do domnio e passa a bloquear todas sub-pginas que estiverem hospedadas dentro dele. Existe uma ressalva: muitos sites podem ser acessados tanto com o "www" quanto sem. Se os dois estiverem hospedados em servidores diferentes, o Squid considerar que tratam-se de dois sites diferentes, de forma que ao bloquear apenas o "www.orkut.com" os usurios ainda conseguiro acessar o site atravs do "orkut.com" e vice-versa. Nesses casos, para bloquear ambos, preciso incluir as duas possibilidades dentro da regra, como em: acl bloqueados dstdomain orkut.com www.orkut.com playboy.abril.com.br http_access deny bloqueados Voc pode incluir quantos domnios quiser dentro da acl, basta separ-los por espao e deixar tudo na mesma linha. Se a regra comear a ficar muito grande, voc tem a opo de transferir as entradas para um arquivo. Nesse caso, crie um arquivo de texto simples, com todos os domnios desejados (um por linha), como em: orkut.com www.orkut.com playboy.abril.com.br www.myspace.com ... e use a regra abaixo na configurao do Squid para que ele seja processado e os domnios sejam includos na acl. No exemplo, estou usando o arquivo "/etc/squid/bloqueados": acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados Naturalmente, no seria vivel tentar bloquear manualmente todos os sites pornogrficos, chats, comunidades online, e todos os outros tipos de sites que no so teis em um ambiente de trabalho. A idia seria logar os acessos (com a ajuda do Sarg, que veremos mais adiante) e bloquear os sites mais acessados, conforme tomar conhecimento deles. sempre uma corrida de gato e rato, mas, em se tratando de pessoas adultas, no h nada que uma boa conversa com o chefe no possa resolver. ;) De qualquer forma, em alguns ambientes pode ser mais fcil bloquear inicialmente o acesso a todos os sites e ir abrindo o acesso a apenas alguns sites especficos, conforme a necessidade. Neste caso, invertemos a lgica da regra. Criamos um arquivo com sites permitidos, adicionamos a regra que permite o acesso a eles e em seguida bloqueamos o acesso a todos os demais, como neste exemplo: acl permitidos url_regex -i "/etc/squid/permitidos" http_access allow permitidos http_access deny all Nas verses recentes do Squid, ao bloquear um domnio automaticamente bloqueado tambm o endereo IP do servidor correspondente. Isso evita que os usurios da rede consigam burlar o proxy, acessando os sites diretamente pelo IP. De qualquer forma, voc pode criar diretamente regras que bloqueiem determinados endereos IP, o que til em casos de servidores sem domnio registrado, ou que respondam por vrios domnios. Nesse caso, a regra ficaria: acl ips-bloqueados dst 200.234.21.23 200.212.15.45 http_access deny ips-bloqueados Voc pode descobrir rapidamente o endereo IP de um determinado domnio usando o comando "host", como em: $ host google.com google.com A 72.14.207.99 google.com A 64.233.187.99 google.com A 64.233.167.99 Depois de adicionar as novas regras, nosso arquivo de configurao ficaria assim: http_port 3128 visible_hostname gdh error_directory /usr/share/squid/errors/Portuguese/ cache_mem 64 MB maximum_object_size_in_memory 64 KB maximum_object_size 512 MB minimum_object_size 0 KB cache_swap_low 90 cache_swap_high 95 cache_dir ufs /var/spool/squid 2048 16 256

cache_access_log /var/log/squid/access.log refresh_pattern ^ftp: 15 20% 2280 refresh_pattern ^gopher: 15 0% 2280 refresh_pattern . 15 20% 2280 acl acl acl acl acl acl acl all src 0.0.0.0/0.0.0.0 manager proto cache_object localhost src 127.0.0.1/255.255.255.255 SSL_ports port 443 563 Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535 purge method PURGE CONNECT method CONNECT allow manager localhost deny manager allow purge localhost deny purge deny !Safe_ports deny CONNECT !SSL_ports

http_access http_access http_access http_access http_access http_access

acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all Veja que coloquei as duas regras antes do "http_access allow redelocal", que abre tudo para a rede local. Como o Squid processa as regras seqencialmente, as pginas que forem bloqueadas pela acl "bloqueados" no chegam a passar pela regra que autoriza os acessos provenientes da rede local. Uma segunda possibilidade usar o parmetro "dstdom_regex", que permite bloquear sites de uma forma mais geral, com base em palavras includas na URL de acesso. Voc pode bloquear todas as pginas cujo endereo inclua a palavra "sexo" ou "orkut", por exemplo. Note que, ao usar esta regra, o Squid verifica a existncia das palavras apenas na URL do site e no no contedo da pgina. Para criar filtros baseados no contedo, voc pode utilizar o DansGuardian, que veremos mais adiante. Crie mais um arquivo de texto, contendo as palavras que devem ser bloqueadas, uma por linha, como em: orkut xxx sexo teens warez ... e adicione a regra abaixo, contendo a localizao do arquivo: acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas" http_access deny palavrasproibidas O uso desta regra um pouco mais problemtico, pois bloquear todas pginas que contenham qualquer uma das palavras listadas na URL. Esta opo sempre levar a alguns falsos positivos e por isso deve ser usada com mais cuidado. Uma vantagem que ela permite bloquear facilmente pginas dinmicas, onde a palavra passada como parmetro da URL. Um exemplo o Orkut, onde, depois da transferncia para o Google, os domnios principais passaram a encaminhar para URLs dinmicas dentro do domnio 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%252F www.orkut.com%252FHome.aspx&hl=pt-BR&rm=false&passive=true Voc no poderia simplesmente bloquear o domnio "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 servios do Google. No existe problema em combinar o bloqueio de domnios e de palavras dentro da URL, voc pode lanar mo de uma combinao das duas coisas, de acordo com a situao. Para isso, basta usar as duas regras simultaneamente, como em: acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas" http_access deny palavrasproibidas acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal http_access deny all Includas as regras, os clientes passam a ver uma mensagem de erro ao tentar acessar pginas que se enquadrem nos bloqueios:

Por padro, as mensagens de erro aparecerem em ingls. No nosso caso elas esto aparecendo em portugus devido linha "error_directory /usr/share/squid/errors/Portuguese/" que inclu no modelo de configurao anterior. Voc pode personalizar as pginas de erro editando os arquivos dentro da pasta "/usr/share/squid/errors/Portuguese" ou "/usr/share/squid/errors/English" (de acordo com a lngua definida na configurao). A pasta contm vrias pginas html, uma para cada tipo de erro indicado.

Das könnte Ihnen auch gefallen