1. 环境介绍
操作系统:CentOS7.6
2. 修改内核参数禁ping
通过修改Linux内核参数来实现无法被其他主机ping通。
2.1 配置前访问测试
在没有修改内核参数的情况下,使用一台客户端用ping命令检测服务器IP地址是否可以访问:
配置前是可以被客户端使用ping访问的。
2.2 配置内核参数
需要修改的内核参数:
net.ipv4.icmp_echo_ignore_all
使用sysctl命令查看该参数的值:
sysctl -a | grep net.ipv4.icmp_echo_ignore_all
默认值为0表示响应所有ping访问;
将值设置为1则不响应ping。
(1)临时配置
临时的配置当服务器重启后,恢复为原来的配置:
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
再次使用客户端进行ping测试:
配置完成后,已经无法再ping通服务器的IP地址。
(2)永久配置
将参数写入到配置文件中:
vi /etc/sysctl.conf
#未行写入net.ipv4.icmp_echo_ignore_all = 1
执行命令生效:
sysctl -p
2.3. 小结
通过修改内核禁ping的方式,所有主机都将无法使用ping访问到该服务器。
需要取消的话,将net.ipv4.icmp_echo_ignore_all的值设置为0即可。
3. 修改防火墙配置禁ping
前提条件:在系统中开启防火墙。
3.1 禁止响应所有终端ping
(1)配置命令
firewall-cmd --permanent --add-rich-rule='rule protocol value="icmp" drop'firewall-cmd --reload
(2)测试访问效果
同样的,客户端是无法访问访问到该服务器:
(3)删除配置
firewall-cmd --permanent --remove-rich-rule='rule protocol value="icmp" drop'firewall-cmd --reload
3.2 允许指定IP地址可以ping
这个功能就比较实用一点了,我们只允许管理员可以ping通过服务器。
假设只有IP地址192.168.211.101才可以ping通;
(1)配置命令
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" protocol value="icmp" source NOT address="192.168.211.101" drop'firewall-cmd --reload
(2)测试访问效果
除了终端IP地址192.168.211.101可以ping通外,其他IP地址都不能ping通:
(3)删除规则
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" protocol value="icmp" source NOT address="192.168.211.101" drop'firewall-cmd --reload