Как сделать Iptables логирование в отдельный файл?

Сделала такие настройки
/etc/rsyslog.d/iptables.conf со следующим содержанием:

echo ':msg, contains, "Iptables: " -/var/log/iptables.log' > /etc/rsyslog.d/iptables.conf
echo '& ~' >> /etc/rsyslog.d/iptables.conf
service rsyslog restart

iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j LOG --log-prefix "Iptables: Ping detected: "
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT

и все равно iptqables пишет в dmesg свои логи, что не так?
  • Вопрос задан
  • 5030 просмотров
Пригласить эксперта
Ответы на вопрос 3
take
@take
я люблю любить
Ответ написан
Комментировать
rudenkovk
@rudenkovk
DevOps, sysadmin
Вот и у меня такая же проблема. Если раскурю, поделюсь.

[upd] Мой рабочий вариант:

cat /etc/rsyslog.d/20-iptables.conf
:msg, contains, "[BLACKLIST" /var/log/blacklist.log
:msg, contains, "[PING" /var/log/ping.log
:msg, contains, "[INTERNAL_ADDR" /var/log/internal_addr.log
:msg, contains, "[SCAN" /var/log/scan.log

${IPT} -A icmp_rules -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j LOG --log-prefix '[PING] : '
Ответ написан
Комментировать
helldweller
@helldweller
PornOps
Важен порядок подключения Вашего конфига!
там есть 50-default.conf - посмотрите его он заворачивает все до вашего конфига но не останавливает обработку.
Переименуйте Ваш конфиг в 10-iptables.conf и будет Вам счастье!
и добавьте опцию stop или ~ для того что бы останавливать обработку сообщений этих

Пример
if ( $syslogtag == "nginx_access:" ) then {
    action(type="omfile" file="/var/log/nginx_access.log")
    stop
}

или
if $programname startswith "nginx_access" then /var/log/nginx_access.log
&~
if $programname startswith "nginx_error" then /var/log/nginx_error.log
&~

Вот годная статья
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы