A recursão do DNS é insegura, mas necessária para aplicativos internos?

16

No gerenciamento de um Windows Server 2008, o servidor hospeda o DNS (é nameserver) para alguns domínios, bem como hospeda alguns aplicativos que são publicamente acessíveis.

Uma verificação de segurança indicou que a configuração do DNS é insegura, porque permite consultas recursivas.

A desativação de consultas recursivas foi tentada, mas vários problemas ocorreram (e-mails enviados de aplicativos locais não foram entregues e um aplicativo em execução localmente que se conecta a um site de terceiros não pôde resolver o nome de domínio da conexão etc.). Portanto, parece que as solicitações de DNS que são originadas no próprio servidor dependem de consultas recursivas para funcionar.

Existe uma maneira de desativar consultas recursivas pelo DNS hospedado no servidor enquanto ainda permite que as consultas DNS originadas no servidor funcionem? Eu estou querendo saber se podemos desabilitar consultas recursivas no servidor DNS local e definir o DNS de saída nas configurações de rede para algo externo (como 8.8.8.8), para que consultas DNS de saída fossem lá primeiro, e o DNS desse servidor só terminaria ficando questionado sobre os domínios que ele realmente hospeda localmente.

Obrigado pelo seu tempo!

    
por ilasno 25.01.2012 / 19:32

4 respostas

11

É uma boa idéia não fornecer funcionalidade de pesquisa recursiva para toda a Internet, portanto, configurar seu servidor DNS para responder apenas às consultas pelas quais ele tem autoridade é uma Good Thing TM .

Na superfície, parece que a conclusão que você chegou em seu último parágrafo é boa: Defina as configurações TCP / IP do próprio servidor para usar um servidor DNS que seja autorizado a fornecer recursivas pesquisas. O processo do servidor DNS não usa os servidores DNS configurados nas configurações de TCP / IP no NIC do computador servidor para nada em particular. Em vez disso, ele encaminha solicitações (ou usa dicas de raiz) com base na configuração do Servidor DNS.

Quando os aplicativos em execução no servidor tentam consultar os domínios, o servidor DNS em execução nessa máquina é autoritativo para a solicitação, em última análise, chegará ao processo do servidor DNS em execução nessa máquina e a consulta será respondida. / p>     

por 25.01.2012 / 20:00
14

Is there a way to disable recursive queries by the DNS hosted on the server while still allowing for DNS queries originating on the server to work?

Não com o servidor DNS da Microsoft, não existe.

Com o servidor DNS do ISC, BIND, pode-se aceitar coisas com visualizações. O servidor DNS da Microsoft não possui esse mecanismo. Portanto, para qualquer instância do servidor DNS da Microsoft, deve-se escolher se é um servidor DNS público conteúdo ou um servidor DNS proxy local local. Ele não pode evitar coisas e fingir ser tipos diferentes de servidor para diferentes clientes DNS.

O serviço / ferramenta de testes de segurança está correto. É a prática recomendada para não fornecer serviço de proxy - qualquer serviço de proxy: seja serviço de proxy HTTP, serviço de proxy DNS ou serviço de Envio de SMTP - para o resto da Internet fora do próprio site. Você muito deve ter servidores separados : um servidor DNS de conteúdo que publica seus dados públicos de DNS, sobre seus nomes de domínio que você registrou, para todos na Internet; e um servidor DNS proxy local, que faz o trabalho pesado de resolução de consulta em nome dos computadores da sua organização, que só é acessível para máquinas na sua organização / na sua LAN. Com o servidor DNS da Microsoft, isso não é particularmente fácil.

Seria especialmente difícil se sua máquina também fosse um controlador de domínio. Você afirma que esta máquina é diretamente acessível de toda a Internet. Se tal máquina é um controlador de domínio, você deve repensar sua organização de rede agora . Você estaria expondo uma enorme quantidade de serviços internos para o público, não apenas o serviço de proxy DNS. Então, vamos trabalhar na suposição de que isso não é um controlador de domínio.

Como não é um controlador de domínio e é apenas um servidor membro , você não tem o requisito de que o cliente DNS na máquina use o servidor DNS da máquina (ou, inicialmente, o servidor DNS de outro controlador de domínio) ) para o serviço DNS proxy, que é o caso dos controladores de domínio. Se você tivesse, você não seria capaz de desativar o serviço DNS proxy no servidor DNS da máquina. Felizmente, não é um controlador de domínio, e seu cliente DNS pode usar alguma outra máquina para o serviço de DNS proxy, não em si.

O cliente DNS na máquina do servidor membro ainda precisa usar um servidor DNS proxy interno . Você não pode simplesmente apontá-lo em algum servidor DNS externo, como os fornecidos pelo seu provedor, pelo Google ou por qualquer outra parte que não saiba todos os dados do DNS que o Active Directory está usando em sua LAN . Você pode apontar o cliente DNS da máquina no servidor DNS em um ou mais dos seus controladores de domínio. Isto é bastante simples, e é o que você está - afinal de contas - já fazendo em todas as suas estações de trabalho em sua LAN. O cliente DNS em seu servidor membro precisa apenas ser configurado como os clientes DNS em todas as suas estações de trabalho são .

Dado que o cliente DNS da sua máquina não está usando o servidor DNS em execução na máquina para o serviço DNS proxy, basta configurar o servidor DNS da Microsoft para não fornecer serviço DNS proxy de qualquer formulário a ninguém.

Outras leituras

por 25.01.2012 / 21:52
5

Como Evan afirmou em sua resposta, seus aplicativos precisam usar o componente de cliente DNS no servidor, que é totalmente independente do componente do servidor DNS. O componente do servidor DNS pode ser configurado para não executar a recursão, permitindo que ele responda a consultas enviadas somente para as zonas DNS autorizadas.

Os aplicativos podem usar os servidores DNS configurados nas propriedades TCP / IP da NIC relevante, que podem ser configuradas para usar quaisquer servidores DNS que executem a recursão (como os servidores DNS do Google). Os servidores DNS configurados nas propriedades TCP / IP da NIC relevante não precisam apontar para o servidor DNS em execução no mesmo servidor.

    
por 25.01.2012 / 20:59
0

Recentemente, tive o mesmo problema e nosso servidor DNS estava sendo usado para ataques de amplificação. Mas preciso manter a recursão em nossos outros servidores internos.

Se você tiver um roteador Cisco, aqui está uma possível correção. Mudei nosso DNS externo para um roteador Cisco 7200VXR e configurei-o para responder apenas a zonas DNS específicas. Ele consultará os servidores DNS internos para que você não precise inserir tudo em dois locais.

Aqui está um trecho da configuração da Cisco que usei:

ip dns view default
 dns forwarder 192.168.0.xx (internal DNS server)
 domain round-robin

ip dns view-list default
 view default 1
  restrict name-group 1

ip dns name-list 1 permit abc.com
ip dns name-list 1 permit def.com
ip dns name-list 1 permit anyotherdomainthatyouhost.com
ip dns name-list 1 permit 3.2.1.in-addr.arpa (needed for reverse PTR lookups)

interface fastethernet0/0 (the interface where the IP address is that will host DNS)
 ip dns view-group default
 ip address 1.2.3.4 secondary (use the public facing IP you will use to host DNS)

ip dns server

Além disso, não se esqueça de permitir que os pacotes DNS entrem no roteador com uma lista de acesso, como:

permit udp any host 1.2.3.4 eq domain
    
por 31.01.2014 / 01:53