Estou tentando usar o destino TRACE do 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 o 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 é anexado em / var / log / syslog ou /var/log/kern.log!
Falta outro passo? Estou procurando no lugar errado?
editar
Mesmo que eu não consiga encontrar entradas de log, o destino 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 informações pacote de impressão para / var / log / syslog ... Por que trabalhar não TRACE?
Respostas:
Corre:
Isso consertou para mim.
fonte
Parece (ou seja, funciona para mim) com o novo kernel isso é necessário (para IPv4):
créditos:
fonte
modinfo nf_log_ipv4
descrição diz apenas: "Registro de pacotes do Netfilter IPv4". Alguma descrição poderia melhorar a resposta: O que o sysctl faz exatamente?Descobri que precisava executar as duas respostas anteriores, nesta ordem:
Aqui estão algumas coisas que eu descobri ao longo do caminho.
Você pode obter uma lista de registradores válidos (junto com o registrador atualmente selecionado) com o seguinte:
Os números aqui representam os números da família protocolo, tal como definido na
/usr/include/bits/socket.h
. 2 éAF_INET
(que é IPv4) e 10 éAF_INET6
(IPv6).fonte
Isso funcionou para mim
sudo sysctl net.netfilter.nf_log.2=ipt_LOG
fonte