Как включить IPtables TRACE Target в Debian Squeeze (6)

11

Я пытаюсь использовать цель TRACE IPtables, но я не могу записать какую-либо информацию о трассировке. Я хочу использовать то, что описано здесь: отладчик для Iptables .

От человека iptables для 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.

Я использую следующее правило: iptables -A PREROUTING -t raw -p tcp -j TRACEно ничего не добавляется ни в / var / log / syslog, ни в /var/log/kern.log!

Есть еще один шаг? Я смотрю не в том месте?

редактировать

Хотя я не могу найти записи в журнале, цель TRACE, кажется, настроена правильно, так как счетчики пакетов увеличиваются:

# 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

редактировать 2

Правило iptables -A PREROUTING -t raw -p tcp -j LOG делает информацию печати пакета в / вар / Журнал / системный журнал ... Почему не отслеживает работу?

Bernie
источник
1
только что наткнулся на программу на python (которая также называется iptables-trace :). При запуске он добавляет правило TRACE с указанными условиями в запущенные iptables, анализирует и отображает форматированный вывод для результирующего вывода TRACE до тех пор, пока программа не будет остановлена ​​(что удаляет правило TRACE из iptables). Попробую это скоро ...
Крис

Ответы:

8

Бегать:

modprobe ipt_LOG

Это исправило это для меня.

Гидо Бруно
источник
Спасибо, что сработало! Журналы доступны в / var / log / syslog или /var/log/kern.log
Берни
14

Похоже (то есть работает для меня) с новым ядром это необходимо (для IPv4):

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

кредиты:

akostadinov
источник
Это был тот, который работал для меня в Ubuntu 16.04 (ядро 4.4.0-21-generic)
Эш Берлин-Тейлор
К сожалению, в modinfo nf_log_ipv4описании просто сказано: «Ведение журнала пакетов Netfilter IPv4». Некоторое описание может улучшить ответ: что именно делает sysctl?
У. Уиндл
8

Я обнаружил, что мне нужно выполнить оба предыдущих ответа, в следующем порядке:

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

Вот несколько вещей, которые я обнаружил по пути.

Вы можете получить список допустимых регистраторов (вместе с выбранным в данный момент регистратором) со следующими данными:

cat /proc/net/netfilter/nf_log

Числа здесь представляют номера семейства протоколов, как определено в /usr/include/bits/socket.h. 2 - это AF_INET(это IPv4), а 10 - это AF_INET6(IPv6).

МАВИТ
источник
2

Это сработало для меня sudo sysctl net.netfilter.nf_log.2=ipt_LOG

Николай Брыскин
источник