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
Журнал перенаправления.
В итоге:
- Мой подход для перенаправления сообщений журнала shorewall в
ulogd2
правильно вообще? - Как я могу настроить
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