В настоящее время я пытаюсь разделить часть моих журналов IPTables из kern.log в файл с именем iptables.log. По сути, у меня есть несколько разных адаптеров, и я регистрирую запросы на порт 80 на каждом из них. Эти правила работают и отлично выводятся в kern.log. Вот пример:
-A INPUT -d 192.168.100.10 -p tcp -m tcp --dport 80 -j LOG --log-prefix "[10010] REQUEST Port 80: " --log-level 7
Я сделал следующее, чтобы попытаться выделить то, что хочу:
iptables.conf
файл в /etc/rsyslog.d/
со следующим содержанием: :msg,contains,"[10010] REQUEST Port 80: " -/var/log/iptables.log
/etc/rsyslog.conf
содержать следующую строку: kern.debug /var/log/iptables.log
service rsyslog restart
Несмотря на это, мои «[10010]» все еще записываются в файл kern.log вместо iptables.log.
Любая помощь по этому поводу будет принята с благодарностью.
Наконец-то получил доступ к тестовой системе Linux.
Вдруг я вспомнил: rsyslogd
пишет системные журналы как syslog
пользователь, а не как root
. (Проверено с помощью ps aux | grep [r]syslog
)
Так, chown syslog.syslog /var/log/iptables.log
должен исправить проблему.
(Решение протестировано и работает в моей системе)