服务器禁止ping

背景

最近搭建几个站点,为了安全,需要设置服务器禁止ping,以提高服务器的安全性。ping使用的是ICMP协议,当我们禁止ping以后,服务器就不会对用户的ping做出任何回应

Linux默认允许ping响应,系统是否能够被ping取决两个要素:内核参数(不懂)和防火墙,二者缺一不可

配置方法

  • 方法1:通过修改配置文件【icmp_echo_ignore_all】(root权限),配置完毕后,别人无法ping本服务器,本服务器也无法ping别的机器(系统提示不允许改)

    1
    2
    3
    4
    5
    6
    7
    # 该文件默认只读,设置完毕后重启机器
    sudo chmod 600 /proc/sys/net/ipv4/icmp_echo_ignore_all
    sudo vim /proc/sys/net/ipv4/icmp_echo_ignore_all

    # 将其中的默认值1改为0
    # 1:表示不允许ping
    # 0:表示允许ping
  • 方法2:通过命令修改方法1的文件,实现结果都是一样的(系统提示不允许改)

    1
    2
    # 运行该命令需要root权限,设置完毕后重启机器
    sudo echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • 方法3:利用iptables命令设置(iptables类似于防火墙,如果本机没有,可以安装)(亲测可行)

    1
    2
    3
    4
    5
    # 设置禁止ping,设置完毕后不用重启
    sudo iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

    # 设置允许ping,设置完毕后不用重启
    sudo iptable -D INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

知识点

1
2
3
4
# Ubuntu Server安装后会让手动创建一个用户,但是这个用户并不是root,如果需要root用户则需要手动开启
sudo passwd root

# 设置密码后,就大功告成了