我正在运行带有
shorewall防火墙的
Ubuntu Server 14.04系统. Shorewall本质上是
iptables的前端,它是通过Netfilter进行日志记录的iptables(我的理解到目前为止).
我的问题是我无法理解shorewall docs regarding logging到另一个目的地.这是我走了多远:
>我安装并启动了ulogd
>我在/ etc / shorewall / params中定义了一个变量:LOG = NFLOG
>我在/etc/shorewall/shorewall.conf中将所有出现的信息更改为$LOG
>我在/etc/shorewall/shorewall.conf中设置了日志目的地:LOGFILE = / var / log / shorewall
这可以实现以下目的:Netfilter记录到NFLOG(ULOG的后继)目的地,这意味着Netfilter日志消息由ulogd2处理.
我不知道的是,我如何告诉ulogd2将所有shorewall消息写入我想要的日志文件/ var / log / shorewall.
正如this forum thread所证明的那样,文件对此并不清楚.
关于ulogd2的日志重定向,我发现这个blog post同样含糊不清.
综上所述:
>我的方法是将Shorewall日志消息重定向到ulogd2是否正确?
>如何配置ulogd2以将shorewall的消息重定向到/ var / log / shorewall?
PS:我不是在AskUbuntu上问这个问题,因为这与其他Linux发行版同样相关.
解决方法
Ubuntu使用rsyslog,因此您可以将其配置为过滤消息并将其写入任意日志文件,例如创建文件/etc/rsyslog.d/shorewall.conf
:msg,contains,"Shorewall:" /var/log/shorewall & ~
或者如果你想分开一些东西
:msg,"Shorewall:cust2net:ACCEPT:" /var/log/shorewallc2na.log & ~ :msg,"Shorewall:" /var/log/shorewall & ~
这将包含“Shorewall:cust2net:ACCEPT:”的所有消息放入一个日志文件中,并将包含“Shorewall”的任何其他消息放入不同的日志文件中.
您需要重新启动rsyslogd才能生效.