Comment activer la cible IPtables TRACE sur Debian Squeeze (6)

11

J'essaie d'utiliser la cible TRACE d'IPtables mais je n'arrive pas à obtenir d'informations de trace enregistrées. Je veux utiliser ce qui est décrit ici: Débogueur pour Iptables .

De l'homme iptables pour 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.

J'utilise la règle suivante: iptables -A PREROUTING -t raw -p tcp -j TRACEmais rien n'est ajouté dans / var / log / syslog ou /var/log/kern.log!

Y a-t-il une autre étape manquante? Suis-je au mauvais endroit?

Éditer

Même si je ne trouve pas les entrées de journal, la cible TRACE semble être configurée correctement car les compteurs de paquets sont incrémentés:

# 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

modifier 2

La règle iptables -A PREROUTING -t raw -p tcp -j LOG ne l' information de paquets d'impression / var / log / syslog ... Pourquoi ne fonctionne pas TRACE?

bernie
la source
1
vient de tomber sur un programme python (qui est aussi appelé iptables-trace :). Au démarrage, il ajoute une règle TRACE avec des conditions spécifiées dans l'exécution d'iptables, analyse et affiche la sortie formatée pour la sortie TRACE résultante jusqu'à ce que le programme soit arrêté (ce qui supprime la règle TRACE d'iptables). J'essaierai cela bientôt ...
chris

Réponses:

8

Courir:

modprobe ipt_LOG

Cela m'a arrangé.

Gido Bruno
la source
Merci, ça a marché! Les journaux sont disponibles dans / var / log / syslog ou /var/log/kern.log
bernie
14

On dirait (c'est-à-dire qu'il fonctionne pour moi) avec un nouveau noyau, cela est nécessaire (pour IPv4):

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

crédits:

akostadinov
la source
C'est celui qui a fonctionné pour moi sur Ubuntu 16.04 (noyau 4.4.0-21-générique)
Ash Berlin-Taylor
Malheureusement, la modinfo nf_log_ipv4description dit simplement: "Journalisation des paquets IPv4 Netfilter". Une description pourrait améliorer la réponse: que fait exactement le sysctl?
U. Windl
8

J'ai trouvé que je devais effectuer les deux réponses précédentes, dans cet ordre:

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

Voici quelques choses que j'ai découvertes en cours de route.

Vous pouvez obtenir une liste des enregistreurs valides (avec l'enregistreur actuellement sélectionné) avec les informations suivantes:

cat /proc/net/netfilter/nf_log

Les numéros ici représentent les numéros de famille de protocoles, tels que définis dans /usr/include/bits/socket.h. 2 est AF_INET(c'est IPv4) et 10 est AF_INET6(IPv6).

mavit
la source
2

Cela a fonctionné pour moi sudo sysctl net.netfilter.nf_log.2=ipt_LOG

Nikolay Bryskin
la source