Servidor DNS para colocar na lista negra vários domínios e também alguns TLDs

4

Estou tentando configurar um servidor DNS básico para minha lan que é capaz de colocar em um nulo ou 127.0.0.1 muitos domínios.

Os domínios que eu quero bloquear vêm de uma lista, mas eu também quero bloquear alguns domínios usando expressões regulares (isso é obrigatório para minha configuração).

Meu candidato a software para fazer esse negócio parecia ser Unbound, um servidor DNS seguro de cache recursivo com várias funções úteis.

No entanto, o Unbound não parece apoiar nenhuma expressão regular!

Além disso, o não consolidado é muito exigente quando se trata de repetições de zonas. Minha lista de domínios é criada a partir de muitas fontes mistas para que eu possa ter muitas repetições que eu filtre com alguns scripts, mas também com domínios da lista como:

aaah.very.this.com

mas também

very.this.com

Este lead Unbound grita por erros porque há uma repetição de zona.

Embora esse seja um problema menor, que eu possa remover limpando ainda melhor a lista de domínios, meu principal problema é a falta de regexp para lidar com as solicitações de domínio.

Posso de alguma forma bloquear todos os * .com ou * .biz ou coisas assim?

[\w\.\-]+.com A 127.0.0.1
[\w\.\-]+.com AAAA ::1

Meu regex é um exemplo, eu poderia ir com os mais complexos ...

BÔNUS

Eu posso fazer algo ainda mais desagradável? Tem tudo apontando para nullroute ou 127.0.0.1 e APENAS uma whitelist de domínios é resolvida sendo encaminhada para um DNS externo?

Se responder, por favor, não esqueça essa pergunta extra, pois sou muito interessante em saber a resposta.

O que eu posso fazer? Bind9, dnsmasq, unbound, pdns-recursor ...

    
por user3450548 08.03.2016 / 11:37

1 resposta

4

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.

    
por 08.03.2016 / 12:38