[研究]GCB,IIS 「IP位址及網域限制」的「動態 IP 限制設定」
2025-11-05
| 項次 | TWGCB-ID | 類別 | 原則設定名稱 | 說明 | 設定位置 | 設定路徑 | GCB設定值 |
| 35 | TWGCB-04-014-0035 | 要求篩選與其他限制模組 | 動態IP限制 | ▪這項原則設定決定是否藉由限制同一IP同時開啟連線數或限制同一IP在一段期間內發送之最大要求數量 ▪透過動態IP限制功能,當超過限制時,IIS就暫時不處理來自該IP的請求,直接傳回HTTP錯誤以節省資源,不再耗費頻寬或CPU、記憶體處理要求,可降低DDoS攻擊影響 ▪動態IP限制預設為停用 | 伺服器 | IIS管理員\伺服器\IIS\IP位址及網域限制\動作\開啟功能\動作\編輯動態限制設定 | 啟用動態IP限制功能,並依需求設定「根據同時要求的數目拒絕IP位址」與「根據超過一段時間之要求數目拒絕IP位址」參數 |
動態 IP 限制設定
根據同時要求的數目拒絕IP位址(C)
同時要求的最大數目(N):5
根據超過一段時間之要求數目拒絕 IP位址(R)
要求的最大數目(M):20
時間間隔(以毫秒表示)(T):200
僅啟用記錄模式(L)
確定 取消
********************************************************************************
IIS 的 「動態 IP 限制設定」畫面,
「根據同時要求的數目拒絕IP位址(C)」若超過「同時要求的最大數目(N)」設定值會發生何事?參考資料來源?
「根據超過一段時間之要求數目拒絕 IP位址(R)」若超過「要求的最大數目(M)」和「時間間隔(以毫秒表示)(T)」設定值會發生何事?參考資料來源?
ChatGPT
一、功能位置
IIS 管理員 → 伺服器或網站層級 → IP 位址及網域限制 → 動作窗格 → 編輯動態限制設定
二、設定項目與行為解釋
(1) 「根據同時要求的數目拒絕 IP 位址 (Concurrent Requests)」
| 項目 | 說明 |
|---|---|
| 設定值名稱 | Deny IP Address based on number of concurrent requests |
| 對應參數 | <denyByConcurrentRequests enabled="true" maxConcurrentRequests="N" /> |
| 行為 | 當某一個 IP 位址在同一時間(即並發)發出 超過 N 個尚未完成的 HTTP 要求 時,IIS 會立即拒絕該 IP 之後的所有新連線要求。 |
| 拒絕狀態碼 | 回應 HTTP 403.502 – Forbidden (Dynamic IP Restriction) |
| 封鎖時間 | 若同時設定了「封鎖 IP 位址的時間 (D)」,IIS 會將該 IP 加入暫時封鎖清單,直到封鎖時間到期。否則封鎖僅在超出期間有效。 |
🔹 實際效果:
- 此設定可防止同一 IP 同時開太多連線(例如 DoS 攻擊或惡意爬蟲)。
- 當部分連線完成後(即同時數量下降到閾值以下),該 IP 就可再次提出請求。
(3) 「根據超過一段時間之要求數目拒絕 IP 位址 (Requests over time)」
| 項目 | 說明 |
|---|---|
| 設定值名稱 | Deny IP Address based on number of requests over a period of time |
| 對應參數 | <denyByRequestRate enabled="true" maxRequests="M" requestIntervalInMilliseconds="T" /> |
| 行為 | 當某 IP 在 T 毫秒的時間間隔 內發出超過 M 個要求,IIS 會暫時封鎖該 IP。 |
| 拒絕狀態碼 | 同樣為 HTTP 403.502 – Forbidden (Dynamic IP Restriction) |
| 封鎖時間 | 若設定了「封鎖 IP 位址的時間 (D)」,則該 IP 會被封鎖 D 秒;未設定則封鎖持續到請求速率恢復正常為止。 |
🔹 實際效果:
- 此設定限制單位時間內的請求數,類似「節流 (throttling)」。
- 常用於防止短時間高頻請求造成的伺服器壓力或暴力破解行為。
三、補充:封鎖 IP 行為
| 項目 | 說明 |
|---|---|
| 封鎖類型 | 動態封鎖(非永久),IIS 會維護一個暫時封鎖的 IP 清單。 |
| 解除條件 | 達到封鎖時間、或請求速率/同時數回復正常。 |
| 事件記錄 | 可選擇是否「記錄拒絕的要求」,會寫入 IIS 日誌檔 (%SystemDrive%\inetpub\logs\LogFiles)。 |
四、參考資料來源(官方)
使用動態IP限制
https://learn.microsoft.com/zh-tw/iis/manage/configuring-security/using-dynamic-ip-restrictions
動態 IP 安全性 < dynamicIpSecurity>
https://learn.microsoft.com/zh-tw/iis/configuration/system.webserver/security/dynamicipsecurity/
Dynamic IP Security <dynamicIpSecurity>
https://learn.microsoft.com/en-us/iis/configuration/system.webserver/security/dynamicipsecurity/
IIS 中的 HTTP 狀態碼
https://learn.microsoft.com/zh-tw/troubleshoot/developer/webapps/iis/health-diagnostic-performance/http-status-code
HTTP status codes in IIS
https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/iis/health-diagnostic-performance/http-status-code
IP Address and Domain Restrictions
https://go.microsoft.com/fwlink/?LinkId=210513
五、範例 Web.config 設定對應
<system.webServer>
<security>
<dynamicIpSecurity enableLoggingOnlyMode="false">
<!-- 同時要求數超過 10 就拒絕 -->
<denyByConcurrentRequests enabled="true" maxConcurrentRequests="10" />
<!-- 1 秒內超過 50 個要求就拒絕 -->
<denyByRequestRate enabled="true" maxRequests="50" requestIntervalInMilliseconds="1000" />
<!-- 封鎖時間 60 秒 -->
<denyAction action="Forbidden" />
</dynamicIpSecurity>
</security>
</system.webServer>
|
預設情況下,你無法在網站的 Web.config 中有效地改變 IIS 管理員 GUI 裡的動態 IP 限制值。
若你在 Web.config 嘗試設定更高或不同的數值,會被忽略。(除非特別開啟可以覆蓋設定)
********************************************************************************
建議照要求設定。
(完)




沒有留言:
張貼留言