Як увімкнути ціль TRACE TarACE на Debian Squeeze (6)


11

Я намагаюся використовувати ціль TRACE IPtables, але я не можу отримати інформацію про сліди. Я хочу використовувати те, що тут описано: Налагоджувач для Iptables .

Від iptables man для 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 робить інформацію друку пакета в / вар / Журнал / системний журнал ... Чому не відстежує роботу?


1
просто натрапили на програму python (яку також називають iptables-trace :). Після запуску додає правило TRACE із заданими умовами до запуску iptables, синтаксичного аналізу та відображення відформатованого виводу для результуючого результату TRACE до зупинки програми (що видаляє правило TRACE з iptables). Спробую це незабаром ...
chris

Відповіді:


8

Виконати:

modprobe ipt_LOG

Це зафіксувало це для мене.


Дякую, що спрацювало! Журнали доступні в / var / log / syslog або /var/log/kern.log
bernie

14

Схоже (працює для мене) з новим ядром, це потрібно (для IPv4):

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

кредити:


Це працювало для мене на Ubuntu 16.04 (ядро 4.4.0-21-generic)
Еш Берлін-Тейлор

На жаль, modinfo nf_log_ipv4опис просто говорить: "Веб-журнал пакетів Netfilter IPv4". Деякий опис міг би покращити відповідь: Що саме робить sysctl?
U. Windl

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).


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.