當 IIS 遇到代理伺服器:如何在複雜網路環境下實現真實 IP 白名單控制
前情提要:突如其來的測試環境危機最近台電因為白帽滲透測試的關係,需要暫時關閉測試機。但開發團隊偶爾還是需要測試環境來驗證功能,於是我們決定把程式架在其他環境上。原本想說簡單設個 IIS IP 白名單就能解決,沒想到踩到了一個大坑... 問題出現:IP 白名單完全失效當我興高采烈地在 IIS 管理器中設定「IP 位址及網域限制」,把信任的 IP 加入白名單後,發現一個詭異的現象: 設定為「允許所有」→ 正常運作 ✅ 設定為「拒絕未指定,只允許白名單」→ 所有人都 403 錯誤 ❌ 檢查 IIS Log 後發現真相大白: 1c-ip: 192.168.0.28 # 所有請求都顯示這個 IP! 原來所有外部請求都是透過 192.168.0.28 這台 Proxy Relay 伺服器轉發過來的。IIS 只看得到代理伺服器的 IP,完全拿不到真實的客戶端 IP。 深入追查:尋找真實 IP 的蹤跡建立一個簡單的測試頁面來檢查所有可能的 HTTP 標頭: 123456789101112<%@ Page Language="C#"...
