Gibt es eine Möglichkeit herauszufinden, welche Iptables-Regel für das Verwerfen eines Pakets verantwortlich war?

31

Ich habe ein System, auf dem bereits eine Firewall installiert ist. Die Firewall besteht aus über 1000 Iptables-Regeln. Eine dieser Regeln ist das Verwerfen von Paketen, die ich nicht verwerfen möchte. (Ich weiß das, weil ich iptables-savegefolgt bin iptables -Fund die Anwendung funktioniert hat.) Es gibt viel zu viele Regeln, um sie manuell zu sortieren. Kann ich etwas tun, um mir zu zeigen, nach welcher Regel die Pakete verworfen werden?

Shawn J. Goff
quelle
1
fedorahosted.org/dropwatch könnte auch in Zukunft hilfreich sein.
Shawn J. Goff
Um zu sehen, wie die Zähler in Echtzeit aktualisiert werden, verwenden Sie <br/> <code> watch iptables -L -v -n </ code>
Chris Gibb

Antworten:

19

Sie können zu Beginn der Kette eine TRACE-Regel hinzufügen, um jede Regel zu protokollieren, die das Paket durchläuft.

Ich würde überlegen iptables -L -v -n | less, ob Sie die Regeln durchsuchen können. Ich würde Hafen schauen; Adresse; und anwendbare Schnittstellenregeln. Da Sie so viele Regeln haben, wird wahrscheinlich eine meist geschlossene Firewall ausgeführt, und es fehlt eine Zulassungsregel für den Datenverkehr.

Wie ist die Firewall aufgebaut? Die Builder-Regeln lassen sich möglicherweise einfacher anzeigen als die erstellten Regeln.

BillThor
quelle
Nachdem ich diese Frage gestellt hatte, stellte ich fest, dass die Regeln von APF stammen, und ich konnte das beheben. Ich liebe das TRACE-Ziel jedoch. Das wäre sehr effektiv gewesen.
Shawn J. Goff
2
Ein Beispiel für die Verwendung des TRACE-Ziels finden Sie hier: serverfault.com/questions/122157/debugger-for-iptables/… .
slm
14

Führen iptables -L -v -nSie den Befehl aus, um die Paket- und Bytezähler für jede Tabelle und für jede Regel anzuzeigen.

Ninjalj
quelle
Das ist gut, ich hoffe auf etwas Besseres, da es 1000 Regeln und 1000 verworfene Pakete gibt.
Shawn J. Goff
Verwenden Sie sortdiese Option, um Regeln nach Paketzähler zu sortieren.
Ninjalj
13

Da iptables -L -v -nes Zähler gibt, können Sie Folgendes tun.

iptables -L -v -n > Sample1
#Cause the packet that you suspect is being dropped by iptables
iptables -L -v -n > Sample2
diff Sample1 Sample2

Auf diese Weise werden nur die inkrementierten Regeln angezeigt.

Kyle Brandt
quelle
9

In meiner Firma, die wir verwenden watch -n 2 -d iptables -nvL, werden Änderungen zwischen Anforderungen angezeigt

Marcelo Salazar
quelle
5
watch -n1 -d "iptables -vnxL | grep -v -e pkts -e Chain | sort -nk1 | tac | column -t"

Denken Sie daran, dies zeigt nur Dinge für den Tisch angezeigt werden .

Fügen -t natSie Ihrem iptables-Aufruf (oder die Tabelle, die Sie neben filter verwenden) hinzu, um die Regeln dort zu überprüfen.

sjas
quelle