ubuntu 禁止外部ping和允许ping方法

一、前言

在日常网络服务器的维护和使用过程中,ping命令是最为常用的一个检测命令,它所使用的是ICMP协议。但是为了保护主机,很多时候我们需要禁止ICMP协议,即禁止用户ping操作,在这种情况下,终端再使用ping命令检测,服务器是不会再做出任何响应。

Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的:
A、内核参数
B、防火墙
需要这2个因素同时允许才能允许Ping,2个因素有任意一个禁Ping就无法Ping。

二、禁止Ping方法

方法1 通过sys配置禁止ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
方法2 通过iptables命令禁止ping
iptables -I INPUT -i ech0 -p icmp -s 0/0 -d 0/0 -j DROP

以上这些配置的话,重启一般就没掉了。如果需要开机启动,ubuntu提供以下的方式进行禁止ping操作,通过修改sysctl.conf
echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
重新加载配置文件
sysctl -p
不过在今天,我发现重启之后,还是可以ping的,当前系统的版本是Ubuntu 18.04, 只能在启动后,在执行一下sysctl -p

三、允许ping方法

配置sys允许ping:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
通过iptables允许ping:
iptables -I INPUT -i ech0 -p icmp -s 0/0 -d 0/0 -j ACCEPT

参考资料

ubuntu禁止/允许ping
Ubuntu 16.04 服务器禁止ping操作

你可能感兴趣的:(Linux,ping,ubuntu)