網站安全:IIS基于并發請求數阻止 IP 地址
用于 IIS 7.0 及更高版本的動態 IP 限制 (DIPR) 模塊提供針對 Web 服務器和網站上拒絕服務和暴力攻擊的保護。 為提供此保護,該模塊會暫時阻止并發請求數異常高或短時間內發出大量請求的 HTTP 客戶端的 IP 地址。
功能
動態 IP 限制模塊包括以下關鍵功能:
基于并發請求數阻止 IP 地址 - 如果 HTTP 客戶端的并發請求數超過允許的量,會暫時阻止該客戶端的 IP 地址。
基于一段時間內的請求數阻止 IP 地址 - 如果 HTTP 客戶端發出的請求數超過指定時間間隔內發出的數量,會暫時阻止該客戶端的 IP 地址。
不阻止的 IP 地址允許列表 - 可添加無論配置如何都不受模塊阻止的客戶端的 IP 地址的列表。
各種拒絕操作 - 可指定要返回到 IP 地址受阻止的 HTTP 客戶端的響應。 模塊可返回狀態代碼 403 和 404,或直接終止 HTTP 連接而不返回任何響應。
對代理后方的 Web 服務器的支持 - 如果 Web 服務器位于代理后方,可將模塊配置為使用 X-Forwarded-For 標頭中的客戶端 IP 地址。
IPv6 - 該模塊提供對 IPv6 地址的完全支持。
安裝 DIPR 模塊
可以嘗試以下方法來安裝動態 IP 限制:
在“選擇角色服務”屏幕中,導航到 Web 服務器(IIS) > Web 服務器 > 安全性。 選中“IP 和域限制”復選框,然后單擊“下一步”繼續。

在IIS8點擊相應站點,找到IP地址和域限制,雙擊進入。
在右邊欄點擊“編輯動態限制設置”,會彈出相應設置對話框。
設置同一IP連接數和請求頻率,可以根據網站具體情況調整相關參數。

基于一段時間內的請求數阻止 IP 地址
使用此選項時,服務器會拒絕任何在一段時間內發出的請求數超過可配置數量的 HTTP 客戶端 IP 地址的請求。 這些 IP 地址會一直受阻止,直到其一段時間內的請求數低于配置的限額。
若要測試此功能,可使用 IIS 管理器或執行 appcmd 命令將“最大請求數”設置為 5、將“時間段”設置為 5000:
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/security/dynamicIpSecurity /denyByRequestRate.enabled:"True" /denyByRequestRate.maxRequests:"5" /denyByRequestRate.requestIntervalInMilliseconds:"5000" /commit:apphost
打開 Web 瀏覽器,請求 http://localhost/welcome.png,然后點擊 F5 以持續刷新頁面。 隨即會在 5 秒內生成 5 個以上的請求,結果是服務器以“403 - 禁止”狀態代碼響應:

如果再等待 5 秒,所有之前的請求均已執行,這時發出請求就會成功。
注意:
在實際情況中為 Web 應用程序配置一段時間內允許的請求數時,請完整細致地測試所選限制,以確保不阻止符合條件的 HTTP 客戶端。 這對于具有支持 AJAX 的網頁并提供媒體內容的豐富 Internet 應用程序尤為重要。
上一篇:Windows服務器下隱藏IIS版本號
下一篇:Windows下Tomcat宕機后自動重啟Tomcat服務
