惡意使用者可能利用大量 ICMP Echo Request (Ping) 封包發起洪水攻擊 (Ping Flood),或透過 Ping 回應偵測主機存活、推測作業系統指紋、MTU 大小等資訊。Windows Server 2008 可透過 進階安全性 Windows 防火牆 精確封鎖 ICMPv4 輸入請求。
設定步驟:建立封鎖 ICMPv4 輸入規則
- 開啟 進階安全性 Windows 防火牆:
開始 → 系統管理工具 → 進階安全性 Windows 防火牆 (或執行 wf.msc)
- 左側選取 輸入規則 → 右鍵 → 新增規則。
- 規則類型選擇 自訂 → 下一步。
- 程式:選擇 所有程式 → 下一步。
- 通訊協定及連接埠:
- 通訊協定類型:ICMPv4
- 點選 自訂 → 特定 ICMP 類型 → 勾選 Echo Request (類型 8, 代碼 0) (即 Ping 請求)。
提示:若需允許特定 ICMP (如 Path MTU Discovery 需要的 Fragmentation Needed/Type 3 Code 4),可僅封鎖 Echo Request,保留其他必要類型。
- 動作:選擇 封鎖連線 → 下一步。
- 設定檔:根據環境勾選 網域、私人、公用 (建議全選,或依網路位置決定)。
- 名稱:輸入具描述性名稱,如
Block ICMPv4 Echo Request (Ping) → 完成。
驗證規則生效
- 本機測試:命令提示字元執行
ping 127.0.0.1 → 應顯示 一般失敗 或 要求逾時 (視規則順序)。
- 遠端測試:其他電腦
ping <伺服器IP> → 應無回應 (Request timed out)。
- 防火牆記錄:啟用記錄 (
WF.msc → 內容 → 記錄 → 自訂 → 記錄捨棄的封包) 可在 %systemroot%\system32\LogFiles\Firewall\pfirewall.log 查看被封鎖的 ICMP 封包。
進階調整:允許特定管理 IP 進行 Ping 監控
若監控系統 (Zabbix、Nagios、PRTG) 需要 Ping 檢查主機存活,可在規則 範圍 索引標籤設定:
- 遠端 IP 位址:這些 IP 位址 → 新增監控伺服器 IP 群組 → 此規則不適用於該群組 (或建立更高優先序的「允許」規則針對監控 IP)。
IPv6 同步處理
同樣建立一條 ICMPv6 規則封鎖 Echo Request (類型 128),防止 IPv6 環境下的 Ping 掃描。
安全性考量與建議
- 完全封鎖 Ping 的利弊
- 優點: 減少偵測面、防禦 Ping Flood、隱藏主機存活狀態。
缺點: 破壞網路診斷 (Ping、Path MTU Discovery)、監控系統失效、某些 VPN/叢集心跳依賴 ICMP。
建議: 僅封鎖 Echo Request (Type 8/128),保留 Destination Unreachable (Type 3)、Time Exceeded (Type 11)、Parameter Problem (Type 12) 等錯誤回報類型,維持網路正常運作。
- 替代監控方式
- 改用 TCP 連接埠檢查 (如 80/443/3389)、HTTP/HTTPS API 健康檢查、SNMP、WMI、SSH 檢查等不依賴 ICMP 的監控方式。
- 邊界防火牆配合
- 主機防火牆為最後一道防線,邊界防火牆/IDS/IPS 應優先攔截大流量 ICMP 攻擊。