Frage Debugregeln in Iptables [duplizieren]


Wie kann ich wissen, wie viele Pakete durch meine iptables-Regeln fallengelassen wurden?

Gibt es einen Debugging-Mechanismus, um zu sehen, welche Regel mein Paket löscht oder akzeptiert?


26
2017-10-26 06:21


Ursprung


Ich habe hier eine ähnliche Frage beantwortet. serverfault.com/questions/122157/debugger-for-iptables/... - Zoredache
@Zoredache Diese Frage wird in 2009 am 26. Oktober gestellt und die Frage, auf die Sie hingewiesen haben, wird am 13. März 2010 gefragt ... Ich frage mich, wie diese Frage zu ihr doppelt wird? Also markiere diese Frage lieber als duplicate und erwähne die neu gestellte Frage als mögliches Duplikat zu meiner Frage. - codingfreak


Antworten:


Wenn Sie einen ausreichend aktuellen Kernel und eine Version von iptables haben, können Sie das TRACE-Ziel verwenden (Es scheint zumindest in Debian 5.0 eingebaut zu sein). Sie sollten die Bedingungen für Ihre Ablaufverfolgung so genau wie möglich festlegen und alle TRACE-Regeln deaktivieren, wenn Sie nicht debuggen, da sie viele Informationen in die Protokolle ausgibt.

SPUR
  Diese Zielmarkierungen packen das so   Der Kernel protokolliert jede Regel, die   Passen Sie die Pakete an, wenn diese durchlaufen   die Tabellen, Ketten, Regeln. (Das   ipt_LOG oder ip6t_LOG Modul ist erforderlich   für die Protokollierung.) Die Pakete sind   protokolliert mit dem String-Präfix: "TRACE:   Tabellenname: Kettenname: Typ: rulenum "   wo der Typ für Ebene "Regel" sein kann   Regel, "Return" für implizite Regel um   das Ende einer benutzerdefinierten Kette und   "Politik" für die Politik der gebauten   in Ketten. Es kann nur in der verwendet werden   Rohtabelle.

Wenn Sie Regeln wie diese hinzugefügt haben

iptables -t raw -A PREROUTING -p tcp --destination 192.168.0.0/24 --dport 80 -j TRACE
iptables -t raw -A OUTPUT -p tcp --destination 192.168.0.0/24 --dport 80 -j TRACE

Sie erhalten eine Ausgabe, die so aussieht.

# cat /var/log/kern.log | grep 'TRACE:'
Mar 24 22:41:52 enterprise kernel: [885386.325658] TRACE: raw:PREROUTING:policy:2 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.12.152 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=80 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mar 24 22:41:52 enterprise kernel: [885386.325689] TRACE: mangle:PREROUTING:policy:1 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.12.152 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=80 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mar 24 22:41:52 enterprise kernel: [885386.325713] TRACE: nat:PREROUTING:rule:1 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.12.152 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=80 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mar 24 22:41:52 enterprise kernel: [885386.325731] TRACE: nat:nat.1:rule:1 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.12.152 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=80 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mar 24 22:41:52 enterprise kernel: [885386.325731] TRACE: mangle:INPUT:policy:1 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.32.10 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=3128 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mar 24 22:41:52 enterprise kernel: [885386.325731] TRACE: filter:INPUT:rule:2 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.32.10 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=3128 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mar 24 22:41:52 enterprise kernel: [885386.325731] TRACE: filter:in_world:rule:1 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.32.10 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=3128 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mar 24 22:41:52 enterprise kernel: [885386.325731] TRACE: filter:in_world_all_c1:return:2 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.32.10 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=3128 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mar 24 22:41:52 enterprise kernel: [885386.325731] TRACE: filter:in_world:rule:2 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.32.10 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=3128 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mar 24 22:41:52 enterprise kernel: [885386.325731] TRACE: filter:in_world_irc_c2:return:2 IN=eth0 OUT= MAC=00:1d:7d:aa:e3:4e:00:04:4b:05:b4:dc:08:00 SRC=192.168.32.18 DST=192.168.32.10 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=30561 DF PROTO=TCP SPT=53054 DPT=3128 SEQ=3653700382 ACK=0 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)

24
2018-03-25 05:51



Hier finden Sie weitere Informationen zum Thema: adminberlin.de/iptables-debugging - zzeroo


Eine weitere Methode zum Debuggen Ihrer Regeln besteht darin, eine identische Regel zu der Regel hinzuzufügen, für die Sie sich interessieren. Legen Sie jedoch die folgende Aktion fest:

-j LOG --log-prefix "rule description"

Jedes Mal, wenn Ihre Regel übereinstimmt, erhalten Sie eine Zeile im Syslog mit vielen nützlichen Informationen über das Paket.


13
2017-10-26 06:41



+1 vereinbart ... z.B. Es ist eine übliche (und oft gute) Praxis, einige oder alle verlorenen Pakete zu protokollieren. - David Z


Lauf iptables -L -v (hinzufügen -t nat für NAT-Regeln), und neben jeder Ihrer Regeln werden Paket- und Bytezähler angezeigt. Das zeigt Ihnen, welche Ihrer Regeln die Ursache für das Akzeptieren / Ablehnen eines bestimmten Pakets war (je nachdem, welcher Zähler erhöht wurde).


9
2017-10-26 06:36



Obwohl, wenn ich die Maschine neu starte, kann ich immer noch Paket- und Byte-Zähler sehen, die nicht auf 0 gesetzt sind. Chain PREROUTING (Policy AKZEPTIEREN 1824 Pakete, 312K Bytes) Wie kann ich diese Werte beim Start auf NULL zurücksetzen? - codingfreak
Von iptables(8): -Z, --zero [chain] Nullen Sie die Paket- und Bytezähler in allen Ketten. - womble♦