今天一位用户购买了我的云服务器,他想达到一种可以不让人ping他的服务器的效果,他的云服务器是centos7.6,具体操作步骤如下:
CentOS7禁ping方法
由于centos禁ping的方法有好几种,我就一 一给大家分享出来吧!请大家仔细看:
注意:Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的:A、内核参数,B、防火墙,需要2个因素同时允许才能允许Ping,2个因素有任意一个禁Ping就无法Ping。
一、firewall 防火墙禁ping方法
#添加禁止响应ping
firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'
#查看是否有此规则[等号后面跟详细的名称]
firewall-cmd --query-rich-rule='rule protocol value='icmp' drop'
#删除方法
firewall-cmd --remove-rich-rule='rule protocol value=icmp drop'
注意:防火墙添加了禁ping后,一定要用命令“firewall-cmd --reload”重载配置才能生效。
二、Iptables防火墙禁ping方法
允许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
三、临时禁用ICMP协议,禁用ping方法
临时允许PING操作的命令为:
[root@localhost ~]#echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
注意:0表示允许,1表示禁止。
四、永久禁用ICMP协议,禁止ping方法
1、编辑/etc/sysctl.conf;
vim /etc/sysctl.conf
2、在“/etc/sysctl.conf”最后增加以下内容:
net.ipv4.icmp_echo_ignore_all=1
3、保存后执行“sysctl -p”命令让配置生效。
sysctl -p
配置生效后,ping服务器收不到任何响应,ping被永久禁止。
可能某天你需要服务器允许ping了,可以删除 /etc/sysctl.conf 文件中的“net.ipv4.icmp_echo_ignore_all=1”或者将其修改为“net.ipv4.icmp_echo_ignore_all=0”,然后执行“sysctl -p”命令使配置生效,配置生效后服务器又可以正常被ping通了。
CentOS禁ping有什么好处?
相信很多人都知道,网站攻击一般是从ping开始的,黑客攻击网站前会先ping下服务器看其是否在线,因此如果服务器禁止ping,可以有效减少服务器被攻击次数。Centos系统默认是允许ping的,如你有服务器root账户管理权限,可以通过修改Centos系统内核参数永久禁止ping。
1、禁ping在一定程度上在互联网上隐藏自己防止一些批量扫描软件探测主机,减少被入侵的几率;
2、禁ping无法使用常用的ping或者监控软件来检测站点是否正常,服务器是否在线等;
注意:禁ping只是别人不能ping你,ping是“请求超时”的情况;在你没有用任何的防护情况下,例如:cdn,并不能隐藏你的真实服务器IP地址。如下图:
总结:
一般情况下没必要禁止ping,只要常规的服务器安全设置注意一下就可以使用了,互联网这么大没多大机率盯上这台服务器。简单来说,禁ping好处就是安全,防止攻击吧,坏处就是不能用ping命令去检测服务器是否有问题,不能够快速的知晓网站的访问速度。