Я пытаюсь для перенаправления журнала iptables в другой файл.iptables @ @ " Затем в папке /etc/rsyslog.d я создал файл с записями:
: msg, contains, " iptables @ @" /var/log/iptables.log & ~ Я также попытался сделать пустую строку между двумя вышеупомянутыми строками. Я получаю записи журнала iptables, которые теперь идут в файл iptables.log. Но они ТАКЖЕ идут в файл /var/log/kern.log. Я хочу подавить последнее. Как мне это сделать. Я использую Ubuntu 14.04 LTS.
Когда ваш /etc/rsyslog.conf загружает ваш * .conf в /etc/rsyslog.d , он читает ваши файлы в алфавитном порядке. Итак, вам нужно убедиться, что ваши правила находятся в файле, который предшествует 50-default.conf, например:
01-myiptablesrules.conf
Таким образом, ваши правила будут прочитаны первыми, а они будут отброшены. Вы также должны использовать этот синтаксис:
:msg, contains, "iptables@@" {
*.* /var/log/iptables.log
stop
}
* Вы должны использовать stop вместо ~
Или, если у вас нет других kern. *, Кроме ваших сообщений iptables, вам следует изменить 50-default.conf с:
kern.* /var/log/iptables.log
Есть ли строка в ваших файлах конфигурации rsyslog, которая выводит сообщение в / var / log / kern .log
? Если да, опубликуйте этот код. Также опубликуйте свой номер версии rsyslog. Между тем, это может сработать:
:msg,contains,"iptables@@" /var/log/iptables.log
:msg,contains,"iptables@@" ~
Хотя я считаю, что после того, как вы сделаете эту вторую строку, rsyslog проигнорирует все сообщения, содержащие iptables @@
, поэтому его нельзя будет зарегистрировать в другом месте (после этой строки).