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 TRACE
Aber 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?
Antworten:
Lauf:
Das hat es für mich behoben.
quelle
Scheint wie (dh funktioniert für mich) mit neuem Kernel dies wird benötigt (für IPv4):
Credits:
quelle
Ich stellte fest, dass ich beide vorherigen Antworten in dieser Reihenfolge ausführen musste:
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:
Die Zahlen hier stellen die Protokollfamiliennummern dar, wie in definiert
/usr/include/bits/socket.h
. 2 istAF_INET
(das ist IPv4) und 10 istAF_INET6
(IPv6).quelle
Das hat bei mir funktioniert
sudo sysctl net.netfilter.nf_log.2=ipt_LOG
quelle