我有一个这样的计划
路由器192.168.2.254/24
eth0-192.168.2.1
br0
以太网1-192.168.4.1/24
用户- 192.168.2.2/24
并像这样连接 eth0 和 eth1 以允许数据包通过 brctl addbr br0 brctl addif br0 eth0 brctl addif br0 eth1 dhclient br0
用户可以直接 ping 到路由器,但我想阻止该 ping
我什至尝试过
iptables -A 输出 -p icmp --icmp 类型回显请求 -j DROP
iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP
用户仍然可以 ping 到路由器,我做错了什么?
答案1
桥接器用于连接两个接口相同的子网。
如果您有不同的子网并希望它们相互通信,则需要启用路由,echo 1 > /proc/sys/net/ipv4/ip_forward
但默认情况下未启用路由,因此它们将无法相互通信。
编辑:桥接不同子网中的两个接口可以工作,但这不是传统的设置。如果您想保持这种配置,则必须使用ebtables
而不是iptables
阻止流量。
答案2
您应该使用路由器 IP 地址定义 iptables。任何用户都无法 ping 路由器 IP 地址。您的示例是一般 iptables 规则。删除 icmp 协议对于阻止 ping 是正确的。