在 Cloudflare 后台配置 WAF 规则拦截特定 IP 段是防护恶意流量的有效手段。核心在于使用公网 IP 段配置防火墙规则,确保边缘节点能正确匹配来源。
先说结论:通过 Cloudflare WAF 的 IP 访问规则或防火墙工具页都能实现 IP 段拦截,前者适合精细化控制,后者适合快速批量封禁。
- 先判断:确认要拦截的是公网 IP 段(如 203.0.113.0/24),私有 IP(如 192.168.x.x)无效
- 优先做:在 WAF 工具页添加 IP 封锁规则,可单独设定应用到单站点或全账号
- 再验证:临时封禁自己的公网 IP 测试,确认返回 403 后解封,或查看安全事件日志
核心原理与注意事项
Cloudflare 的 WAF 在请求到达你的源服务器之前就在边缘节点完成拦截。IP 段拦截的本质是在防火墙规则里匹配请求来源 IP 是否落在指定的 CIDR 范围内。
重要提示:Cloudflare 边缘节点只能看到用户的公网出口 IP。配置规则时不能使用私有地址段(如 192.168.x.x、10.x.x.x、172.16.x.x),因为这些地址在互联网上不可路由,规则永远不会命中,会产生安全错觉。
实操步骤
方法一:通过 WAF 工具页添加 IP 封锁(推荐)
步骤 1:登录 Cloudflare 控制台,选择要配置的域名。
步骤 2:在左侧菜单点击「安全性」→「WAF」→「工具」。
步骤 3:找到「IP 访问规则」配置框,输入要封禁的公网 IP 或 IP 段(支持 CIDR 格式,如 203.0.113.0/24)。
步骤 4:确保输入标准的 CIDR 格式,系统校验通过后,在下拉菜单选择「阻止」。
步骤 5:选择规则应用范围——可设定为当前站点或 Cloudflare 账号下的所有站点。
步骤 6:点击保存,规则立即生效。
方法二:通过自定义 WAF 规则拦截
步骤 1:登录 Cloudflare 控制台,选择域名 → 安全性 → WAF → 创建规则。
步骤 2:输入规则名称,如「拦截恶意 IP 段」。
步骤 3:在表达式编辑器中输入规则,例如:
ip.src in {203.0.113.0/24 198.51.100.0/24}
如果要同时限制特定路径,可以结合条件:
http.request.uri.path starts_with "/admin" and ip.src in {203.0.113.0/24}
步骤 4:动作选择「阻止」,建议在高级选项中勾选「返回 403 状态码」。
步骤 5:点击部署,规则生效。
验证与排查
验证方法 1:安全事件日志(推荐)
在 Cloudflare 控制台 → 安全性 → 事件 里查看是否有被拦截的请求记录。命中规则的请求会显示对应规则名称及动作「Blocked」。
验证方法 2:临时自测
查询当前访问网络的公网 IP(如通过搜索 "what is my ip"),将其加入封锁列表。尝试访问网站,确认返回 403 页面或挑战页。测试完成后务必立即删除该规则,恢复访问。
排查步骤:
- 确认域名 DNS 记录已开启橙色云朵(代理状态),灰色云朵不经过 WAF。
- 确认源站 IP 未暴露,否则攻击者可直接绕过 Cloudflare 访问源站。
- 检查规则优先级,确保白名单放行规则优先级高于拦截规则。
常见风险
风险 1:私有 IP 无效
拦截大网段(如/8、/16)可能影响大量正常用户,且私有 IP 段配置无效。建议先从小范围公网网段测试,确认无误后再扩大范围。
风险 2:误封正常用户
如果有误封,在工具页直接删除对应规则即可解封。配置前建议备份规则表达式。