我正在尝试使用 Ubuntu 机器阻止 DNS 请求。我已经创建了一个网桥,数据包正在按预期转发。只有当我添加 iptables 规则时,它才被考虑在内。我尝试不使用任何规则,只是将每个表的策略设置为 DROP,但即使这样也不起作用:数据包仍然会不间断地传输。我应该明确指出,我在 ISP 环境中工作,因此,从网络角度来看,网桥位于 WAN 端,位于 CPE 和 telindus 之间。感谢您的帮助。
iptables 版本:1.4.21
# iptables -L -n -v
0 packets in forward and input, 16 in output
(因为我用的是手机,所以感觉比较合成)
所有策略都处于 DROP 模式。
/proc/sys/net/bridge/bridge-nf-call-iptables
= 1
这座桥的配置相当简单:
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig eth0 up
ifconfig eth1 up
ifconfig br0 up
答案1
与我们分享 iptables -L -n -v 会很有用
为了丢弃桥接接口上的流量,只需使用:
iptables -A FORWARD -p tcp --dport 53 -j DROP
iptables -A FORWARD -p udp --dport 53 -j DROP
请随意使用
tcpdump -i any -n port 53
查看流量真正经过服务器的地方。
您还可以使用:
iptables -A FORWARD -j LOG --log-prefix "IPTables: " --log-level 4
记录通过 iptables 的流量。
答案2
我正在回答我自己的问题:问题来自以下参数:
/proc/sys/net/bridge/bridge-nf-filter-pppoe-tagged
/proc/sys/net/bridge/bridge-nf-filter-vlan-tagged
我将它们设置为 1,这样就可以将后续帧/数据包转发到 iptables FORWARD 表中。谢谢您的帮助。