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?
- 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.
- Criei um script.
- 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