Aktivieren von IPtables TRACE-Ziel bei Debian Squeeze (6)

11

Ich versuche, das TRACE-Ziel von IPtables zu verwenden, aber ich kann anscheinend keine Trace-Informationen protokollieren. Ich möchte das verwenden, was hier beschrieben wird: Debugger für Iptables .

Vom iptables Mann für TRACE:

   This target marks packes so that the kernel will log every  rule  which
   match  the  packets  as  those traverse the tables, chains, rules. (The
   ipt_LOG or ip6t_LOG module is required for the  logging.)  The  packets
   are   logged   with   the   string   prefix:  "TRACE:  tablename:chain-
   name:type:rulenum " where type can be "rule" for plain  rule,  "return"
   for  implicit  rule at the end of a user defined chain and "policy" for
   the policy of the built in chains.
   It can only be used in the raw table.

Ich verwende die folgende Regel: iptables -A PREROUTING -t raw -p tcp -j TRACEAber weder in / var / log / syslog noch in /var/log/kern.log wird etwas angehängt!

Fehlt noch ein Schritt? Suche ich am falschen Ort?

bearbeiten

Obwohl ich keine Protokolleinträge finden kann, scheint das TRACE-Ziel korrekt eingerichtet zu sein, da die Paketzähler inkrementiert werden:

# iptables -L -v -t raw
Chain PREROUTING (policy ACCEPT 193 packets, 63701 bytes)
 pkts bytes target     prot opt in     out     source               destination
  193 63701 TRACE      tcp  --  any    any     anywhere             anywhere

Chain OUTPUT (policy ACCEPT 178 packets, 65277 bytes)
 pkts bytes target     prot opt in     out     source               destination

bearbeiten 2

Die Regel iptables -A PREROUTING -t raw -p tcp -j LOG tut Druckpaketinformationen zu / var / log / syslog ... Warum funktioniert TRACE Arbeit?

Bernie
quelle
1
bin gerade auf ein Python-Programm gestoßen (das auch iptables-trace genannt wird :). Beim Start wird eine TRACE-Regel mit festgelegten Bedingungen zum Ausführen von iptables hinzugefügt, analysiert und zeigt formatierte Ausgaben für die resultierende TRACE-Ausgabe an, bis das Programm gestoppt wird (wodurch die TRACE-Regel aus iptables entfernt wird). Werde es bald versuchen ...
Chris

Antworten:

8

Lauf:

modprobe ipt_LOG

Das hat es für mich behoben.

Gido Bruno
quelle
Danke, das hat funktioniert! Die Protokolle sind in / var / log / syslog oder /var/log/kern.log
bernie
14

Scheint wie (dh funktioniert für mich) mit neuem Kernel dies wird benötigt (für IPv4):

modprobe nf_log_ipv4
sysctl net.netfilter.nf_log.2=nf_log_ipv4

Credits:

akostadinov
quelle
Dies war derjenige, der für mich unter Ubuntu 16.04 (Kernel 4.4.0-21-generic) funktioniert hat
Ash Berlin-Taylor
7

Ich stellte fest, dass ich beide vorherigen Antworten in dieser Reihenfolge ausführen musste:

sudo modprobe ipt_LOG
sudo sysctl net.netfilter.nf_log.2=ipt_LOG

Hier sind einige Dinge, die ich unterwegs entdeckt habe.

Sie können eine Liste gültiger Logger (zusammen mit dem aktuell ausgewählten Logger) mit den folgenden Informationen abrufen:

cat /proc/net/netfilter/nf_log

Die Zahlen hier stellen die Protokollfamiliennummern dar, wie in definiert /usr/include/bits/socket.h. 2 ist AF_INET(das ist IPv4) und 10 ist AF_INET6(IPv6).

Mavit
quelle
2

Das hat bei mir funktioniert sudo sysctl net.netfilter.nf_log.2=ipt_LOG

Nikolay Bryskin
quelle