Como bloquear nomes de host com curingas ou Regex?

2

Atualmente, uso um grande /etc/hosts para bloquear nomes de host indesejados. Mas o arquivo está ficando cada vez maior, fechando 700.000 entradas. Existem muitas entradas similares, então eu gostaria de usar curingas como *.co.kr porque eu não falo coreano. Também os nomes de host que começam com um dígito ou têm mais de 64 caracteres são provavelmente os que eu quero bloquear.

AFAIK /etc/hosts não fornece essa funcionalidade. Eu acho que é necessário algum tipo de DNS deamon. Alguma idéia?

Edit: Eu escolhi o tld coreano apenas como exemplo. Meu /etc/hosts está ficando maior e maior e mais difícil de manter. A maioria dos nomes de host ali poderia ser reduzida a um pequeno conjunto de regras.

    
por aggsol 08.08.2017 / 08:56

2 respostas

2

A resolução de nomes é uma maneira muito ruim de bloquear o tráfego indesejado da web. A lista de coisas para bloquear e não bloquear continua mudando, e às vezes você precisa bloquear por URL e não apenas por host. As extensões do navegador, como o AdBlock * e o uBlock *, tendem a fazer um trabalho muito melhor. Se você quiser escrever sua própria lista, você pode escrever um arquivo PAC .

Se você realmente quiser bloquear solicitações com base em nomes de domínio, faça isso com um proxy DNS, não com /etc/hosts . /etc/hosts só pode fazer hosts individuais. O Dnsmasq é um proxy DNS popular e leve. Algumas distribuições configuram o dnsmasq por padrão; a maioria das distribuições tem isso como um pacote. Para fazer um domínio inteiro aparecer como localhost com dnsmasq, você pode usar a seguinte linha em /etc/dnsmasq.conf :

address=/co.kr/127.0.0.2
    
por 09.08.2017 / 01:58
1

A filtragem de DNS é uma ideia errada, consulte link

No entanto, você pode conseguir parte de sua solução usando o bind e seu recurso RPZ, consulte o link

    
por 09.08.2017 / 23:44