Iptables mit den Parametern -m und -p

8

Ich habe diese Regel in meinen iptables:

iptables -A INPUT -p tcp -m tcp --dport 9191 -j DROP

Brauche ich wirklich "-m tcp"? Ich verwende bereits "-p tcp". Sollte ich also "-m tcp" verwenden, um sicherer zu sein?

Samul
quelle

Antworten:

9

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 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: -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.

Diamant
quelle
Vielen Dank, aber möchten Sie mir sagen, gegen was -m passen würde? Zum Beispiel würde eine normale TCP-Verbindung, -m mit welcher Zeichenfolge übereinstimmen? Könnten Sie bitte ein Beispiel für die Zeichenfolge
angeben
1
Bitte schön. Wie Sie sehen können, wird die -mOption tatsächlich zum Laden verwendet extension modules, wodurch zusätzliche Optionen bereitgestellt werden. Siehe zum Beispiel meine aktualisierte Antwort und den Link.
Diamond
Vielen Dank! :) Ein letzter Gedanke: Ich denke, dass ich in meinem Fall das "-m" korrekt halten sollte? Siehe dies: iptables -A INPUT -p tcp -m tcp --dport 9191 -j DROP Ich verwende "--dport" und denke, dass es nur möglich ist, --ddport zu verwenden, wenn ich -m richtig verwende?
Samul
@ Samul, nicht wirklich. Sie können es einfach ohne die -m tcpOption verwenden. --dportist Teil des TCP-Moduls und funktioniert -p tcpnur mit. Bitte beziehen Sie sich noch einmal auf meine Antwort.
Diamond
Du bist sehr nett, danke! Aber siehe: Ich verstehe nicht, was -m passt. Welche Saite? -m TCP passt zu was? Es versucht das Wort "tcp" zu finden, wo?
Samul