Anti-Ad com SquiD
Publicado por pitombera em Setembro 2, 2008
Introdução
O squid proxy pode pegar uma lista de ips vinda de um arquivo texto e bloquear estes ips para os clientes usando o proxy. Isto é perfeito para o bloqueio de servidores “ad”. Seus clientes não serão mais importunados com ads, diminuirá o consumo de banda e você não terá que se preocupar se seus clientes vão clicar em qualquer coisa animada que apareça. Este script funciona de forma semelhante ao SafeSquid, mas te dá total controle sobre a lista de ips.
Iniciando
As seguintes linhas precisam ser adicionadas ao seu squid.conf. Vamos considerar que seu squid.conf esteja em ‘/etc/squid/’ e você irá colocará sua lista de servidores ad( ad_block.txt) no mesmo diretório.
A primeira linha abaixo é apenas um comentário para você lembrar de onde está pegando a lista de ips. A segunda linha é uma expressão regular que lê o arquivo “/etc/squid/ad_block.txt” quando o daemon do squid é carregado ou quando você reconfigura o squid com “squid -k reconfigure”. A última linha é uma instrução para que o squid bloqueie o acesso aos ips dos servidores ads.
## disable ads ( http://pgl.yoyo.org/adservers/ )
acl ads dstdom_regex “/etc/squid/ad_block.txt”
http_access deny ads
Baixando a lista de servidores Ad
Agora nós precisamos baixar a lista com os ips dos servidores ad e adaptar para o formato suportado pelo squid. O seguinte script irá fazer isso por nós. Primeiro o script faz o download da lista em pgl.yoyo.org com o wget e salva em /tmp/tmp_ad_file, depois as linhas que não queremos( html e outras coisas) são removidas com o grep e o resultado salvo em ‘/etc/squid/ad_block.txt’. Por último, o script recarrega o squid com um ’squid -k reconfigure’ para que a lista seja atualizada e remove o arquivo temporário.
Criando um erro personalizado
Vá ao diretório de erros, é o valor de ‘error_directory’ que é setado no seu squid.conf, no meu caso foi “/usr/local/etc/squid/errors/Portuguese”; eu optei por copiar o ‘ERR_ACCESS_DENIED’ para ERR_AD_DENIED e editar à meu gosto.
Adicione ao squid.conf :
deny_info ERR_AD_DENIED ads
mais info em: http://www.squid-cache.org/Versions/v2/2.7/cfgman/deny_info.html
Automatizando com o cron
O ideal é que você tenha uma lista atualizada sempre, o site de onde pegamos a lista(pgl.yoyo.org) atualiza-a em média cada três(3) dias. Abaixo segue a regra para ter um job no cron a cada 3 dias ás 5:35 da manhã. Use o ‘crontab -e’ como root e adicione:
#minute (0-59)
#| hour (0-23)
#| | day of the month (1-31)
#| | | month of the year (1-12 or Jan-Dec)
#| | | | day of the week (0-6 with 0=Sun or Sun-Sat)
#| | | | | commands
#| | | | | |
#### refresh squid’s anti-ad server list
35 5 * * */3 /scripts_dir/ad_servers_newlist.sh >> /dev/null 2>&1
*Diretório onde o script está contido.
Exemplo
Links
Créditos
“A César o que é de César.”
Essa é uma tradução/adaptação do artigo publicado em https://calomel.org/squid_adservers.html
“That’s all folks”


Sryche’s Blog » Blog Archive » Rapidinhas disse
[...] minhas andanças virtuais, achei(e fui recomendado) com dois tutoriais ótimos sobre ele, um sobre como criar um Anti-Ad e um explicando como criar um esquema de cache para [...]