我正在运行Ubuntu 服务器 14.04系统岸墙防火墙。Shoewall 本质上是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 发行版同样相关。
答案1
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 才能使其生效。
答案2
我认为你忘记更新文件了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