iptables entspricht dem folgenden ICMP-Anforderungspaket als ESTABLISHED-Status, nachdem das erste Antwortpaket gesendet wurde

7

Testumgebung: CentOS 6.3 - Kernel 2.6.32-279.el6.i686, iptables v1.4.7 Win7 <---> CentOS Windows gibt die ICMP-Echoanforderung ständig mit einer Geschwindigkeit von 10 pkt / s an CentOS wieder.

In iptables habe ich die folgenden Regeln hinzugefügt, um die Paketrate für eingehende icmp-Anforderungen zu begrenzen. Aber es hat nicht funktioniert. Da die erste eingehende icmp-Anfrage von der 1. Regel akzeptiert wurde und mein Host geantwortet hat, werden alle folgenden icmp-Anfragen von der 2. Regel akzeptiert, die die eingehende icmp-Anfrage als ESTABLISHED-Statuspaket akzeptiert. Ich denke, das macht keinen Sinn.

Geben Sie hier die Bildbeschreibung ein

Ich habe das "Iptables Tutorial 1.2.2" überprüft und die folgende Aussage gefunden. http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#STATEMACHINE

Das Antwortpaket wird, wie bereits erläutert, als EINGESTELLT betrachtet. Wir können jedoch mit Sicherheit wissen, dass nach der ICMP-Antwort absolut kein legaler Verkehr mehr in derselben Verbindung stattfindet. Aus diesem Grund wird der Verbindungsverfolgungseintrag zerstört, sobald die Antwort die gesamte Netfilter-Struktur durchlaufen hat. In jedem der oben genannten Fälle wird die Anfrage als NEU betrachtet, während die Antwort als EINGESTELLT betrachtet wird.

Ich fand jedoch, dass der Conntrack-Eintrag immer da war, /proc/net/nf_conntracknachdem die erste Antwort gesendet wurde.

ipv4     2 icmp     1 24 src=192.168.56.1 dst=192.168.56.101 type=8 code=0 id=1 src=192.168.56.101 dst=192.168.56.1 type=0 code=0 id=1 mark=0 secmark=0 use=2

Ich denke, jede eingehende ICMP-Anfrage sollte als NEUER Status behandelt werden, der nicht eingerichtet wurde, selbst wenn eine ICMP-Verbindung hergestellt wurde.

Korrigieren Sie mich, wenn ich die Statusübereinstimmung nicht richtig verstehe.

Tiefer Himmel
quelle
Können Sie einen Link zu dem von Ihnen gelesenen iptables-Tutorial bereitstellen?
Bahamat
Sicher, Link wurde hinzugefügt.
Deepsky

Antworten:

2

Wie Sie vorschlagen, zeichnet die Verbindungsverfolgung offensichtlich Ihre ICMP- "Sitzung" auf und betrachtet die Pakete daher als ESTABLISHED-Status, sobald ein Ping-Pong-Roundtrip ausgeführt wurde.

Um Ihr Ziel der Drosselung von ICMP-Anforderungen zu erreichen, verschieben Sie die Regel "Alle anderen ICMP löschen" (dritte Regel in Ihrem Screenshot) direkt unter die Regel, die Echoanforderungen mit Ratenbegrenzung akzeptiert. Auf diese Weise wird die ESTABLISHED-Regel für ICMP-Pakete nicht berücksichtigt.

Da ICMP-Pakete jedoch auch zur Kommunikation verschiedener Probleme verwendet werden, empfehle ich dringend, eine Regel hinzuzufügen, die alle icmp-Pakete mit einem anderen Typ als "echo-request" akzeptiert , um sicherzustellen, dass Sie keine Probleme beispielsweise mit TCP-Verbindungen (als Beispiel: "Verbindung abgelehnt" wird über ICMP kommuniziert. Die Regel, die ich vorschlage, ist:

iptables -A INPUT -p icmp ! --icmp-type echo-request -j ACCEPT

und platzieren Sie es direkt unter Ihrer Ratenbegrenzungsregel, die ECHO-Anfragen akzeptiert, und direkt über der Regel "Alle anderen ICMP löschen".

Jonas Berlin
quelle