DNSMasq vs Vincular para bloqueio de URL de DNS simples

2

Estou criando um servidor de DNS que bloqueará o acesso a sites específicos, retornando um endereço IP incorreto para um domínio.

Atualmente eu uso o DNSMasq para executar isso, no entanto, minha lista é silenciosa e eu estou olhando para mover para ligar para executar essa função. Embora o DNSMasq lide bem com a lista grande, ela tem algumas limitações que forçam minha escolha. Para fazer isso em um domínio inteiro no DNSMasq eu simplesmente adiciono uma linha no arquivo de configuração da seguinte forma:

address=/url.com/1.2.3.4

Isso sempre retornará 1.2.3.4 para *.url.com

Estou procurando ajuda com o seguinte:

  1. Como posso conseguir uma configuração de zona muito básica para o BIND que realizará uma coisa semelhante?
  2. Lembrando que minha lista de domínios é de 1000000+ registros
  3. Posso ter apenas uma zona mestre e uma lista de domínios grande que será incluída nesta zona?

felicidades

pjf

    
por pjf 01.05.2014 / 06:34

1 resposta

2

Assumindo que a lista negra do DNS não é uma maneira de impedir que alguém chegue a um site se realmente quiser, mas é útil para lidar com softwares mal-intencionados e casual tentativas de chegar a um mau site ...

Zonas de política de resposta (RPZ)

O RPZ permite criar um arquivo de zona que define as regras de reconfiguração de respostas. Estes foram implementados na versão 9.8.1.

Digamos que você queira bloquear badrecord.example.com. , que tem um endereço IP de 198.51.100.1 . O IP real não importa aqui, mas fornece um para ajudar a reforçar o que acontece.

options {
    # Snip.
    response-policy { zone "mypolicy"; };
};

zone "mypolicy" {
    type master;
    file "mypolicy.zone";
    allow-query { none; };
};

O arquivo de zona seria parecido com:

$TTL 1H
@                       SOA LOCALHOST. doesnt.really.matter.example.org. (1 1h 15m 30d 2h)

                        ; NS required for zone syntax reasons, but ignored
                        NS  LOCALHOST.

; CNAME bad reply to a DNS record that isn't in this file
badrecord.example.com.  CNAME mywalledgarden.example.edu.

; replace bad reply with fixed IP address
badrecord2.example.com. A     203.0.113.1

; rewrite the top of a bad domain, as well as all records immediately
; beneath the apex. (i.e. not further than one level deep)
example.net.            A     203.0.113.1
*.example.net.          A     203.0.113.1

Observações:

  • "mypolicy" é uma zona DNS real. Você pode usar as transferências de zona para distribuí-lo pelo ambiente e controlar os dados de um único servidor.
  • Os usuários não podem consultar diretamente a zona devido à regra allow-query .
  • Essas regras não bloqueiam consultas , mas qualquer resposta a uma consulta que normalmente conteria os dados incorretos será reescrita. Um efeito colateral disso é que uma solicitação de um registro inexistente retornará NXDOMAIN corretamente. Você só modificará a resposta se for possível para um cliente obter uma resposta contendo dados inválidos.
  • As regras usuais para correspondência de caractere curinga de DNS se aplicam.

Estas não são as únicas reescritas que você pode realizar. Para obter a sintaxe e os aplicativos em potencial, recomendo que você consulte o BIND ARM.

Você pode encontrar alguns guias na Internet que sugerem coisas como a criação de uma zona raiz ( . ) ou a criação de uma zona para cada domínio que você precisa bloquear. Não faça isso. É uma maneira mais antiga e desleixada de fazer coisas que os administradores de DNS recorreram por falta de opções melhores. Se o RPZ é uma opção e cobre suas necessidades, use-o. Se você não for autoritativo para o domínio, não se configure para ser autoritário.

    
por 01.05.2014 / 07:10