Где я могу найти файл журнала iptables и как я могу изменить его местоположение?

У меня есть это правило в моих iptables:

iptables -A INPUT -s 192.168.11.0/24 -j LOG

Мой вопрос заключается в следующем:

Где находится файл журнала iptables и как я могу его изменить?

Эти журналы генерируются ядром, поэтому они отправляются в файл, который получает журналы ядра: /var/log/kern.log.

Если вы хотите перенаправить эти журналы в другой файл, это невозможно сделать с помощью iptables. Это можно сделать в конфигурации программы, которая отправляет журналы: rsyslog. В правиле iptables добавьте префикс, который не используется никаким другим журналом ядра:

iptables -A INPUT -s 192.168.11.0/24 -j LOG --log-prefix='[netfilter] '

Следуя примеру, приведенному 20-ufw.conf, создайте файл в разделе /etc/rsyslog.d/00-my_iptables.conf содержащий:

:msg,contains,"[netfilter] " -/var/log/iptables.log& stop

Ввод правила раньше (имена файлов в /etc/rsyslog.d используются в лексикографическом порядке) и добавление &stop приводит к тому, что эти журналы отправляются только в указанное местоположение, а не в местоположение по умолчанию.

Rsyslog необходимо перезапустить, чтобы произошли изменения конфигурации.

Я знаю, что это слишком поздно, и ответ уже помечен как принятый. Я просто хочу поделиться новой информацией.

Файл журнала LOG действие находится в любом /var/log/syslog (Ubuntu и аналогичные операционные системы) или /var/log/messages (CentOS и аналогичные операционные системы).

Если у вас возникли проблемы с поиском нужного файла, вы можете попробовать сделать это следующим образом:

find /var/log -mmin 1

Это позволит найти любой файл, измененный за последние 1 минуту внутри /var/log и ниже.Вы можете обнаружить, что -j LOG может обновлять больше, чем просто один файл.

Например, в Ubuntu 18 оба /var/log/kern.log и /var/log/syslog на них влияет ведение журнала netfilter.

# на моем компьютере!# я написал вверху скриптовых таблиц -Fiptables -X# iptables -A INPUT -m state --state NEW -j LOG \ --log-prefix='[iptables_input] 'iptables -A OUTPUT -m state --state NEW -j LOG \ --log-prefix='[iptables_output]'# и нашел результаты в /var/log/syslog# инструкции ЖУРНАЛА выполняются только тогда, когда другие инструкции iptables # не зарегистрированы ранее