为什么 iptables 没有按预期工作?

为什么 iptables 没有按预期工作?

我已经将这四个过滤器放入 iptables 中:

iptables -I FORWARD -p udp -i eth0 -j DROP
iptables -I FORWARD -p udp -o eth0 -j DROP
iptables -I INPUT -p udp -i eth0 -j DROP
iptables -I OUTPUT -p udp -o eth0 -j DROP

希望丢弃任何 udp 数据包eth0,但是当我这样做时:

tcpdum udp -vv -i eth0

我仍然看到 UDP 包来来去去。

有人能解释一下吗?告诉我如何真正丢弃特定接口上的 UDP 包?(eth0例如)

答案1

tcpdump通过接入数据包流来捕获数据包。它捕获所有数据包,甚至包括那些被防火墙规则丢弃的数据包。

如果您想验证流量是否被阻止,您应该检查网络上的传出流量。您可以通过设置侦听器并尝试从网络向其发送流量来测试传入流量。如果您的规则有效,无论有没有规则,您都应该得到不同的结果。但是,如果您有 DROP 策略,结果将是相同的。

您可以在iptables丢弃规则后添加日志记录或接受规则。检查规则的数据包计数将告诉您是否有任何东西被丢弃规则所阻止。

您确定要丢弃所有 UDP 流量吗?DNS 首先尝试 UDP,并且仅在必要时才回退到 TCP。

相关内容