Antworten:
Mit der -p tcpOption ist das TCP-Modul bereits geladen und daher etwas redundant und kein Muss, um die -m tcpOption 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 tcpSie hier:
http://ipset.netfilter.org/iptables-extensions.man.html#lbCF
Wie oben erwähnt, ist es mit der -mOption 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 8081Verfü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: -mdient 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 tcpModul wird TCP geladen. Das TCP-Modul ermöglicht bestimmte Optionen: --dport, --sport, --tcp-flags, --syn, --tcp-optionVerwendung in iptables-Regeln. Aber der Einsatz -p tcpermöglicht bereits TCP - Modul, das ist , warum kann man noch diese Optionen nutzen , auch ohne Verwendung -m tcp. Hoffe, es beseitigt all Ihre Verwirrung.
-mOption tatsächlich zum Laden verwendet extension modules, wodurch zusätzliche Optionen bereitgestellt werden. Siehe zum Beispiel meine aktualisierte Antwort und den Link.
-m tcpOption verwenden. --dportist Teil des TCP-Moduls und funktioniert -p tcpnur mit. Bitte beziehen Sie sich noch einmal auf meine Antwort.