Я хочу создать файл iptables.log
который регистрирует все попытки DROP и вторжения. Вот что я сделал, шаг за шагом:
1) В моем файле правил iptables я поместил следующее:
-A INPUT -j LOG --log-level 4 --log-ip-options --log-prefix "iptables: "
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
# and then the other rules to open up SSH
Тогда я использую iptables-restore
применить изменения.
2) Я создал файл iptables.conf
в пределах /etc/rsyslog.d/
, с этим правилом внутри:
:msg, startswith, "iptables: " -/var/log/iptables.log
& ~
3) В пределах /etc/rsyslog.d/50-default.conf
, Я поставил это:
#iptables
kern.warning /var/log/iptables.log
4) Я перезапускаю rsyslog
демон.
Но, похоже, этого недостаточно для достижения моей цели. Что еще нужно сделать?
Кроме того, я должен сделать правило для -A OUTPUT -j LOG
также или это бесполезно?
Это не немедленный элемент, а скорее аспект «очистки», который является просто хорошей привычкой.
Я рекомендую настроить ротацию журналов, чтобы вы не заполняли раздел журнала новым файлом журнала. Большинство сервисов помещают файл конфигурации в /etc/logrotate.d/. А ведение журнала пакетов может быть ВЕСЬМО болтливым.
Поскольку это новый файл журнала, вам придется добавить его к существующему, например к /etc/logrotate.d/rsyslog.conf.
Это сработало для нас (Debian 6), просто включив дополнительное правило в /etc/rsyslog.d/ и сохранив без изменений файл rsyslog.conf.
Мы подтвердили, что правила каталогов выполняются «до» основного файла rsyslog.conf, а символ «& ~» заставляет совпадающие записи прекращать поиск по следующим правилам.
Это файл в /etc/rsyslog.d/ с
:msg, startswith, "Firewall: " -/var/log/firewall.log
& ~
выполнил эту работу, так как имел также запись для kern.warning, как я понимаю, будет дублировать правила.
В нашем случае правила iptables создаются брандмауэром CSF, поэтому, возможно, проблема в этом. Правила брандмауэра выглядят так
19 2140 113K LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 30/min burst 5 LOG flags 0 level 4 prefix `Firewall: *TCP_IN Blocked* '