iptables NEUE Verbindungen gegen --syn

13

Was ist der Unterschied zwischen:

iptables ... -m state --state NEW

und

iptables ... --syn

Der erste sollte NEUE Verbindungen auswählen, aber AFAIK neue Verbindungen werden durch Senden eines TCP-Syn-Flags hergestellt. Der andere bedeutet genau das - Pakete mit einem Syn-Flag.

Können Sie praktische Beispiele nennen, wenn die obigen Befehle unterschiedliche Ergebnisse liefern?

Wanson
quelle

Antworten:

8

Das --synFlag ist nützlich, um den TCP-Verkehr zu überprüfen, aber der NEWStatus kann für andere Protokolle (einschließlich TCP) wie UDPund verwendet werden ICMP. Ich kann sagen, dass dies NEWallgemeiner ist als die --synTCP-Option.

Im iptables-Handbuch können Sie lesen:

NEW    meaning that the packet has started a new connection,
       or otherwise associated with a connection which has not seen packets in both directions

Eine DNS-Anforderung entspricht beispielsweise dem NEWStatus, entspricht jedoch keiner Regel mit --synOption. Es ist einfach ein UDP-Datagramm.

Die --synOption kann auch verwendet werden, um zu überprüfen, ob TCP-Pakete mit einer Kombination aus ungültigen Flags verworfen wurden.

Sie können diese beiden Optionen auch zusammen verwenden, um nach NEWTCP-Flows ohne --syndas erste Paket zu suchen und sie zu löschen, z.

$ sudo iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"

Hier fügen wir diese Pakettypen zu einer benutzerdefinierten Kette hinzu, die bad_tcp_packetszum Löschen / Protokollieren usw. aufgerufen wird.

Khaled
quelle