Estoy tratando de usar el objetivo TRACE de IPtables pero parece que no puedo registrar ninguna información de seguimiento. Quiero usar lo que se describe aquí: Depurador para Iptables .
Del hombre de iptables para 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 siguiente regla: ¡ iptables -A PREROUTING -t raw -p tcp -j TRACE
pero no se agrega nada en / var / log / syslog o /var/log/kern.log!
¿Falta otro paso? ¿Estoy buscando en el lugar equivocado?
editar
Aunque no puedo encontrar entradas de registro, el objetivo TRACE parece estar configurado correctamente ya que los contadores de paquetes se incrementan:
# 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
editar 2
La regla iptables -A PREROUTING -t raw -p tcp -j LOG
hace la información del paquete de impresión en / var / log / syslog ... ¿Por qué no funciona TRACE?
Respuestas:
Correr:
Eso me lo arregló.
fuente
Parece que (es decir, funciona para mí) con un nuevo núcleo, esto es necesario (para IPv4):
créditos:
fuente
modinfo nf_log_ipv4
descripción solo dice: "Netfilter IPv4 paquete de registro". Alguna descripción podría mejorar la respuesta: ¿Qué hace exactamente el sysctl?Descubrí que necesitaba realizar las dos respuestas anteriores, en este orden:
Aquí hay un par de cosas que descubrí en el camino.
Puede obtener una lista de registradores válidos (junto con el registrador seleccionado actualmente) con lo siguiente:
Los números aquí representan los números de familia del protocolo, como se define en
/usr/include/bits/socket.h
. 2 esAF_INET
(eso es IPv4) y 10 esAF_INET6
(IPv6).fuente
Esto funciono para mi
sudo sysctl net.netfilter.nf_log.2=ipt_LOG
fuente