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 TRACE
mais 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?
Réponses:
Courir:
Cela m'a arrangé.
la source
On dirait (c'est-à-dire qu'il fonctionne pour moi) avec un nouveau noyau, cela est nécessaire (pour IPv4):
crédits:
la source
modinfo nf_log_ipv4
description dit simplement: "Journalisation des paquets IPv4 Netfilter". Une description pourrait améliorer la réponse: que fait exactement le sysctl?J'ai trouvé que je devais effectuer les deux réponses précédentes, dans cet ordre:
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:
Les numéros ici représentent les numéros de famille de protocoles, tels que définis dans
/usr/include/bits/socket.h
. 2 estAF_INET
(c'est IPv4) et 10 estAF_INET6
(IPv6).la source
Cela a fonctionné pour moi
sudo sysctl net.netfilter.nf_log.2=ipt_LOG
la source