Shorewall: вход в пользовательский файл

Я использую систему Ubuntu Server 14.04 с брандмауэром http://shorewall.net/. Shorewall по сути является интерфейсом для iptables, и именно iptables осуществляет регистрацию через Netfilter (насколько я понимаю).

Моя проблема в том, что я не могу понять документы shorewall относительно регистрации в другом месте назначения. Вот как далеко я зашел:

  • Я установил и начал ulogd
  • Я определил переменную в /etc/shorewall/params: LOG=NFLOG
  • Я изменил все вхождения info в $LOG в /etc/shorewall/shorewall.conf
  • Я установил назначение журнала в /etc/shorewall/shorewall.conf: LOGFILE=/var/log/shorewall

Предположительно, это выполняет следующие действия: Netfilter регистрирует NFLOG (преемник ULOG) назначение, что означает, что сообщения журнала Netfilter обрабатываются ulogd2,

Что я не знаю, так это как я могу сказать ulogd2 написать все сообщения shorewall в мой нужный лог-файл /var/log/shorewall ,

Документация по этому вопросу довольно неясна, о чем свидетельствует эта ветка форума. Этот пост в блоге, который я нашел, одинаково расплывчат ulogd2 Журнал перенаправления.

В итоге:

  1. Мой подход для перенаправления сообщений журнала shorewall в ulogd2 правильно вообще?
  2. Как я могу настроить ulogd2 перенаправить сообщения shorewall на /var/log/shorewall?

PS: я не задаю этот вопрос в AskUbuntu, потому что он одинаково актуален для других дистрибутивов Linux.

2 ответа

Решение

Ubuntu использует rsyslog, поэтому вы можете настроить его для фильтрации сообщений и записи их в произвольные файлы журналов, например, создать файл /etc/rsyslog.d/shorewall.conf

:msg, contains, "Shorewall:" /var/log/shorewall
& ~

Или если вы хотите разделить вещи еще

:msg, contains, "Shorewall:cust2net:ACCEPT:" /var/log/shorewallc2na.log
& ~

:msg, contains, "Shorewall:" /var/log/shorewall
& ~

При этом все сообщения, содержащие "Shorewall:cust2net:ACCEPT:", помещаются в один файл журнала, а любые другие сообщения, содержащие "Shorewall", - в другой файл журнала.

Вам нужно перезапустить rsyslogd, чтобы это вступило в силу.

Я думаю, что вы забыли обновить policy файл:

#SOURCE     DEST    POLICY      LOG LEVEL   LIMIT:BURST
$FW         net  ACCEPT
net         all     DROP        $LOG
# The FOLLOWING POLICY MUST BE LAST
all         all     REJECT      $LOG
Другие вопросы по тегам