云服务器知识

Linux 服务器如何禁止 ping 以及开启 ping

  

Linux 默认是允许 ping 响应的,也就是说 ping 是开启的,但 ping 有可能是网络攻击的开始之处,所以关闭 ping 可以提高服务器的安全系数。

系统是否允许 ping 由2个因素决定的:1、内核参数,2、防火墙。

需要两个因素同时允许才能允许 ping,有任意一个禁止,ping 就无法开启。具体的配置方法如下:

1、内核参数设置

允许/禁止 ping 设置(默认允许 ping)

临时允许/禁止 ping 操作的命令为:修改 /proc/sys/net/ipv4/icmp_echo_ignore_all 文件的内容,该文件内容只有 1 个字符,0 为允许 ping,1 为禁止 ping,无需重启服务器;

永久允许/禁止 ping 配置方法:

修改文件 /etc/sysctl.conf,在文件末尾增加一行:

net.ipv4.icmp_echo_ignore_all = 1

如果已经有 net.ipv4.icmp_echo_ignore_all 这一行了,直接修改 = 号后面的值即可的 0 表示允许,1 表示禁止。

修改完成后执行 sysctl -p 使新配置生效(重要)。

2、防火墙设置(此处的方法的前提是内核配置是默认值,也就是没有禁止 ping)

这里以 iptables 防火墙为例,其他防火墙操作方法可参考防火墙的官方文档。

允许ping设置

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

或者也可以临时停止防火墙:

service iptables stop

禁止ping设置

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j drop