如何阻止来自子网的 icmp 回显请求

如何阻止来自子网的 icmp 回显请求

在我的 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影响整个子网。

相关内容