网站安全: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版本号