Как читать журналы трассировки iptables (номера политик)


Поэтому я добавил

sudo iptables -t raw -A PREROUTING -p tcp --dport 25 -j TRACE

А также

sudo iptables -t raw -A OUTPUT -p tcp --dport 25 -j TRACE

И когда я grep мой системный журнал для трассировки я получаю выходные данные, которые выглядят следующим образом

Jan 19 09:14:46 dev109 kernel: [29067248.683235] TRACE: raw:OUTPUT:rule:2 IN= OUT=eth0  ...
Jan 19 09:14:46 dev109 kernel: [29067248.683244] TRACE: raw:OUTPUT:policy:5 IN= OUT=eth0 ...
Jan 19 09:14:46 dev109 kernel: [29067248.683254] TRACE: mangle:OUTPUT:policy:1 IN= OUT=eth0 ...
Jan 19 09:14:46 dev109 kernel: [29067248.683262] TRACE: filter:OUTPUT:policy:1 ...
Jan 19 09:14:46 dev109 kernel: [29067248.683269] TRACE: mangle:POSTROUTING:policy:1 ...
Jan 19 09:14:46 dev109 kernel: [29067248.683432] TRACE: raw:OUTPUT:rule:4 IN= OUT=eth0 ...
Jan 19 09:14:46 dev109 kernel: [29067248.683441] TRACE: raw:OUTPUT:policy:5 IN= OUT=eth0 ...

Я пытаюсь понять, к чему относятся номера политик, это policy:1 == ACCEPT?, если да, то что означает policy:5?

1 2

1 ответ:

policy:1 Есть type:rulenum. Или по-другому type="policy" и rulenum=1.

Прочитайтеэто внимательно. В частности:

След Эта цель помечает пакеты так, чтобы ядро регистрировало каждое правило, которое соответствует пакетам, когда они пересекают таблицы, цепочки, правила. (Для ведения журнала требуется модуль ipt_LOG или ip6t_LOG.) Пакеты регистрируются со строковым префиксом:

"след: имя_таблицы:chainname:тип:rulenum ", где тип может быть "правилом" для обычного правило, "возвращение" для неявного правила в конце пользователя определена цепочка и "политика" для политики встроенных цепочек. Его можно использовать только в сырой таблице.

Теперь давайте возьмем один из префиксов из вопроса TRACE: mangle:OUTPUT:policy:1 и применим то, что мы узнали:
tablename = mangle
chainname = OUTPUT
type      = policy]
rulenum   = 1