iptables 不丢弃 icmp 数据包

iptables 不丢弃 icmp 数据包

我想阻止从公司外部 ping 我的服务器,因此我有以下 iptables 规则:

-A INPUT -p icmp --icmp-type 8 -s ! 192.168.0.0/16 -j DROP
-A OUTPUT -p icmp --icmp-type 0 -d ! 192.168.0.0/16 -j DROP

但是,上述规则并没有按预期发挥作用,我仍然可以从公司内部和外部 ping 服务器。这是怎么回事?!

答案1

我假设您有 2 个网络接口,一个用于互联网,一个用于本地网络。

尝试这样的操作:

IPTABLES -I INPUT -p icmp --icmp-type 8 -i INTERNET_ETH -j DROP 

以上操作Echo Request将从外部删除,我相信这已经足够了。在您看到规则正在工作后,您可以使用源 IP 地址。另请注意,在接口上,INTERNET_ETH源地址为 192.168.0.0/16 的 ICMP 请求将不会被接收。

祝你好运

答案2

服务器前面是否有设备?例如路由器或其他可能响应 ping 的设备?

iptables –A INPUT –p icmp –icmp-type echo-request -s ! 192.168.0.0/16 –j DROP

但应该这么做。

答案3

尝试

-A INPUT -p icmp --icmp-type 8 ! -s 192.168.0.0/16 -j DROP
-A OUTPUT -p icmp --icmp-type 0 ! -d 192.168.0.0/16 -j DROP

相关内容