vejamos essas duas regras do iptables que são frequentemente usadas para permitir o DNS de saída:
iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53
-m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 --dport 1024:65535
-m state --state ESTABLISHED -j ACCEPT
Minha pergunta é: como exatamente devo entender o estado ESTABELECIDO no UDP? O UDP é sem estado.
Aqui está a minha intuição - eu gostaria de saber se ou onde isso está incorreto:
A página do manual me diz isso:
Estado
Este módulo, quando combinado com o rastreamento de conexão, permite o acesso ao estado de rastreamento de conexão para este pacote. --Estado ...
Portanto, o iptables basicamente lembra o número da porta que foi usada para o pacote de saída (o que mais ele poderia lembrar para um pacote UDP?) E , em seguida, permite o primeiro pacote recebido que é enviado de volta em um curto período de tempo? Um invasor teria que adivinhar o número da porta (isso seria realmente muito difícil?)
Sobre como evitar conflitos:
O kernel controla quais portas estão bloqueadas (por outros serviços ou por pacotes UDP de saída anteriores), para que essas portas não sejam usadas para novos pacotes DNS de saída dentro do prazo? (O que aconteceria se eu tentasse acidentalmente iniciar um serviço nessa porta dentro do prazo - essa tentativa seria negada / bloqueada?)
Encontre todos os erros no texto acima :-) Obrigado,
Chris