linux下禁止ping的方法有好几种。而且其即可以实现不允许ping别人,也可以实现不允许向别人ping 。这里简单小结下。

一、通过tcp/ip参数实现

操作方法如下:

1echo "1" >  /proc/sys/net/ipv4/icmp_echo_ignore_all 或
2sysctl -w net.ipv4.icmp_echo_ignore_all=1

两种方法都是立即生效的。想要永久生效,可以通过写到/etc/sysctl.conf文件中,实现开机自动禁止。

二、通过iptables实现

ping包走的ICMP协议,ICMP协议里有以下两种类型和ping密切相关:

1echo-request   :  8
2echo-reply     :  0

所以实现ping的方法也有如下几种:

1#下面两种方法等价(www.361way.com)
2iptables -I INPUT -p icmp --icmp-type 8 -j DROP
3iptables -I INPUT -p icmp --icmp-type echo-request -j DROP
4#以下两种方法等价
5iptables -I OUTPUT -p icmp --icmp-type echo-reply -j DROP
6iptables -I OUTPUT -p icmp --icmp-type 0 -j DROP

三、firewalld实现禁ping

在rhel7里换用了firewalld,其实现禁ping更简单,直接通过firewall-cmd命令可以实现自动补全:

1firewall-cmd --permanent --add-icmp-block=echo-request
2firewall-cmd --reload

这里是永久生效的方法,如果想要临时生效,将–permanent参数去掉即可。

四、不允许向外ping的方法

1iptables -I OUTPUT -p icmp --icmp-type echo-request -j DROP 

这样操作后,别人可以ping自己,自己不允许向外ping 。向外ping的话会有如下提示:

1[root@desktop0 ~] ping www.361way.com
2PING www.361way.com (115.28.174.118) 56(84) bytes of data.
3ping: sendmsg: Operation not permitted
4ping: sendmsg: Operation not permitted
5ping: sendmsg: Operation not permitted