Eles testam com a porta 53 porque é provável que esteja aberta (isto é, porta usada por um DNS).
Eu recebi o mesmo erro e a solução foi escrever duas regras.
Primeiro, você pode ter uma regra ESTABELECIDA e RELACIONADA para o UDP agora. Isso não era possível antes, já que o UDP é considerado sem estado, mas eles adicionaram essa funcionalidade rastreando o que foi enviado e aceitam as respostas relacionadas .
-A INPUT -i eth0 -p udp -m state --state ESTABLISH,RELATED -m udp -d 1.2.3.4 -j ACCEPT
Nota: altere eth0
e 1.2.3.4
com nome próprio / IP
Em seguida, você pode abrir a porta 53 para os pacotes de entrada do servidor DNS.
-A INPUT -i eth0 -p udp -m udp --dport 53 -d 1.2.3.4 -j ACCEPT
Nota: altere eth0
e 1.2.3.4
com nome próprio / IP
Sua regra existente se parece com isso:
ACCEPT udp -- anywhere anywhere udp dpt:domain
Não é restrito em uma interface ou endereço de destino. Deve ser para garantir que você não obtenha dados de uma fonte espúria. (ou seja, no DigitalOcean, e provavelmente muitos outros, há um endereço IP oculto ... você não quer aceitar dados daquele; também, eu tive uma farsa uma vez e o nome da interface mudou !!! Se você tiver uma conexão de rede única, deve ser direta, mas se você não está no controle do hardware, você não pode saber quando isso pode acontecer ...)
Dito isto, o seu grande problema no seu conjunto de regras é a primeira linha na sua cadeia INPUT. Parece assim:
ACCEPT all -- anywhere anywhere
E isso significa aceitar absolutamente tudo. Todas as regras depois disso são todas ignoradas. Então, em outras palavras, você não tem um firewall em tudo ...
Você tem a mesma primeira regra em sua cadeia de saída, suponho que é para ter certeza de que seu firewall não vai bloquear nada.
Um conselho, escreva um script pequeno para ver seu firewall usando as opções -nvx
. O -n
agiliza, não tentando converter endereços IP. O -v
é para mostrar o número de pacotes e bytes viajando em cada regra (ou seja, se uma regra aceita um pacote, seu contador de pacotes é incrementado em 1.) O -x
mostra os números exatos para cada contador (em vez de torná-lo "humano"), de modo que eu sei quando um contador foi incrementado em 1 ou mais. Importante enquanto você está testando.
Se você tivesse usado o -nvx
, talvez você notasse que apenas os contadores da primeira regra eram incrementos para INPUT e OUTPUT. Então talvez você vagueia porque nunca bate em outras regras ...