ping是一个通信协议,是ip协议的一部分,tcp/ip 协议的一部分。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式为:Ping IP地址。但服务启用ping有时候会造成很多麻烦。
因此有时候根据需要(如防止攻击),Linux服务器管理员可限制服务器禁止其它用户Ping。同时又保证Linux服务器又可以Ping其它服务器.
下面介绍几种linux服务器下禁止ping的方法:
<1>临时的禁ping方法:
以下2种方式都是临时有效,重启服务器设置将失效.
首先登陆服务器终端以下执行:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
或者
sysctl -w net.ipv4.icmp_echo_ignore_all=1
这样就可以禁ping了;
如果想恢复ping可以执行以下命令:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
或者
sysctl -w net.ipv4.icmp_echo_ignore_all=0
以上修改后,均可以通过查看以下文件来查看设置
vi /proc/sys/net/ipv4/icmp_echo_ignore_all 但是,该文件不能直接修改!
<2>永久禁ping方法
若想永久实现禁ping,可以修改/etc/sysctl.conf文件,如下:
vi /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all = 1 //默认设置为0.
以上操作,还是有前提的,若主机本身自带防火墙iptables中INPUT、OUTPUT默认策略为ACCEPT,那么主机默认是允许ping.则可以直接做以上修改,即可起到临时或永久禁ping效果.
若iptables中INPUT、OUTPUT默认策略均为DROP时,那么主机本身默认已经禁ping,则无需做以上修改了.
同样,若需要开启ping,则需要添加相应的策略.
如下:
若iptables中INPUT、OUTPUT均为DROP话,则需要添加:
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT