如题,业务接入cdn的情况下XFF有多个字段,或者cdn有指定的请求头来传递客户端ip,例如Ali-Cdn-Real_Ip,例如
X-Forwarded-For: 200.200.200.200, 300.300.300.300
Ali-Cdn-Real-Ip: 200.200.200.200
这种情况下在防火墙上拉黑200.200.200.200是无法阻断的,是防火墙都不支持这种黑名单场景吗?只能对四层ip拉黑。
当然这种场景更适合在WAF上进行拉黑,现在出于某些原因还是需要防火墙拉黑。
client - cdn - fw - server
(0)
最佳答案
H3C防火墙在CDN场景下支持基于真实客户端IP的黑名单阻断,但需通过**应用层检测功能**实现。根据您描述的场景(`X-Forwarded-For`含多层IP + 自定义头如`Ali-Cdn-Real-Ip`),具体解决方案如下: --- ### **关键配置步骤:** 1. **启用真实源IP提取功能** 配置防火墙优先解析指定HTTP头字段的真实客户端 system-view inspect real-ip detect-field xff priority 100 # 优先解析X-Forwarded-For inspect real-ip detect-field cdn-src-ip priority 90 # 次优先级解析自定义头(如Ali-Cdn-Real-Ip) ``` 2. **配置IP黑名单** 添加需阻断的真实客户端IP(如`200.200.200.200`)至黑名单,并**启用全局黑名单过滤**: blacklist global enable # 全局启用黑名单 blacklist ip 200.200.200.200 # 添加客户端IP到黑名 3. **关联应用层检测引擎** 在安全策略中调用应用层检测引擎(DPI),确保流量经过HTTP头解析: security-policy ip # 进入安全策略视图 rule name "CDN_Traffic" action pass profile application inspect # 调用DPI引擎 source-zone trust destination-zone untrust ### **注意事项:** 1. **HTTPS流量处理** - 若流量为HTTPS,需启用**SSL解密功能**(解密策略需覆盖CDN域名),否则无法解析加密报文中的HTTP头。 - 解密配置需导入CA证书并部署解密策略,避免影响业务。 2. **字段优先级冲突** - 若`X-Forwarded-For`含多个IP(如`200.200.200.200, 300.300.300.300`),防火墙默认取**最左侧IP**作为真实源IP(即`200.200.200.200`)。若CDN规范传递IP,此方案可直接生效。 ### **为什么四层IP黑名单失效?** - CDN场景中,防火墙看到的源IP是**CDN节点IP**(如`300.300.300.300`),而非真实客户端IP(`200.200.200.200`)。 - 传统四层黑名单仅能阻断CDN节点IP,无法精准识别穿透CDN的真实客户端 ### **验证方法:** 1. 检查黑名单日志是否命中真实IP: display blacklist verbose # 查看黑名单状态 display logbuffer level 6 # 筛选黑名单阻断日志 ``` 2. 通过`debug`确认真实IP提取结果(需谨慎开启): debug inspect real-ip # 查看真实IP提取过程
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论