Назад | Перейти на главную страницу

Удалить журнал Iptables из сообщений системного журнала kern.log

У меня проблемы с журналами Iptables, я не могу получить их из kern.log, syslog и файлов сообщений.

Я добавил два правила в rsyslog.conf, которые перенаправляют мои сообщения в файл «iptables.log», но журналы также присутствуют в журналах Kern.

Вот мой rsyslog.conf:

###############
#### RULES ####
###############

# Iptables
:msg,contains,"IPT IN/DP: " -/var/log/iptables.log
:msg,contains,"IPT6 IN/DP: " -/var/log/iptables.log
& ~


#
# First some standard log files.  Log by facility.
#
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none,cron.none                -/var/log/syslog
cron.*                          /var/log/cron.log
daemon.*                        -/var/log/daemon.log
kern.*                          -/var/log/kern.log
lpr.*                           -/var/log/lpr.log
mail.*                          -/var/log/mail.log
user.*                          -/var/log/user.log

#(some other rules ....)
mail,news.none          -/var/log/messages

Как я могу записать в журнал потерянный пакет iptable только в iptables.log, а не в файлах kern.log?

У вас есть пример правила iptables, который вы можете опубликовать? Вы знаете, что iptables может установить --log-level или --log-prefix оба из них вы можете использовать для фильтрации сообщений в конкретный файл журнала.

По умолчанию содержимое iptables будет направлено на kern.info. Если вы не используете какие-либо параметры для установки альтернативного уровня, вы можете обновить свою конфигурацию для системного журнала до этого.

*.*;auth,authpriv.none;\
        kern.!info              -/var/log/syslog

Вы можете сделать то же самое для kern.log, но имейте в виду, что это также перенаправит другие сообщения kern.info, а не только iptables. Так, может быть, что-то подобное удовлетворит ваши потребности? В kern_info.log, вероятно, будет 99,9% журналов iptables.

 kern.*;kern.!info              -/var/log/kern.log
 kern.info                      -/var/log/kern_info.log

Я читал, что в rsyslog есть довольно продвинутая фильтрация. Так что вы, вероятно, могли бы установить --log-prefix и выполните расширенную фильтрацию вместо того, чтобы просто использовать службу / серьезность для фильтрации.

Я не уверен, где & ~ исходит от, но по крайней мере следующее должно выполнять то, что вы хотите:

# Iptables
:msg,contains,"IPT IN/DP: " -/var/log/iptables.log
:msg,contains,"IPT6 IN/DP: " -/var/log/iptables.log
:msg,contains,"IPT IN/DP: " ~
:msg,contains,"IPT6 IN/DP: " ~

Может быть, не самый элегантный, но мне кажется, что подобная конфигурация работает.