Quelle est la différence pratique entre:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
et
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Lequel est le meilleur à utiliser?
Je vous remercie.
Quelle est la différence pratique entre:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
et
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Lequel est le meilleur à utiliser?
Je vous remercie.
Réponses:
Les deux utilisent les mêmes éléments internes du noyau (sous-système de suivi de connexion).
En-tête de xt_conntrack.c:
xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)
Je dirais donc que le module d’état est plus simple (et peut-être moins sujet aux erreurs). C'est aussi plus long dans le noyau. Conntrack de l'autre côté a plus d'options et de fonctionnalités [1].
Mon appel est d'utiliser conntrack si vous avez besoin de ses fonctionnalités, sinon restez avec le module d'état.
Question similaire sur mafist netfilter.
[1] Très utile comme "-m conntrack --ctstate DNAT -j MASQUERADE" routage / correction de DNAT ;-)
Il n'y a aucune différence dans l'issue de ces deux règles. Les deux extensions de correspondance utilisent les mêmes données pour faire correspondre l'état de suivi de connexion. state est "l'ancienne" extension de correspondance et conntrack est plus récent et comporte beaucoup plus d'options que simplement faire correspondre l'état de suivi de connexion.
Comme le dit la documentation:
La correspondance conntrack est une version étendue de la correspondance d'état, ce qui permet de faire correspondre les paquets de manière beaucoup plus fine. Il vous permet de consulter les informations directement disponibles dans le système de suivi de connexion, sans aucun système "frontal", tel que celui de la correspondance d'état. Pour plus d'informations sur le système de suivi des connexions, reportez-vous au chapitre La machine à états.