萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 禁用 Ping (ICMP) 保護服務器免受掃描與洪水攻擊

Ping 基於 ICMP Echo Request/Reply,雖是網絡診斷利器,但也被攻擊者用於主機發現、Smurf 攻擊、ICMP Flood 等。生產環境建議**默認禁用,按需放行**。本文提供內核參數法(即時生效)、持久化配置、以及針對 root 登錄的額外加固。

方法一:內核參數動態切換(即時生效,重啟失效)

禁用 Ping(忽略所有 ICMP Echo Request)

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

恢復 Ping

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

方法二:sysctl.conf 永久生效(推薦生產)

echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
sysctl -p

方法三:防火牆層面精細控制(推薦,可放行監控 IP)

iptables

# 僅允許監控服務器 10.0.0.100 Ping
iptables -A INPUT -p icmp --icmp-type echo-request -s 10.0.0.100 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
service iptables save

firewalld (CentOS 7+)

firewall-cmd --permanent --add-rich-rule='rule protocol value="icmp" icmp-type="echo-request" source address="10.0.0.100" accept'
firewall-cmd --permanent --add-rich-rule='rule protocol value="icmp" icmp-type="echo-request" drop'
firewall-cmd --reload

額外加固:限制 Root 遠程登錄(配合 /etc/securetty、/etc/security/access.conf)

雖與 Ping 無直接關係,但屬於同一「減小攻擊面」範疇:

# /etc/securetty 僅保留 tty1,註釋 tty2-tty6、pts/*
# /etc/security/access.conf
-:root:ALL EXCEPT LOCAL 10.0.0.0/24  # 僅允許本地及管理網段 root 登錄

驗證

# 本機測試
ping -c 3 localhost
# 應顯示 100% packet loss

# 遠程測試
ping -c 3 YOUR_SERVER_IP
# 同樣無響應

何時需要開啟 Ping?

  • 網絡故障排查階段(臨時 echo 0 > ...)
  • 監控系統(Zabbix、Prometheus Blackbox、UptimeRobot)依賴 ICMP 存活檢查 → 用防火牆白名單放行監控節點 IP。
  • 某些負載均衡健康檢查使用 Ping → 同樣白名單處理。

**最佳實踐**:默認關閉 ICMP Echo Reply,防火牆白名單放行授權監控 IP,兼顧安全與可觀測性。

copyright © 萬盛學電腦網 all rights reserved