É possível criar seu próprio servidor DNS raiz?

14

Estou curioso. Eu continuo lendo sobre como nossos ISPs e intermediários da Internet registram e acompanham todas as solicitações de DNS, basicamente deixando um rastro de migalhas de pão em muitos logs e também permitindo o seqüestro de DNS para fins de publicidade (estou olhando para você Cox Communications!).

Independentemente de outros métodos de privacidade / segurança, gostaria especificamente de saber se é possível executar um servidor DNS em sua própria rede local, que realmente possui as informações de zona dos servidores DNS raiz (para .com, .net ,. org) domínios.

Eu sei que você pode configurar o DNS que basicamente apenas mapeia máquinas em seu domínio, mas é possível solicitar basicamente uma cópia / transferência das informações de DNS raiz para serem armazenadas em seu próprio servidor DNS, para que você possa ignorar a saída da Internet para DNS informações para navegação na web?

Espero estar sendo claro. Não quero que meu servidor DNS tenha apenas informações sobre minha rede interna - desejo que ele tenha informações duplicadas que os grandes servidores DNS da Internet possuem, mas gostaria que essas informações localmente no meu servidor DNS.

Existe algo como transferências da Zona BGP, mas para DNS?

Atualização: Existem produtos / software OSS que podem basicamente "arrastar" essas informações da cadeia DNS externa para o cache local em grandes quantidades, para que estejam prontas quando você precisar delas, ou armazenadas em cache quando solicitadas explicitamente os registros de domínio?

pythonnewbie
fonte

Respostas:

12

O DNS por design não permite ter uma cópia autorizada de todas as zonas, pois utiliza um sistema de nomeação hierárquico.

Os servidores raiz têm autoridade para identificar o servidor responsável pelo domínio de nível superior (TLD) em questão. Por exemplo, a resolução www.example.netconsultará primeiro um servidor raiz para identificar o servidor de nomes autoritativo .net. O .netservidor de nomes identificará o servidor de nomes autoritativo para example.net, o qual retornará o registro para www.example.net.

Você não pode baixar uma cópia de todas as zonas. No entanto, você pode executar um servidor de nomes de armazenamento em cache local. O servidor de nomes em cache fornecerá uma cópia local de todos os registros resolvidos, que expiram usando o TTL (Time To Live) especificado para o registro. Lembre-se de que minha explicação é uma descrição simplista do protocolo DNS, que pode ser explorada em detalhes lendo as definições na Solicitação de Comentários .

Embora o sequestro de NXDOMAIN possa ser evitado executando um cache local, lembre-se de que todo o tráfego de resolução de DNS ainda será transmitido por sua conexão à Internet sem criptografia. Seu ISP pode monitorar esse tráfego e ainda assim ver a comunicação. Os contratos que você possui com seu ISP e as leis locais serão os seus meios definitivos para estabelecer como suas comunicações são tratadas. Os contratos do seu ISP incluirão os Termos de Serviço, as Políticas de Privacidade e quaisquer contratos adicionais que você possa ter com o seu ISP.

O uso de protocolos criptografados é um dos melhores métodos para proteger seus dados contra a interceptação durante o transporte. No entanto, mesmo isso não tem garantia de anonimato. Existem protocolos adicionais por aí, como Tor e Freenet , que tentam introduzir o anonimato na Internet, pois nunca foram projetados para serem realmente anônimos.

Warner
fonte
1
A resposta simples é não, você não pode. A resposta técnica está acima na resposta da Warner. Não há um conjunto de servidores que contenha todas as informações de DNS. Os servidores raiz simplesmente o encaminham para um dos servidores de TLD, que encaminha a solicitação mais adiante.
Rex
1
Alguns ISPs fornecem uma maneira de desativar o seqüestro de NXDOMAIN. Alguns ISPs fornecem um mecanismo (estúpido e falso) baseado em cookie para "desativar" o seqüestro de NXDOMAIN. Também existem servidores de nomes alternativos que podem ser usados ​​em vez do servidor de nomes do seu ISP.
Brian
3

Algumas coisas:

