Je ne prétends pas être un expert des iptables
règles, mais la première commande utilise l'extension de suivi de connexion ( conntrack
), tandis que la seconde utilise l' state
extension.
Point de données n ° 1
Selon ce document, l' conntrack
extension a été remplacée state
.
Obsolete extensions:
• -m state: replaced by -m conntrack
Point de données n ° 2
Malgré tout, j’ai trouvé cette question-réponse de SF intitulée: Questions sur le pare - feu concernant l’état et la politique? où OP a affirmé avoir posé cette question sur IRC dans # iptables @ freenode. Après en avoir discuté, il est arrivé à la conclusion suivante:
Techniquement, le match conntrack remplace - et donc obsolète - le match state. Mais pratiquement le match d'état n'est en aucun cas obsolète.
Point de données n ° 3
Enfin, j'ai trouvé ce Q & A SF intitulé: Iptables, quelle est la différence entre -m state et -m conntrack? . La réponse à cette question est probablement la meilleure preuve et le meilleur conseil sur la manière de visualiser l’utilisation de conntrack
et state
.
extrait
Les deux utilisent les mêmes éléments internes du noyau (sous-système de suivi des connexions).
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.
[1] Très utile comme le "-m conntrack --ctstate DNAT -j MASQUERADE"
routage / correction de DNAT ;-)
Point de données n ° 4
J'ai trouvé ce fil dans les discussions de netfilter@vger.kernel.org netfilte / iptables, intitulé: state match is obsolete 1.4.17 , qui dit à peu près qu'il ne state
s'agit là que d'un alias conntrack
. les deux circonstances que vous utilisez conntrack
.
extrait
En fait, je suis d'accord. Pourquoi ne gardons-nous pas "état" comme alias et acceptons l'ancienne syntaxe de "conntrack"?
state est actuellement aliasé et traduit en conntrack dans iptables si le noyau en dispose. Aucun script n'est cassé.
Si le crénelage est effectué dans l'espace utilisateur, la partie noyau peut être supprimée - peut-être un jour.
Le crénelage est déjà fait dans l'espace utilisateur. On tape "state" et il est converti en "conntrack" et est ensuite envoyé au noyau. (Donc, autant que je sache si les alias de modules ipt_state, etc. ont été ajoutés au module conntrack, même le module du noyau d'état pourrait être supprimé.)
Références