Como ativar o alvo TRACE do IPtables no Debian Squeeze (6)

11

Estou tentando usar o alvo TRACE de IPtables, mas não consigo obter nenhuma informação de rastreamento registrada. Eu quero usar o que está descrito aqui: Depurador para Iptables .

Do homem do 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.

Eu uso a seguinte regra: iptables -A PREROUTING -t raw -p tcp -j TRACE , mas nada é acrescentado em / var / log / syslog ou /var/log/kern.log!

Há mais um passo faltando? Estou procurando no lugar errado?

editar

Mesmo que não consiga encontrar entradas de log, o alvo TRACE parece estar configurado corretamente, pois os contadores de pacotes são incrementados:

# 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

A regra iptables -A PREROUTING -t raw -p tcp -j LOG faz imprimir informações do pacote em / var / log / syslog ... Por que o TRACE não funciona?

    
por bernie 04.05.2012 / 06:37

4 respostas

8

Você precisa executar:

modprobe ipt_LOG. 

Isso fez isso por mim.

    
por 13.06.2012 / 12:03
12

Parece que (isto é, funciona para mim) com o novo kernel isso é necessário (para o IPv4):

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

créditos:

  • link
  • votando em outras respostas, pois elas me deram dicas importantes
por 27.11.2015 / 23:00
7

Descobri que precisava executar as duas respostas anteriores, nesta ordem:

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

Aqui estão algumas coisas que descobri ao longo do caminho.

Você pode obter uma lista de registradores válidos (junto com o registrador atualmente selecionado) com o seguinte:

cat /proc/net/netfilter/nf_log

Os números aqui representam os números da família de protocolos, conforme definido em /usr/include/bits/socket.h . 2 é AF_INET (que é IPv4) e 10 é AF_INET6 (IPv6).

    
por 09.08.2013 / 14:26
2

Isso funcionou para mim sudo sysctl net.netfilter.nf_log.2=ipt_LOG

    
por 08.01.2013 / 00:49