我想阻止从公司外部 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