我在 Ubuntu 18.04 LTS 上使用 ufw,并且我想记录两者的删除情况和接受的数据包(我知道这会生成大量日志)。
我可以通过使用 - 增加 ufw 日志级别来做到这一点ufw logging high
,但我还想记录一些默认情况下未包含的附加信息(TCP 选项和序列号),因此这对我不起作用。
我相信添加自定义日志记录规则的正确位置是/etc/ufw/before.rules
,并且我已将其添加到文件末尾,就在 之前COMMIT
:
-A INPUT -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
-A FORWARD -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
但是,这仅记录丢弃的数据包,而不记录接受的数据包。我想这与 iptables 规则的顺序有关,但我没有看到任何其他内容before.rules
会短路记录已接受的数据包。
几个进一步的限制是我不想记录任何出站连接或任何环回流量。
关于如何使用额外信息记录丢弃和接受的数据包有什么想法吗?
答案1
-A
追加规则位于链的末端iptables
。
如果您想先记录每个数据包,请尝试使用-I
:
-I INPUT -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
-I FORWARD -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
也就是说,解决这些问题的最佳方法是创建新连锁店并修改您的规则以使用这些链而不是标准链。
作为一个(简单)示例,您可以有两个新目标:
iptables -N LOG_DROP
iptables -N LOG_ACCEPT
并创建“默认”规则为
iptables -A LOG_DROP -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
iptables -A LOG_DROP -j DROP
iptables -A LOG_ACCEPT -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
iptables -A LOG_ACCEPT -j ACCEPT
然后根据您的规则,您可以“发送”到LOG_DROP
而不是DROP
和:LOG_ACCEPT
ACCEPT
iptables -A INPUT -p tcp --dport 22 -j LOG_DROP # Log and drop input packets to port 22