Come abilitare IPtables TRACE Target su Debian Squeeze (6)


11

Sto cercando di utilizzare il target TRACE di IPtables ma non riesco a ottenere alcuna traccia delle informazioni registrate. Voglio usare ciò che è descritto qui: Debugger per Iptables .

Dall'uomo iptables per 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.

Uso la seguente regola: iptables -A PREROUTING -t raw -p tcp -j TRACEma nulla è aggiunto in / var / log / syslog o /var/log/kern.log!

Manca un altro passo? Sto guardando nel posto sbagliato?

modificare

Anche se non riesco a trovare le voci di registro, la destinazione TRACE sembra essere impostata correttamente poiché i contatori di pacchetti vengono incrementati:

# 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

modifica 2

La regola iptables -A PREROUTING -t raw -p tcp -j LOG fa pacchetto di informazioni di stampa in / var / log / syslog ... Perché il lavoro non TRACE?


1
appena imbattuto in un programma Python (che è anche chiamato iptables-trace :). All'avvio aggiunge una regola TRACE con condizioni specificate nell'esecuzione di iptables, analizza e visualizza l'output formattato per l'output TRACE risultante fino all'arresto del programma (che rimuove la regola TRACE da iptables). Ci proverò presto ...
chris

Risposte:


8

Correre:

modprobe ipt_LOG

Ciò ha risolto il problema per me.


Grazie, ha funzionato! I log sono disponibili in / var / log / syslog o /var/log/kern.log
bernie

14

Sembra come (cioè funziona per me) con il nuovo kernel questo è necessario (per IPv4):

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

titoli di coda:


Questo è quello che ha funzionato per me su Ubuntu 16.04 (kernel 4.4.0-21-generico)
Ash Berlin-Taylor

Sfortunatamente la modinfo nf_log_ipv4descrizione dice solo: "Registrazione dei pacchetti IPv4 di Netfilter". Qualche descrizione potrebbe migliorare la risposta: cosa fa esattamente il sysctl?
U. Windl,

8

Ho scoperto che dovevo eseguire entrambe le risposte precedenti, in questo ordine:

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

Ecco un paio di cose che ho scoperto lungo la strada.

È possibile ottenere un elenco di logger validi (insieme al logger attualmente selezionato) con i seguenti:

cat /proc/net/netfilter/nf_log

I numeri qui rappresentano i numeri della famiglia di protocollo, come definito in /usr/include/bits/socket.h. 2 è AF_INET(ovvero IPv4) e 10 è AF_INET6(IPv6).


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.