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

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

Я управляю Сервер Ubuntu 14.04 система с Shorewall брандмауэр. Shorewall - это, по сути, интерфейс для iptables, и это iptables, который ведет журнал через Netfilter (насколько я понимаю).

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

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

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

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

В итоге:

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

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

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