В моем приложении я передаю пакеты из netfilter в пользовательское пространство с помощью NFQUEU, а затем сравниваю его с моими критериями и отбрасываю или принимаю пакеты через NF_DROP или NF_ACCEPT в функции nfq_set_verdict2. Я хочу регистрировать отброшенные пакеты в обычном формате журнала iptables. Как могу ли я этого добиться?
Регистрация пакетов, отброшенных с помощью nfq_set_verdict2 (NF_DROP)
Ответы (1)
Для регистрации отброшенных пакетов создайте новую цепочку, которая будет отбрасывать каждый полученный пакет. перенаправьте все те пакеты, которые вы хотите отбросить, в новую цепочку и используйте синтаксис ведения журнала при объявлении новой цепочки
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP
строка №3: -m limit: используется модуль сопоставления лимитов. Используя это, вы можете ограничить ведение журнала, используя опцию –limit.
–limit 2/min
: указывает максимальную среднюю скорость совпадения для ведения журнала. В этом примере для аналогичных пакетов будет ограничено ведение журнала до 2 пакетов в минуту. Вы также можете указать 2/second, 2/minute, 2/hour, 2/day
. Это полезно, если вы не хотите загромождать сообщения журнала повторяющимися сообщениями об одних и тех же отброшенных пакетах.
-j LOG
: указывает, что целью этого пакета является LOG. то есть запись в файл журнала.
–log-prefix “IPTables-Dropped
: «Вы можете указать любой префикс журнала, который будет добавлен к сообщениям журнала, которые будут записываться в файл /var/log/messages.
–log-level 4
Это стандартные уровни системного журнала. 4 - предупреждение. Вы можете использовать число от 0 до 7. 0 — аварийный, 7 — отладочный.
iptables -A LOGGING -j DROP
: Наконец, отбросьте все пакеты, пришедшие в цепочку LOGGING. то есть теперь он действительно отбрасывает входящие пакеты.