Linux服务器禁止ping命令

1. 概述

基于安全考虑,很多服务器是禁ping的,那怎么实现Linux服务器IP禁ping呢?Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的:

  • 内核参数
  • 防火墙

需要2个因素同时允许才能允许Ping,2个因素有任意一个禁Ping就无法Ping,具体的配置方法如下。

2. 内核参数设置

2.1. 允许ping设置

  1. 临时允许PING操作的命令为:
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
  1. 永久允许PING配置方法

/etc/sysctl.conf中增加一行;

net.ipv4.icmp_echo_ignore_all=0 

如果已经有net.ipv4.icmp_echo_ignore_all这一行了,直接修改=号后面的值即可的(0表示允许,1表示禁止)。

修改完成后执行sysctl -p使新配置生效。

对于某些系统,用户配置需在/etc/sysctl.d/目录下进行配置

# sysctl settings are defined through files in /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/. To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.

2.2. 禁止Ping设置

  1. 临时禁止PING的命令为:
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
  1. 永久允许PING配置方法

/etc/sysctl.conf 中增加一行

net.ipv4.icmp_echo_ignore_all=1 

如果已经有net.ipv4.icmp_echo_ignore_all这一行了,直接修改=号后面的值即可的。(0表示允许,1表示禁止)

修改完成后执行sysctl -p使新配置生效。

特别注意:这种禁止ping的方式,会导致本地服务ping其它服务器的ip也ping不同。

3. 防火墙设置(前提是内核配置是默认值,也就是没有禁止Ping)

这里以 iptables 防火墙为例,其他防火墙操作方法可参考防火墙的官方文档。

3.1. 1、允许ping设置

iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -I OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

或者也可以临时停止防火墙

service iptables stop 

3.2. 禁止ping设置

iptables -I INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP 

若需要删除该规则,

iptables -D INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
#或者
iptables -I INPUT -p icmp --icmp-type 8 -s 0/0 -j ACCEPT

上面主要讲了从内核参数和防火墙设置来设置服务器是否禁ping操作,对安全方面有要求的可以参考设置。

发表评论

邮箱地址不会被公开。 必填项已用*标注