雷池 WAF 如何配置才能正确获取到源 IP

经常有大哥反馈说雷池攻击日志里显示的 IP 有问题。

这里我来讲一下为什么一些情况下雷池显示的攻击 IP 会有问题。

问题说明

默认情况下,雷池会通过 HTTP 连接的 Socket 套接字读取客户端 IP。在雷池作为最外层网管设备的时候这没有问题,雷池获取到的 IP 就是攻击者的真实 IP。

但是,有些情况下我们需要在雷池前面再叠加其他代理设备(如 Nginx,CDN,应用交付,API 网管等等)。在这种情况下,实际连接雷池的不是真正的网站用户,而是这些代理设备,这种情况下我们就需要根据实际网络拓扑来调整雷池的 IP 获取方式。 ## 先了解什么是 X-Forwarded-For

X-Forwarded-For 是一个相对通用的 HTTP 请求头。

HTTP 流量在经过代理时,由于网络连接被截胡,服务器无法得知真正的客户端 IP。这时代理设备会给当前的流量加上一个 X-Forwarded-For 头,里面的内容就是连接这个代理的客户端 IP。

下面这个例子中 HTTP 代理通过 X-Forwarded-For 头告诉服务器,真正的客户端地址是 1.2.3.4

GET / HTTP/1.1 Host: demo.waf-ce.chaitin.cn User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 X-Forwarded-For: 1.2.3.4

X-Forwarded-For 实际上是一个链式结构。如果流量经过了多层代理设备,X-Forwarded-For 会记录途径的所有 IP。

下面这个例子中 HTTP 代理通过 X-Forwarded-For 头告诉服务器,流量经过了三层代理,真正的客户端地址是 1.2.3.4,第一层代理的是 11.12.13.14,第二层代理的地址是 21.22.23.24,第三次代理的地址可以通过 Socket 连接直接来获取。

GET / HTTP/1.1 Host: demo.waf-ce.chaitin.cn User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 X-Forwarded-For: 1.2.3.4, 11.12.13.14, 21.22.23.24

IP-Forwarded-For 头靠谱么

在代理设备和代理链路可信的情况下 IP-Forwarded-For 头传递的内容是很靠谱的,可以放心的试用。

但是呢,如果代理设备不可信,那么攻击者会通过伪造 IP-Forwarded-For 头的办法来实现伪造源 IP。

雷池的配置

雷池全局配置里有一个这样的选项,专门用来解决这个问题。

雷池在这个配置里提供了几个选项,根据上面讲到的知识,大家可以根据实际情况来选择最适合的选项

复制代码
从网络连接中获取: 当雷池作为最外层代理设备,无其他前置代理时选用
从 X-Forwarded-For 中获取上一级代理的地址:在流量到达雷池之前还有一层代理设备(如 Nginx,CDN 等)时可选用
从 X-Forwarded-For 中获取上上一级代理的地址:在流量到达雷池之前还有两层代理设备(如 Nginx,CDN 等)时可选用
从 X-Forwarded-For 中获取上上上一级代理的地址:在流量到达雷池之前还有三层代理设备(如 Nginx,CDN 等)时可选用
从其他 HTTP Header 中获取:有几种情况
    流量经过了一些特殊的反向代理设备,这类代理不会发送 X-Forwarded-For 头,但是可以通过配置,把 IP 通过其他头发过来
    流量到达雷池有多种途径,可能有一层代理,也可能有两层代理,可以通过配置前置代理设备来统一 HTTP 头

对大多数 CDN 来说,会将 CDN 自身的 IP 也放到 XFF 中, 此时需要设置为从上上一级 获取

相关推荐
云计算练习生1 天前
渗透测试行业术语扫盲(第六篇)—— Web安全专用类术语
web安全·网络安全·信息安全·渗透测试术语
三七吃山漆2 天前
攻防世界——comment
android·python·web安全·网络安全·ctf
Suckerbin2 天前
2025年Solar应急响应6月赛 恶意进程与连接分析
安全·web安全·网络安全·安全威胁分析
山川绿水2 天前
bugku overflow
网络安全·pwn·安全架构
浩浩测试一下2 天前
Kerberos 资源约束性委派误配置下的 S4U2self → S4U2proxy → DCSync 提权高阶手法链
安全·web安全·网络安全·中间件·flask·系统安全·安全架构
Z_renascence2 天前
web254-web259
web安全·网络安全
clown_YZ2 天前
CERTUNLP 2025--部分解题记录
网络安全·ctf
渡我白衣2 天前
Select的优化:poll
开发语言·网络·c++·人工智能·网络协议·tcp/ip·网络安全
码农12138号2 天前
网络安全-绕过技巧(WAF、白名单、黑名单)总结
web安全·网络安全·绕过·过滤绕过
互亿无线明明2 天前
海外旅游出行短信如何集成?面向开发者的跨境行程通知解决方案
网络协议·tcp/ip·5g·网络安全·rpc·旅游·tcpdump