Debian 系列系统禁止 ping 操作指南

Debian 系列系统禁止 ping 操作指南

发布时间:2024-10-03 14:32:24

方法 1:使用 iptables

debian 默认不安装 iptables,如果需要使用,首先安装:

 
sudo apt update 
sudo apt install iptables

然后,添加规则禁止 ping:

 
sudo iptables -a input -p icmp --icmp-type echo-request -j drop

保存规则以便重启后仍然生效:

 
sudo apt install iptables-persistent 
sudo netfilter-persistent save

方法 2:使用 ufw (uncomplicated firewall)

ufw 是一个 iptables 的前端,使用起来更简单。

  1. 安装 ufw(如果尚未安装):
     
    sudo apt update 
  2. sudo apt install ufw
  3. 启用 ufw:
     
    sudo ufw enable
  4. 添加规则禁止 ping:
     
    sudo ufw deny proto icmp
  5. 重新加载 ufw:
     
    sudo ufw reload

方法 3:修改内核参数

这种方法适用于所有 debian 版本,不依赖于特定的防火墙工具。

  1. 编辑 sysctl.conf 文件:
     
    sudo nano /etc/sysctl.conf
  2. 添加或修改以下行:
     
    net.ipv4.icmp_echo_ignore_all = 1
  3. 保存并关闭文件。
  4. 应用更改:
     
    sudo sysctl -p

方法 4:使用 nftables (适用于较新的 debian 版本)

从 debian 10 (buster) 开始,nftables 成为默认的防火墙框架。

  1. 创建一个新的规则文件:
     
    sudo nano /etc/nftables.conf
  2. 添加以下内容:
     

    #!/usr/sbin/nft -f

    flush ruleset

    table inet filter {
    chain input {
    type filter hook input priority 0;

    # 允许已建立的连接
    ct state established,related accept

    # 允许本地回环接口
    iifname lo accept

    # 禁止 icmp echo 请求(ping)
    ip protocol icmp icmp type echo-request drop

    # 允许其他类型的 icmp
    ip protocol icmp accept

    # 默认策略
    policy drop;
    }
    }

  3. 保存文件并退出。
  4. 加载规则:
     
    sudo nft -f /etc/nftables.conf
  5. 启用 nftables 服务以在启动时加载规则:
     
    sudo systemctl enable nftables

注意事项

  • 禁用 ping 可能会影响网络诊断和监控工具。
  • 在生产环境中实施前,请充分测试并考虑潜在影响。
  • 某些云平台或托管服务可能需要额外的配置。
  • 确保您有其他方法可以访问和管理服务器,以防在实施过程中出现问题。

恢复允许 ping

如果需要恢复允许 ping,可以逆转上述操作:

  • 对于 iptables:删除添加的规则
  • 对于 ufw:sudo ufw allow proto icmp
  • 对于 sysctl 方法:将 net.ipv4.icmp_echo_ignore_all 设置为 0
  • 对于 nftables:修改规则文件,删除或注释掉相关行

记得在更改后重新加载或重启相应的服务。

感谢:05互联