我已经将这四个过滤器放入 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。