Um "resolvedor de DNS aberto" é um servidor DNS disposto a resolver pesquisas de DNS recursivas para qualquer pessoa na Internet. É muito parecido com uma retransmissão SMTP aberta, pois a simples falta de autenticação permite que terceiros mal-intencionados propaguem suas cargas usando seu equipamento não seguro. Com retransmissões SMTP abertas, o problema é que eles encaminham spam. Com os resolvedores de DNS abertos, o problema é que eles permitem um ataque de negação de serviço conhecido como Ataque de Amplificação de DNS.
A maneira como esse ataque funciona é bastante simples - porque seu servidor resolverá consultas DNS recursivas de qualquer pessoa, um invasor poderá fazer com que ele participe de um DDoS enviando ao servidor uma consulta DNS recursiva que retornará uma grande quantidade de dados, muito maior que o pacote de solicitação DNS original. Ao falsificar (falsificar) o endereço IP, eles direcionam esse tráfego extra para os computadores das vítimas, e não para os próprios, e, é claro, eles fazem o máximo de solicitações o mais rápido possível para o servidor e qualquer outro DNS aberto resolvedores que eles podem encontrar. Dessa maneira, alguém com um canal relativamente pequeno pode "amplificar" um ataque de negação de serviço usando toda a largura de banda do canal para direcionar um volume muito maior de tráfego para suas vítimas.
A ArsTechnica fez um artigo decente sobre o recente ataque de DDoS de amplificação de DNS contra o Spamhaus , e vale uma leitura rápida para obter o básico (e um bom visual da amplificação).
A maneira mais simples de proteger seu sistema contra abuso dessa maneira é limitar os endereços pelos quais o servidor executará pesquisas recursivas nas sub-redes locais. (As especificidades dependem de qual servidor DNS você está usando, é claro).
Por exemplo, se eu estivesse usando o BIND 9 e quisesse simplesmente impedir a recursão do DNS de endereços externos, usaria o seguinte código na minha configuração:
options {
directory "/var/named/master";
allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };
Essa linha de código diz ao meu servidor BIND para processar apenas solicitações DNS recursivas para o endereço de loopback local (que eu acho que eu poderia / deveria definir para o bloco de loopback local, o todo / 8) e os 3 espaços de endereço IPv4 privados.
Para o Windows Server 2012, que você diz estar usando, você tem as opções abaixo.
1. Separe o servidor DNS do servidor IIS.
- Pelo menos em um mundo perfeito, não há motivo para você estar executando o DNS na mesma caixa que o IIS.
- Coloque o DNS em uma caixa interna que não seja NAT, para que o mundo exterior não consiga entender e deixe o IIS residir na caixa externa em que o resto do mundo pode acessar. Você pode usar regras de homing dupla ou firewall para permitir seletivamente o acesso ao servidor DNS a partir do servidor IIS.
2. Bloqueie solicitações DNS externas com um firewall, como o firewall do Windows incorporado.
- Para minha surpresa, o DNS do Windows não permite que você restrinja os endereços aos quais as solicitações DNS recursivas são atendidas; portanto, esse é realmente o método recomendado pela Microsoft.
-
- Selecione as regras DNS (TCP e UDP), vá para a
Remote IP address
seção e adicione as sub-redes em uso na sua LAN, bem como quaisquer endereços IP de servidores públicos que precisam acessar o Active Directory. Como no exemplo BIND, os espaços de endereços privados IPv4 são 127.0.0.0/8
10.0.0.0/8
192.168.0.0/16
e 172.16.0.0/12
.
- Sinceramente, não tenho certeza de que efeito isso terá no seu ambiente, pois você não declarou realmente como o DNS e o AD estão configurados no seu ambiente e, portanto, é a última opção.
-
- Abra o Gerenciador DNS.
- Na árvore do console, clique com o botão direito do mouse no servidor DNS aplicável e clique em Propriedades.
- Onde?
- DNS / servidor DNS aplicável
- Clique na guia Avançado.
- Nas opções do servidor, marque a caixa de seleção Desativar recursão e clique em OK.
- Como temos um ambiente de várias florestas e usamos encaminhadores condicionais para que isso funcione, não vou marcar essa caixa. Pode ser algo para você considerar também.