我安装了 Debian 9.1,用作 NAT 路由器。 Shorewall版本5.0.15.6-1,linux内核版本4.9+80+deb9u1。有两个网络接口。路由功能都工作正常。
我想将连接和拒绝记录到日志文件中,但不是通过系统日志,因为一切否则就去那里。我读了http://shorewall.org/shorewall_logging.html并尽我所能地遵循它,而我发现的其他文件都是关于外围案例的。但是,我的 ulog 日志文件是空的,netfilter 消息仍然会发送到 /var/log/kern.log。
以下是相关配置文件的一些摘录:
/etc/shorewall/params
ETH1=br1
LOG="NFLOG(1,,)"
/etc/shorewall/shorewall.conf
LOGFILE=/var/log/shorewall-run.log
LOGFORMAT="Shorewall:%s:%s:"
MACLIST_LOG_LEVEL=$LOG
RPFILTER_LOG_LEVEL=$LOG
SFILTER_LOG_LEVEL=$LOG
SMURF_LOG_LEVEL=$LOG
STARTUP_LOG=/var/log/shorewall-init.log
TCP_FLAGS_LOG_LEVEL=$LOG
/etc/shorewall/规则
ACCEPT:$LOG loc $FW tcp 5509
ACCEPT:$LOG net $FW tcp 5509
ACCEPT loc $FW udp 53
ACCEPT loc $FW tcp 53
/etc/ulogd.conf 是库存的,它与 /usr/share/doc/ulogd2/examples/ulogd.conf.gz 中的相同
当我运行 shorewall restart 时,我没有收到任何编译错误,并且如上面的规则示例所示,我收到了连接到 5509 的系统日志消息,但没有收到连接到 53 的系统日志消息。日志条目只是转到了错误的位置。
我究竟做错了什么 ?
答案1
根据man shorewall.conf
LOGFILE=[pathname|systemd]
This parameter tells the /sbin/shorewall program where to look
for Shorewall messages when processing the dump, logwatch, show
log, and hits commands.
因此,更改此参数不会影响防火墙将其日志消息写入的位置。
如果您想要配置 Shorewall 将 Netfilter 消息定向到除 之外的日志设施syslog
,您可能需要参考man shorewall-logging
各种选项来实现此目的。