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