Ping 利用 ICMP 回應封包偵測主機存活,攻擊者常作為掃描前置偵察。Linux 可透過 /proc 檔案系統動態關閉 ICMP 回應,或寫入啟動腳本永久生效。本文同時補充限制 root 遠端登入的 securetty 設定。

# 禁用 ICMP 回應(忽略所有 Echo Request)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# 恢復 ICMP 回應
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
編輯 /etc/rc.d/rc.local(或 /etc/rc.local),加入:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
確保 rc.local 有執行權限:chmod +x /etc/rc.d/rc.local
編輯 /etc/sysctl.d/99-disable-icmp.conf:
net.ipv4.icmp_echo_ignore_all = 1
套用:sysctl -p /etc/sysctl.d/99-disable-icmp.conf 或 sysctl --system
# 本機測試
ping -c 3 127.0.0.1
# 應顯示 100% packet loss
# 檢查核心參數
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
sysctl net.ipv4.icmp_echo_ignore_all
編輯 /etc/securetty,僅保留實體終端機:
tty1
# tty2-tty6 註解掉
配合 PAM /etc/security/access.conf:
-:root:ALL EXCEPT console
此設定僅允許 root 從實體主控台登入,SSH 遠端登入需使用一般帳號再 su/sudo 提權。
禁用 Ping 可減少被掃描發現機率,但會影響網路診斷(traceroute、路徑 MTU 發現)。內網管理區段建議保留;對外服務介面建議關閉,並搭配防火牆限制來源 IP。