我正在运行最近的 Ubuntu Server,它被设置为 NAT 路由器。
我有一个在启动期间运行的 iptables 脚本来设置 NAT、端口转发等。
我正在尝试诊断与该框无关的问题,但是 /var/log/messages、/var/log/syslog 和 /var/log/kern.log 都充斥着来自 iptables 的消息,如下所示:
Oct 21 11:25:27 skip kernel: [39380.812663] INPUT packet died: IN=eth1 OUT= MAC=00:40:63:d9:7c:5b:00:03:fa:a9:d7:4a:08:00 SRC=24.207.21.237 DST=94.192.123.123 LEN=111 TOS=0x00 PREC=0x00 TTL=54 ID=16494 PROTO=UDP SPT=48865 DPT=20663 LEN=91
我找不到任何说明如何更改 iptables 记录输出方式的文档。我最理想的做法是让 iptables 的所有内容都没有转到上述任何文件,而是转到 /var/log/iptables。
就是那个剧本。删除日志记录。
如果您真的想要日志(如果您不阅读它们,那么为什么要打扰?)然后使用 ULOGD:
http://www.netfilter.org/projects/ulogd/index.html
默认情况下,iptables 的东西会被发送到 syslog,带有 kern 功能和 info 优先级。
您可以选择切换到更高级的 syslog,然后基于模式构建过滤器,或者您可以将所有 kern.info 内容发送到 /var/log/iptables。您可能会在 iptables 日志中获得除 iptables 之外的其他内容。
假设您尚未替换已安装的系统日志。您可能想要进行更改,如下面的差异所示。
通过编辑 iptables 规则,您可以更改发送到 syslog 的日志条目的优先级,并且可以添加前缀以使用更高级的 syslog 进行过滤。
或者,您可以使用提到的 LapTop006 之类的 ULOG 目标,然后将其传递给ulogd、spectre或其他用户空间守护程序。