
一、为什么要装它:手动拉黑 IP 太累了
IIS 服务器跑一段时间,日志里总会出现这类 IP:几秒内连续请求大量页面、高频扫描目录、反复撞击登录接口。靠"看日志 → 手动加黑名单"的老办法,规则永远追不上攻击者的换速节奏。
IIS 的 Dynamic IP Restrictions(动态 IP 限制,下称 DIPR) 就是把这件事自动化:同一个 IP 的并发请求数或单位时间请求数超过阈值时,自动临时拒绝该 IP 的后续请求。它是 IIS 自带能力(无需第三方 WAF),也是 CIS IIS 安全基线明确建议开启的功能。
很多人搜"怎么安装"卡住,根源在于版本差异没搞清——先分清你手里是哪种情况。
二、先分版本:内置还是要单独装(关键分岔)
| 你的环境 |
DIPR 状态 |
安装方式 |
| Windows Server 2012 及以上 / IIS 8、8.5、10 |
已内置,是"IP 和域限制"角色服务的一部分 |
在角色和功能里勾选启用即可 |
| Windows Server 2008 R2 / Windows 7 / IIS 7.5 |
带外模块,需单独安装 |
用 Web Platform Installer 装 DynamicIPRestrictionsRTW |
| Windows Server 2008 / Vista SP1 / IIS 7 |
带外模块 |
同上(Beta 1 需先卸载再装正式版,Beta 2 可直接升级) |
判断方法很简单:打开 IIS 管理器,选中站点,看功能列表里有没有 "IP 地址和域限制"(IP Address and Domain Restrictions)图标。有 → 走内置路径;没有 → 先装角色服务。
三、安装步骤(三种方式任选其一)
3.1 图形界面(服务器管理器)
打开服务器管理器进入"添加角色和功能"向导。
展开角色树Web 服务器(IIS)→ Web 服务器 →
安全性。
勾选"IP 和域限制"(IP and Domain Restrictions),下一步完成安装。
确认图标出现安装不需要重启服务器;IIS 管理器中选中站点,功能视图"安全性"分组下出现"IP 地址和域限制"。
注意:动态限制不是一个叫 "Dynamic IP Restrictions" 的独立图标——IIS 8+ 上它集成在"IP 地址和域限制"功能内部,右侧操作栏的"编辑动态限制设置"就是它。很多人在管理器里找不到它,原因就在这。
3.2 PowerShell(适合批量 / 自动化)
Install-WindowsFeature -Name Web-IP-Security
一条命令完成,效果与 GUI 勾选相同。用 Get-WindowsFeature Web-IP-Security 可确认安装状态。
3.3 老系统(IIS 7/7.5):Web Platform Installer
webpicmdline /AcceptEula /Products:DynamicIPRestrictionsRTW
2008/2008 R2 走 WebPI 路径,2012+ 走 DISM 的 IIS-IPSecurity 功能路径。装完同样在"IP 地址和域限制"里出现"编辑动态限制设置"入口。
四、配置:两个阈值决定它拦不拦、误不误伤
选中站点 → 双击 IP 地址和域限制 → 右侧操作栏点 "编辑动态限制设置",两个勾选项就是 DIPR 的全部核心:
- 根据并发请求数拒绝 IP 地址:同一 IP 同时未完成的请求数超限即拒绝,适合拦截"同时开几十个连接"的并发型滥用;
- 根据一段时间内的请求数拒绝 IP 地址:两个参数——最大请求数 + 时间段(毫秒)。例如 100 次 / 10000 毫秒 = 同一 IP 十秒内超过 100 次请求即拒绝,适合高频抓取、CC 类请求。
参考起步参数(按业务类型调整,不要照抄上线):
| 业务类型 |
并发阈值 |
频率阈值 |
说明 |
| 内容型网站 |
100–150 |
200 次 / 30 秒 |
正常浏览不易触发 |
| 小型 API |
50 |
100 次 / 10 秒 |
注意有轮询客户端 |
| 下载站 |
200(可放宽) |
视带宽调 |
大文件下载拉高并发 |
| 管理后台 /admin |
10–20 |
30 次 / 10 秒 |
CIS 基线建议对管理端点从严 |
强烈建议的试运行姿势:先只开启
仅记录模式(Logging-Only)——允许所有访问、只记录符合条件的请求。跑几天,对照日志确认没有误伤正常用户(尤其是公司出口 IP、监控探针),再切换成真正拒绝。
五、拒绝行为:被拦的 IP 看到什么
"编辑功能设置"里可选拒绝操作类型:
- 未授权(401) / 禁止访问(403):常规选择;
- 未找到(404):让攻击者以为资源不存在,增加其探测成本;
- 中止(Abort):直接掐断 HTTP 连接,不给任何响应——对纯攻击流量最省资源。
DIPR 的拦截发生在内核态(http.sys 层面),被拉黑的 IP 请求不会进入工作进程,因此对 CPU 的额外开销很低——这是它适合做"第一道闸门"的原因。
六、两个必配项:白名单与代理模式
1. 允许的 IP 列表(白名单):把公司出口 IP、监控探针、合作方固定 IP 加进去,白名单不受动态限制约束。这是防误伤的第一优先级,比调阈值更有效。
2. 代理模式(X-Forwarded-For):如果 IIS 前面有负载均衡、CDN 或反向代理,IIS 看到的"客户端 IP"全是代理 IP——不开启代理模式,所有用户会被当成同一个 IP,一起触发限制。开启后 DIPR 按 XFF 头里的真实客户端 IP 判断。
反过来也一样:站点不在代理后面就不要开代理模式——任何客户端伪造的 XFF 头都会被当真,防护反而被绕过。这个开关的方向取决于你的架构,开错方向都是事故。
七、命令行配置:AppCmd 与 web.config
GUI 配置最终落在配置段 system.webServer/security/dynamicIpSecurity 上,命令行更适合脚本化部署:
%windir%\system32\inetsrv\appcmd.exe set config ^
-section:system.webServer/security/dynamicIpSecurity ^
/denyByConcurrentRequests.enabled:"True" ^
/denyByConcurrentRequests.maxConcurrentRequests:"30" ^
/denyByRequestRate.enabled:"True" ^
/denyByRequestRate.maxRequests:"30" ^
/denyByRequestRate.requestIntervalInMilliseconds:"5000" ^
/commit:apphost
web.config 里对应结构相同,方便随代码版本管理。注意 -commit:apphost(写入 applicationHost.config)与站点级 web.config 的作用范围差异。
八、装完之后:怎么验证它真的在工作
看配置生效appcmd list config -section:system.webServer/security/dynamicIpSecurity压测触发用压测工具(URLSTRESS / ab / wrk)从单 IP 高频请求站点。
看结果超限后应出现配置的拒绝响应(403 / 404 / 断连),IIS 日志有对应记录。
验证白名单把测试机 IP 加入允许列表后重复压测,确认不触发。
九、边界与误区:它不是 DDoS 防护
- 单机视角的频率控制:按"单 IP 行为"拦截,适合防爬虫、CC、爆破的前置闸门;带宽型 DDoS 洪水在 IIS 之前就应被网络层清洗;
- NAT 后多用户误伤:公司、校园网出口后面是大量真实用户共享一个 IP,阈值太低会连坐误伤——这正是白名单和仅记录模式试运行的意义;
- "临时性"是特性:被拒 IP 过了冷却期自动恢复,DIPR 不做永久拉黑;持续滥用的 IP 会被反复拦截,但需要永久黑名单时用静态"拒绝条目"补充;
- 静态黑名单是补充不是替代:已知恶意网段静态拉黑,动态限制管未知的新型滥用,两者配合。
十、自查清单
- 已确认 IIS 版本并走对安装路径(8+ 内置 / 7.5 用 WebPI)
- "IP 和域限制"角色服务已安装,功能图标已出现
- 并发 + 频率两阈值已按业务类型设置,非默认照抄
- 已先以仅记录模式试运行,日志确认无误伤
- 公司出口 IP / 监控探针已加入允许列表
- 反代 / CDN 情况已确认,代理模式开关与之匹配
- 拒绝行为已选定(建议管理端点 404/Abort,业务页 403)
- 配置已纳入版本管理(web.config)或部署脚本(AppCmd / PowerShell)
十一、常见问题(FAQ)
- Q1:IIS 管理器里找不到"Dynamic IP Restrictions"这个图标?
- 它不是独立图标。IIS 8+ 上集成在"IP 地址和域限制"功能里,打开该功能后右侧操作栏的"编辑动态限制设置"就是它。找不到图标说明角色服务未装。
- Q2:安装后需要重启服务器吗?
- 不需要。通过角色和功能向导或 PowerShell 安装 Web-IP-Security 后配置即时可用,个别情况下
iisreset 即可。
- Q3:Windows Server 2008 R2 / IIS 7.5 上怎么装?
- 用 Web Platform Installer 安装 DynamicIPRestrictionsRTW 模块;若装过 Beta 1 需先卸载(Beta 2 可直接升级正式版,配置保留)。
- Q4:阈值设多少才不会误伤正常用户?
- 没有通用数字。正确姿势是先开"仅记录模式"跑几天,从日志看真实用户的并发与频率分布,取峰值的 2–3 倍作阈值;公司出口 IP 加白名单兜底。
- Q5:网站在 CDN / 负载均衡后面,配置有什么不同?
- 必须开启代理模式(按 X-Forwarded-For 判断真实客户端 IP),否则所有用户共享代理 IP 会被整体拒绝。且要确认代理正确透传 XFF 头。
- Q6:被拦截的 IP 会永远拉黑吗?
- 不会。DIPR 是临时性拒绝,冷却后自动恢复。需要永久黑名单的场景用"添加拒绝条目"做静态规则,与动态限制互补。
- Q7:它能防 DDoS 吗?
- 只能防"单 IP 高频 / 高并发"这一层(CC、爬虫、爆破)。带宽型 DDoS 应在网络层清洗。完整防护 = 上游高防 + DIPR 做应用层闸门。
- Q8:拦截发生在哪一层,会影响正常请求性能吗?
- 被拉黑 IP 的请求在内核态(http.sys)就被拒绝,不进工作进程、不消耗应用线程池;对正常请求的开销是每请求一次计数判断,可忽略。
关于墨者安全
墨者安全致力于安全防护、服务器高防、网络高防、ddos防护、cc防护、dns防护、防劫持、高防服务器、高防dns、网站防护等方面的服务,全网第一款指纹识别技术防火墙,自研的WAF指纹识别架构,提供任意CC和DDoS攻击防御