Bloqueando ataque DNS query (cache) ‘./NS/IN’ denied
Posted on mar 05, 2009 under Segurança, Sem categoria | No CommentUltimamente tenho verificado nos logs do servidor DNS as seguintes mensagens:
Mar 4 20:26:37 named[4276]: x query (cache) './NS/IN' denied Mar 4 20:26:37 named[4276]: x query (cache) './NS/IN' denied Mar 4 20:26:39 named[4276]: x query (cache) './NS/IN' denied Mar 4 20:26:39 named[4276]: x query (cache) './NS/IN' denied Mar 4 20:26:40 named[4276]: x query (cache) './NS/IN' denied Mar 4 20:26:43 named[4276]: x query (cache) './NS/IN' denied Mar 4 20:26:44 named[4276]: x query (cache) './NS/IN' denied
Apaguei o IP do client que está originado o ataque porque é um IP spoofado.
Esse ataque DDOS está acontecendo em muitos servidores DNS, conforme nos diz o grande oráculo google com a palavra chave query (cache) ‘./NS/IN’ denied.
Para amenizar esse ataque existe um artigo chamado Secure BIND Template Version 6.7 31 JAN 2009, o qual tem uma série de sugestões para melhorar a segurança do DNS.
Além de implementar algumas melhorias na segurança sugerida pelo artigo, também criei uma regra no firewall para limitar o número de conexões originadas de um mesmo endereço IP dentro de um período de tempo e tentativas de conexão.
Regras:
iptables -A INPUT -p udp -i eth0 -m state --state NEW --dport 53 -m recent --update --seconds 10 --hitcount 3 -j DROP iptables -A INPUT -p udp -i eth0 -m state --state NEW --dport 53 -m recent --set -j ACCEPT
Essas regras exigem um tempo mínimo de 10 segundos e menos de 3 tentativas de conexões originadas de um mesmo endereço IP, para que uma nova conexão seja aceita.
Já estava me esquecendo com essa regra é possível verificar os endereços IP que estão sendo bloqueados com o comando:
cat /proc/net/ipt_recent/DEFAULT
E também adicionar novos ips, remover um ip específico ou limpar a lista com os seguintes comandos:
echo xx.xx.xx.xx > /proc/net/ipt_recent/DEFAULT Adiciona um IP na lista DEFAULT echo -xx.xx.xx.xx > /proc/net/ipt_recent/DEFAULT Remove um IP da lista DEFAULT echo clear > /proc/net/ipt_recent/DEFAULT limpa a lista DEFAULT.
Faça um teste remova um ip da lista e verfique os logs do DNS.
Essa solução tem funcionado muito bem, pois as tentativas de ataque estão sendo bloqueadas pelo iptables, e o DNS está fazendo certinho seu serviço.
Por hoje era isso.
Ajudem a manter o blog comecem suas compras no submarino através dos links do blog. Você paga o mesmo preço.
