Shorewall:logging到自定义文件

我正在运行带有防火墙的Ubuntu Server 14.04系统。 Shorewall基本上是iptables的前端,而通过Netfilter进行日志logging的是iptables(迄今为止我的理解)。

我的问题是我无法理解有关login到不同目的地的shorewall文档 。 这是我来了多远:

  • 我安装并启动了ulogd
  • 我在/etc/shorewall/params定义了一个variables: LOG=NFLOG
  • 我在/etc/shorewall/shorewall.conf所有出现的info都更改为$LOG
  • 我在/etc/shorewall/shorewall.conf设置了日志目的地: LOGFILE=/var/log/shorewall

这应该是完成以下内容:Netfilterlogging到NFLOGNFLOG后继者)目的地,这意味着Netfilter日志消息由ulogd2处理。

我不知道的是,我可以告诉ulogd2将所有的shorewall消息写入我所需的日志文件/var/log/shorewall

这个文件是相当不清楚的,因为这个论坛线程certificate。 我发现这个博客文章同样含糊,关于ulogd2的日志redirect。

综上所述:

  1. 我的方法是将shorewall日志消息redirect到ulogd2是否正确?
  2. 如何configurationulogd2将shorewall的消息redirect到/var/log/shorewall

PS:我不是在AskUbuntu上问这个问题,因为这与其他Linux发行版同样重要。

Ubuntu使用rsyslog,所以你可以configuration它过滤消息,并将其写入任意日志文件,例如创build一个文件/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