Antworten:
Mit der -p tcp
Option ist das TCP-Modul bereits geladen und daher etwas redundant und kein Muss, um die -m tcp
Option zu verwenden, und ich sehe keinen Grund, warum die Verwendung dieser Option die Regel sicherer machen würde.
Weitere Informationen und Vergleiche finden Sie auf der Manpage zu iptables :
-p, --protocol [!] Protokoll
Das Protokoll der zu überprüfenden Regel oder des zu überprüfenden Pakets. Das angegebene Protokoll kann eines von tcp, udp, icmp oder all sein, oder es kann ein numerischer Wert sein, der eines dieser Protokolle oder ein anderes darstellt. Ein Protokollname aus / etc / protocol ist ebenfalls zulässig. EIN "!" Argument vor dem Protokoll invertiert den Test. Die Zahl Null entspricht allen. Das Protokoll all stimmt mit allen Protokollen überein und wird als Standard verwendet, wenn diese Option weggelassen wird.
...
Übereinstimmungserweiterungen
iptables können erweiterte Paketanpassungsmodule verwenden. Diese werden auf zwei Arten geladen: implizit, wenn -p oder --protocol angegeben ist, oder mit den Optionen -m oder --match, gefolgt vom passenden Modulnamen; Danach stehen je nach Modul verschiedene zusätzliche Befehlszeilenoptionen zur Verfügung. Sie können mehrere erweiterte Übereinstimmungsmodule in einer Zeile angeben und die Optionen -h oder --help verwenden, nachdem das Modul angegeben wurde, um Hilfe für dieses Modul zu erhalten.
Eine Liste der verfügbaren Optionen finden -p tcp
Sie hier:
http://ipset.netfilter.org/iptables-extensions.man.html#lbCF
Wie oben erwähnt, ist es mit der -m
Option möglich, Erweiterungsmodule hinzuzufügen, und es stehen dann weitere passende Optionen zur Verfügung. Zum Beispiel das CPU-Modul :
Zentralprozessor
[!] - CPU-Nummer
Passen Sie die CPU an, die dieses Paket verarbeitet. CPUs sind von 0 bis NR_CPUS-1 nummeriert. Kann in Kombination mit RPS (Remote Packet Steering) oder NICs mit mehreren Funktionen verwendet werden, um den Netzwerkverkehr auf verschiedene Warteschlangen zu verteilen.
Beispiel:
iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 0 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 1 -j REDIRECT --to-port 8081
Verfügbar seit Linux 2.6.36.
Vollständige Liste der iptables-Erweiterungen.
Zusätzliche Frage von OP: Ich verstehe nicht, was -m übereinstimmt. Welche Saite? -m TCP passt zu was? Es versucht das Wort "tcp" zu finden, wo?
Antwort: -m
dient zum Abgleichen des Modulnamens und nicht der Zeichenfolge. Durch die Verwendung eines bestimmten Moduls erhalten Sie bestimmte Optionen, die übereinstimmen. Siehe das obige Beispiel für ein CPU-Modul. Mit dem -m tcp
Modul wird TCP geladen. Das TCP-Modul ermöglicht bestimmte Optionen: --dport, --sport, --tcp-flags, --syn, --tcp-option
Verwendung in iptables-Regeln. Aber der Einsatz -p tcp
ermöglicht bereits TCP - Modul, das ist , warum kann man noch diese Optionen nutzen , auch ohne Verwendung -m tcp
. Hoffe, es beseitigt all Ihre Verwirrung.
-m
Option tatsächlich zum Laden verwendet extension modules
, wodurch zusätzliche Optionen bereitgestellt werden. Siehe zum Beispiel meine aktualisierte Antwort und den Link.
-m tcp
Option verwenden. --dport
ist Teil des TCP-Moduls und funktioniert -p tcp
nur mit. Bitte beziehen Sie sich noch einmal auf meine Antwort.