regardons ces deux règles iptables qui sont souvent utilisées pour autoriser les DNS sortants:
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
Ma question est: Comment dois-je comprendre exactement l'état ESTABLISHED dans UDP? UDP est apatride.
Voici mon intuition - j'aimerais savoir si ou où c'est incorrect:
La page de manuel me dit ceci:
Etat
Ce module, combiné avec le suivi des connexions, permet d'accéder à la état de suivi de connexion pour ce paquet. --Etat ...
Donc, iptables se souvient essentiellement du numéro de port qui a été utilisé pour le paquet sortant (que pourrait-il se souvenir d'autre pour un paquet UDP?) , Puis autorise le premier paquet entrant qui est renvoyé dans un court laps de temps? Un attaquant devrait deviner le numéro de port (serait-ce vraiment trop dur?)
Pour éviter les conflits:
Le noyau garde la trace des ports bloqués (soit par d'autres services, soit par les paquets UDP sortants précédents), de sorte que ces ports ne seront pas utilisés pour les nouveaux paquets DNS sortants dans le délai? (Que se passerait-il si j'essayais accidentellement de démarrer un service sur ce port dans le délai imparti - cette tentative serait-elle refusée / bloquée?)
Veuillez trouver toutes les erreurs dans le texte ci-dessus :-) Merci,
Chris
la source
echo "net.netfilter.nf_conntrack_udp_timeout = 180" >> /etc/sysctl.conf
NB: Cette réponse a été modifiée.
Malgré ce que disent les pages de manuel, cela
ESTABLISHED
signifie "avec état". Pour UDP, cela signifie simplement (comme vous le suggérez) de se souvenir de chaque paquet UDP sortant (le tuple "src ip, src port dst ip, dst port") pendant un certain temps et de reconnaître ses réponses.FWIW, mes règles normales pour le trafic DNS seraient quelque chose comme ceci:
c'est-à-dire contrôler le trafic sur la
OUTPUT
chaîne, puis laisser lesiptables
modules d'état gérer tout le reste de laINPUT
chaîne.Voir aussi cette question connexe .
la source
RELATED
paquets UDP peuvent exister pour RTP.Les développeurs d'iptables ont considéré qu'un état "ÉTABLI" était la situation où des paquets ont été vus dans les deux sens quel que soit le protocole entre deux clients.
l'extension d'état fait partie de conntrack. Le noyau comprend l'état de la table
Exemple d'états iptables pour UDP dans la table nf_conntrack du point de vue de l'expéditeur. Imaginons que vous envoyiez une requête DNS sur UDP
Un paquet a été envoyé. Il n'a pas répondu et oh, le tableau contient les données pour ce qui est attendu en retour (le paquet pour la réponse DNS).
La réponse est arrivée, l'indicateur non répondu a disparu, cela signifie que cette connexion UDP est à l'état ÉTABLI pour une petite durée définie dans votre système.
la source