Interceptar domínios / solicitações no nível de serviço DNS ou redirecionar rotas de netblocks IP para 127.0.0.1 / null route são duas coisas muito diferentes.
Do meu ponto de vista, o nível de DNS é mais eficiente e mais leve em recursos.
No nível de IP / blocos de rota nula, mais eficazmente, no entanto, é mais difícil de gerenciar e um pouco mais pesado no uso da CPU quando usado em uma escala mais ampla.
Por favor, tenha em mente que o uso de listas negras no nível do DNS geralmente pode alcançar nomes no intervalo de centenas de milhares, e não é viável ter tabelas de roteamento tão grandes.
Eu mesmo tenho investigado fazendo listas negras via dnsmasq ou BIND. Eu uso listas negras de DNS para anúncios, malware e para bloquear minha casa de chamadas de TV inteligente (sites da LG).
Acabei usando a Response Policy Zone no BIND porque ela permite alguns regexps simples, como * no final dos nomes, o que reduz bastante o tamanho da lista negra. Zonas de política de resposta do DNS
Por favor, tenha em mente que o RPZ no BIND é suportado a partir do 9.8+ BIND, o que deve ser o caso em qualquer distribuição Linux moderna.
Como tenho a funcionalidade RPZ configurada, os nomes de domínios / DNS que correspondem à string / regexp simplesmente são respondidos como inexistentes pelo servidor DNS BIND. Todos os outros nomes que não correspondem são resolvidos pelo processo normal.
Como um pequeno exemplo de algumas linhas do meu /etc/bind/rpz.db
:
*.ad.lgappstv.com CNAME .
*.yumenetworks.com CNAME .
*.smartclip.net CNAME .
*.smartshare.lgtvsdp.com CNAME .
*.ibis.lgappstv.com CNAME .
*.doubleclick.net CNAME .
*.l.doubleclick.net CNAME .
*.302br.net CNAME .
*.liveadvert.com CNAME .
*.easysuperdownload-1.com CNAME .
*.easysuperdownload-2.com CNAME .
*.itrackpop.com CNAME .
Usando seu exemplo:
*.this.com CNAME .
*.biz CNAME .
Por favor, note que pode não ser a melhor das ideias para bloquear TLDs inteiros.
O BIND não é tão exigente quanto o Unbound sobre repetições. Isso permitirá que aaaa.this.com e this.com; no entanto, isso não permitirá que this.com seja definido mais de uma vez.
Quanto à configuração do próprio RPZ, vou encaminhá-lo para a minha resposta sobre esta questão no Unix & Linux Arquivo de zona grande para bind9: bloqueio de anúncios
Para um projeto semelhante feito usando um PI de framboesa, por favor, veja: Pi-buraco: um buraco negro para anúncios da Internet Esse projeto vai também direcioná-lo para algumas listas negras livres conhecidas.
Em link
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
# Other lists we consider safe:
http://adblock.gjtech.net/?format=unix-hosts
http://mirror1.malwaredomains.com/files/justdomains
http://sysctl.org/cameleon/hosts
https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
# hosts-file.net list. Updated frequently, but has been known to block legitimate sites.
http://hosts-file.net/ad_servers.txt
# Mahakala list. Has been known to block legitimage domains including the entire .com range.
# Warning: Due to the sheer size of this list, the web admin console will be unresponsive.
#http://adblock.mahakala.is/
# ADZHOSTS list. Has been known to block legitimate domains
#http://optimate.dl.sourceforge.net/project/adzhosts/HOSTS.txt
# Windows 10 telemetry list - warning this one may block windows update
#https://raw.githubusercontent.com/crazy-max/HostsWindowsBlocker/master/hosts.txt
# Securemecca.com list - Also blocks "adult" sites (pornography/gambling etc)
#http://securemecca.com/Downloads/hosts.txt
# Quidsup's tracker list
https://raw.githubusercontent.com/quidsup/notrack/master/trackers.txt
Quanto à lista de permissões, aparentemente isso pode ser feito.
Se feito em um domínio por domínio, é uma questão de configurar um servidor DNS BIND proxy, que não tenha as dicas dos servidores de nomes raiz.
No entanto, cada domínio permitido deve ser criado com encaminhadores para um DNS que fala com o exterior. Este artigo teórico resume muito bem a ideia. Use listas de permissões de DNS para impedir o malware em suas trilhas
Usando o RPZ no BIND novamente para o nosso resgate, a configuração pode ser muito mais simples e sem a necessidade de configurar um servidor DNS proxy.
Como uma variação na configuração desta página, RPZ revisitado , você terá um normalmente configurado BIND, com listas brancas RPZ, e então você vai escurecer tudo na política normal de rpz (por exemplo, * ou . ).
options {
....
response-policy {
zone "rpz-white" policy PASSTHRU; // my own white list
zone "rpz-foreign"; // obtained from producer
};
}
Se a abordagem denunciar tudo é certamente insana, a lista de permissões pode ser usada para isentar um domínio específico que está sendo atingido por uma correspondência mais ampla da lista negra.