Se você configurar seu servidor para usar as dicas de raiz em vez de usar encaminhadores, não precisará se preocupar com problemas de MITM (pelo menos dos seqüestradores de ISP e DNS). Para todas as resoluções de DNS externas, o servidor consultaria as dicas de raiz, que indicariam os servidores de gTLDs para o domínio de nível superior em questão (.com etc.), que indicaria os servidores NS do domínio em questão. .

Se você realmente deseja criar seu próprio servidor raiz, certamente pode, embora não veja como isso lhe faria muito bem. Aqui está como você faz isso em um servidor DNS do Windows:

Baixe o arquivo da zona raiz DNS e salve-o como root.dns no diretório% systemroot% \ system32 \ dns no servidor DNS do Windows, use o assistente de criação da zona DNS para criar uma nova zona primária de pesquisa direta denominada "." (sem as aspas), desmarque a opção para criar uma zona integrada ao AD, digite "." para o nome da zona (sem as aspas), selecione a opção para usar um arquivo existente e o campo nome do arquivo da zona será preenchido automaticamente com o nome root.dns (se não estiver digitando), deixe a opção para não Para permitir atualizações dinâmicas como está, clique no botão Concluir depois de percorrer cada etapa do assistente. Agora você tem um servidor raiz com zonas e registros de zona para todos os servidores de gTLDs.

Observe que isso desabilitará as opções de encaminhamento e dicas de raiz no servidor (já que seu servidor agora é um servidor raiz) e também observe que, se as informações de gTLD mudarem, não haverá como o servidor perceber essas alterações.

joeqwerty
fonte
Nada impedindo o ISP de seqüestrar o IP dos servidores raiz (exceto DNSsec) ... Fora isso, correto.
Chris S
1

Para servidores intimamente relacionados, existem transferências de zona. Funcionam como anúncios BGP. Por motivos de segurança, eles geralmente são bloqueados para outros servidores.

Se você executar um servidor de nomes em cache, ele copiará a lista de servidores raiz e, em breve, terá as raízes para .com, .net, etc. Há uma boa razão para que o DNS seja distribuído. Caso contrário, todos estariam trabalhando com dados obsoletos. O tamanho do banco de dados seria bastante grande e a maioria dos dados não seria do seu interesse.

Existem opções para diminuir o risco de envenenamento do DNS e um bom software lida com os problemas à medida que eles se tornam conhecidos. Existem organizações que trabalham no fornecimento de dados higienizados que podem ser usados ​​como fornecedores a montante. Isso filtrará algumas tentativas de envenenamento. Veja como usar o OpenDNS ou o Google como fornecedores upstream.

As zonas DNS raiz agora estão assinadas e cada vez mais vejo meu servidor de email informando que os dados DNS foram assinados. A assinatura do DNS foi relatada como um requisito para o IPV6. O DNS assinado dificulta muito o envenenamento de cache, mas aumenta a dificuldade de gerenciar o DNS.

BillThor
fonte
1

Você certamente pode configurar seu próprio servidor e torná-lo autoritário para o root, mas não sei de que maneira você pode preenchê-lo com os arquivos de zona dos servidores raiz. Você não pode simplesmente solicitar uma transferência de zoneamento, então acho que precisará preenchê-la mantendo seus caches.

Modifique as root.hints nos outros servidores de nomes para apontá-las para o servidor raiz privado e deixe o teste começar.

Mas lembre-se de que os servidores raiz sabem apenas quais servidores têm autoridade para os TLDs, nada mais. Você basicamente precisará recriar toda a hierarquia de servidores, o que parece uma tarefa impossível.

Martijn Heemels
fonte
0

Sim, um dos recursos dos servidores DNS é o cache local de consultas freqüentemente solicitadas, ignorando com frequência o ttl especificado.

Você certamente pode executar seu próprio DNS, não há problema. Mas os servidores raiz e os servidores de domínio de nível superior, você precisará perguntar ao tio sam.

É possível registrar todas as solicitações de DNS, mas seria insano.


fonte
Mas confiar no cache implica que você já teve que enviar uma solicitação de DNS para o domínio em questão, o que anula todo o objetivo de tentar ter somente (ou principalmente) apenas solicitações de DNS locais.
pythonnewbie