Bloqueando ADS com o OPNSense

Sim! Confessarei! Sou fã de BSD, software livre e tudo o que incentive a liberdade e a autodeterminação.

Bom, o lance é que use OPNSense em algumas redes e preciso bloquear – de forma centralizada – o tráfego para determinados sites, em especial os de propaganda e mineração.

Sem explicar os pormenores, todo santo dia meu servidor cria uma lista atualizada com um arquivo em formato hosts que pode ser injetado no /etc/hosts do OPNSense (ou qualquer outro BSD/Linux, ou no seu micro Windows, enfim, onde lhe for mais útil) Essa lista pode ser obtida aqui: http://w2.inovacaosistemas.com.br/network-tools/blocklist.hosts e não posso me responsabilizar pelo seu conteúdo já que ele na realidade mama de varios serviços que me são úteis mas não tenho como garantir que a lista seja exaustiva, digna de confiança ou coisa assim. Todavia, o que lhe deve interessar é que uso ela há alguns anos e durmo tranquilo.

Bem, mas como fazer com que essa lista vá para o OPNSense?

  1. Modifiquei meu /etc/hosts para que tenha uma marca de fim de arquivo. Eu inventei essa marca assim: ###END. Isso porque no /etc/hosts o símbolo ‘#’ é um comentário. Acrescentei essa marca depois dos hosts que são da rede interna.
  2. Criei um script.
  3. Coloquei ele para rodar cedo pela manhã

O script ficou assim:

curl http://w2.inovacaosistemas.com.br/network-tools/blocklist.hosts -o /tmp/anti-ads.hosts &&
grep -B10000 \#\#\# /etc/hosts > /tmp/hosts.orig &&
cat /tmp/hosts.orig > /etc/hosts &&
cat /tmp/anti-ads.hosts >> /etc/hosts &&
service -R dnsmasq

E a entrada no crontab ficou assim:

45	6	*	*	*	(/home/esteban/puxarListaAntiAds.sh) > /dev/null

(Sim, ele roda como root mas reside em minha pasta local)

 

Espero que ajude