Was ist der praktische Unterschied zwischen:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
und
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Welches ist am besten zu verwenden?
Danke.
Was ist der praktische Unterschied zwischen:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
und
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Welches ist am besten zu verwenden?
Danke.
Antworten:
Beide verwenden die gleichen Kernel-Interna (Connection Tracking Subsystem).
Header von xt_conntrack.c:
xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)
Also würde ich sagen - Zustandsmodul ist einfacher (und vielleicht weniger fehleranfällig). Es ist auch länger im Kernel. Conntrack auf der anderen Seite bietet mehr Optionen und Funktionen [1].
Mein Aufruf ist, conntrack zu verwenden, wenn Sie dessen Funktionen benötigen, ansonsten bleiben Sie beim Zustandsmodul.
Ähnliche Frage zu netfilter maillist.
[1] Sehr nützlich wie "-m conntrack --ctstate DNAT -j MASQUERADE" Routing / DNAT Fixup ;-)
Das Ergebnis dieser beiden Regeln unterscheidet sich nicht. Beide Übereinstimmungserweiterungen verwenden dieselben Daten, um den Verbindungsverfolgungsstatus abzugleichen. state ist die "alte" Übereinstimmungserweiterung und conntrack ist neuer und bietet viel mehr Optionen als nur das Übereinstimmen mit dem Verbindungsverfolgungsstatus.
Wie die Dokumentation sagt:
Die Conntrack-Übereinstimmung ist eine erweiterte Version der Zustandsübereinstimmung, die es ermöglicht, Pakete viel genauer abzugleichen. Hiermit können Sie Informationen anzeigen, die direkt im Verbindungsverfolgungssystem verfügbar sind, ohne "Frontend" -Systeme, wie z. B. im Statusvergleich. Weitere Informationen zum Verbindungsverfolgungssystem finden Sie im Kapitel Die Zustandsmaschine.