iptables 日志转发

iptables 日志转发

您好,我正在测试记录 iptables,因此为了练习,我开始添加一些规则。我的问题是这个简单的规则 iptables-A FORWARD -p ICMP -j LOG通过这个规则,我尝试记录网络内的每个 ping,但它仅在主机无法访问时记录。当 ping 成功时,不会记录任何内容。 ping 始终来自具有相同 IP 规则集的同一主机。

我家里有一个局域网,有一个用Linux服务器制作的路由器和一个交换机。我想做的是更好地理解 iptables。所以我开始进行测试,看看发生了什么。我在这里评论的是从我的电脑到另一台电脑的 ping,两者都连接到交换机,而这台电脑连接到路由器(linux)。我使用 ping 是因为它更容易在日志中看到,但我不相信,相信这同样适用于其余协议。所以我从主机 A ping 到主机 B,并且 iptables 中没有显示它位于路由器中的日志。

答案1

除非数据包正在发送通过您正在讨论的设备,他们不会遵守规则FORWARD

此外,在典型的交换网络中,您无论如何都看不到大多数数据包,除非它们是定向到您的主机或者是广播数据包。

如果您想记录ping发送到或来自您的主机的每一次发送,您需要使用这对规则:

iptables -I INPUT --protocol icmp --icmp-type 8 -j LOG
iptables -I OUTPUT --protocol icmp --icmp-type 8 -j LOG

如果您也想要回复,则需要 ICMP 类型 0 的第二对规则。和以前一样,我提供了两个规则:一个用于返回此主机的回复,另一个用于来自其他地方的该主机的回复:

iptables -I INPUT --protocol icmp --icmp-type 0 -j LOG
iptables -I OUTPUT --protocol icmp --icmp-type 0 -j LOG

相关内容