在我的 Linux 机器上,我有 2 个 NICS:
br0 192.168.1.0/24 (192.168.1.1 server)
eth1 192.168.2.0/24 lan1
eth2 192.168.3.0/24 lan2
[...]
有一条从 eth1 到 br0 以及从 eth2 到 br0 的路由
我在同一子网的 eth1 上删除了 icmp echo 请求:
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
但我也希望仅阻止来自 192.168.1.1 上的 192.168.2.0/24 网络的 icmp echo 请求。
所以我不希望 192.168.2.0/24 上的客户端可以 ping 192.168.1.1
答案1
您需要使用“-s”指定源 IP 或子网,并使用“-d”指定目标 IP 或子网 下面是示例规则
iptables -A INPUT -s 192.168.2.0/24 -d 192.168.1.1/32 -p icmp -m hashlimit --hashlimit-upto 3/sec --hashlimit-burst 5 --hashlimit-mode srcip,dstip --hashlimit-name xticmp -m icmp --icmp-type 8 -j DROP
iptables -A INPUT -s 192.168.2.0/24 -d 192.168.1.1/32 -p icmp -m hashlimit --hashlimit-upto 3/sec --hashlimit-burst 5 --hashlimit-mode srcip,dstip --hashlimit-name xticmp -m icmp --icmp-type 30 -j DROP
答案2
查看man iptables
:
[!] -s, --源地址[/掩码][,...]
-s 192.168.2.0/24
影响整个子网。