linux下禁止ping的方法有好几种。而且其即可以实现不允许ping别人,也可以实现不允许向别人ping 。这里简单小结下。
一、通过tcp/ip参数实现
操作方法如下:
<br />
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all 或
sysctl -w net.ipv4.icmp_echo_ignore_all=1
两种方法都是立即生效的。想要永久生效,可以通过写到/etc/sysctl.conf文件中,实现开机自动禁止。
二、通过iptables实现
ping包走的ICMP协议,ICMP协议里有以下两种类型和ping密切相关:
<br />
echo-request : 8
echo-reply : 0
所以实现ping的方法也有如下几种:
<br />
#下面两种方法等价(www.361way.com)
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
iptables -I INPUT -p icmp --icmp-type echo-request -j DROP
#以下两种方法等价
iptables -I OUTPUT -p icmp --icmp-type echo-reply -j DROP
iptables -I OUTPUT -p icmp --icmp-type 0 -j DROP
三、firewalld实现禁ping
在rhel7里换用了firewalld,其实现禁ping更简单,直接通过firewall-cmd命令可以实现自动补全:
<br />
firewall-cmd --permanent --add-icmp-block=echo-request
firewall-cmd --reload
这里是永久生效的方法,如果想要临时生效,将--permanent参数去掉即可。
四、不允许向外ping的方法
<br />
iptables -I OUTPUT -p icmp --icmp-type echo-request -j DROP
这样操作后,别人可以ping自己,自己不允许向外ping 。向外ping的话会有如下提示:
<br />
[root@desktop0 ~] ping www.361way.com
PING www.361way.com (115.28.174.118) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
<br />