У меня есть это правило в моих iptables:
iptables -A INPUT -s 192.168.11.0/24 -j LOG
Мой вопрос заключается в следующем:
Где находится файл журнала 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 # не зарегистрированы ранее