GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der Unterschied zwischen iptables state und ctstate?

Hauptantwort:

Conntrack ersetzt state ,aber in modernen Kerneln gibt es jetzt keinen Unterschied mehr zwischen den beiden.State ist derzeit mit einem Alias ​​versehen und in conntrack übersetzt in iptables, wenn der Kernel es hat, also die Syntax -m state --state wird tatsächlich in -m conntrack --ctstate übersetzt und von demselben Modul behandelt werden.

Auf einigen alten Kerneln muss Contrack jedoch speziell aktiviert werden.

Mögliche Erklärung:

Es scheint mir, als ob die von Ihnen zitierten Regeln Duplikate enthielten, die sowohl ältere als auch neuere Kernel berücksichtigen.

Oder vielleicht ist dies nur ein Fall von Cargo-Kult-Programmierung.


Auf ServerFault aus dem Jahr 2012 gibt es diese Frage:

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

Welche ist am besten zu verwenden?

Die akzeptierte Antwort lautet:

Beide verwenden die gleichen Kernel-Interna darunter (Verbindungsverfolgungs-Subsystem).

Kopfzeile 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 - das Zustandsmodul ist einfacher (und vielleicht weniger fehleranfällig). Es ist auch länger im Kernel. Conntrack auf der anderen Seite hat mehr Optionen und Funktionen[1].

Mein Aufruf ist, conntrack zu verwenden wenn Sie seine Funktionen benötigen, bleiben Sie andernfalls beim Statusmodul.

Ähnliche Frage zu netfiltermaillist.

[1] Ziemlich nützlich wie -m conntrack --ctstate DNAT -j MASQUERADE" routing/DNAT fixup;-)

Eine der anderen Antworten führt zu diesem Dokument über iptables . Es heißt:

Die conntrack match ist eine erweiterte Version des state match, was es ermöglicht, Pakete viel detaillierter abzugleichen. Damit können Sie Informationen anzeigen, die direkt im Verbindungsverfolgungssystem verfügbar sind, ohne "Frontend"-Systeme, wie z. B. in state übereinstimmen.

Ich denke also, dass dies wahr ist (aus einer weiteren Antwort dort):

Es gibt keinen Unterschied im Ergebnis dieser beiden Regeln.

Beachten Sie, dass es auch einen interessanten Kommentar unter der Frage gibt:

state ist zugunsten von conntrack veraltet , und kann einkompiliert werden oder nicht, je nachdem, wie Ihr Kernel gebaut wurde.


Linux
  1. Was ist der Unterschied zwischen Redhat und CentOS?

  2. Was ist der Unterschied zwischen insmod und modprobe

  3. Was ist der Unterschied zwischen fsck und e2fsck?

  4. Was ist der Unterschied zwischen adduser und useradd?

  5. Was ist der Unterschied zwischen unlink und rm?

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen Login- und Non-Login-Shell

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?

Was ist der Unterschied zwischen OUTPUT- und FORWARD-Ketten in iptables?