inspect real-ip detect-field xff命令用来配置X-Forwarded-For字段的提取位置。
undo inspect real-ip detect-field xff命令用来缺省情况。
【命令】
inspect real-ip detect-field xff { head | tail [ number ] }
undo inspect real-ip detect-field xff
【缺省情况】
X-Forwarded-For字段的提取位置为最后一项。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
head:表示X-Forwarded-For字段中的第一项。
tail:表示X-Forwarded-For字段中的最后一项。
number:表示提取X-Forwarded-For字段中的最后number个地址,取值范围为2~10。若未配置本参数,则表示仅提取X-Forwarded-For字段中的最后一个地址。
【使用指导】
在客户端通过HTTP代理连接到Web服务器的场景中,HTTP报文的首部可能会携带X-Forwarded-For字段。X-Forwarded-For字段中携带多个地址,标准的格式为X-Forwarded-For: <client>, <proxy1>, <proxy2>,…<proxyn>。如果一个报文通过多个代理,则会列出每个代理服务器的IP地址。即,最右边(tail)的proxyn是最新的代理服务器的IP地址,最左边(head)的client是原始客户端的IP地址。
管理员可通过配置参数number,提取多个地址,方便对客户端的代理情况进行分析。
【举例】
# 配置X-Forwarded-For字段的提取位置为第一项。
<Sysname> system-view
[Sysname] inspect real-ip detect-field xff head
inspect real-ip enable命令用来开启真实源IP地址检测功能。
undo inspect real-ip enable命令用来关闭真实源IP地址检测功能。
【命令】
inspect real-ip enable
undo inspect real-ip enable
【缺省情况】
真实源IP地址检测功能处于关闭状态。
【视图】
系统视图
【缺省用户角色】
network-admin
【使用指导】
本功能适用于客户端使用代理方式访问服务器的场景。
当客户端使用代理方式访问服务器时,源IP地址将会发生改变,设备无法获取客户端的真实IP地址,可能造成一些攻击无法准确识别。开启真实源IP检测功能后,设备将从客户端请求报文的相关字段获取真正的源IP地址,避免上述问题。
【举例】
# 开启真实源IP地址检测功能。
<Sysname> system-view
[Sysname] inspect real-ip enable
inspect real-ip extraction mode命令用于配置真实源IP地址提取模式。
undo inspect real-ip extraction mode命令用来恢复缺省情况。
【命令】
inspect real-ip extraction mode { cdn-src-ip-only | priority | tcp-option-only | x-real-ip-only | xff-only }
undo inspect real-ip extraction mode
【缺省情况】
真实源IP地址提取模式为xff-only。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
cdn-src-ip-only:表示仅从HTTP报文扩展头中的Cdn-Src-IP字段中提取真实源IP地址。
priority:表示从Cdn-Src-IP、TCP-Option、X-Real-IP以及X-Forwarded-For字段中均提取真实源IP地址,最终以高优先级字段的提取结果为准。其中,各字段的优先级需要通过inspect real-ip detect-field priority命令指定。
tcp-option-only:表示仅从TCP报文中的选项字段中提取真实源IP地址。
x-real-ip-only:表示仅从HTTP报文扩展头中的X-Real-IP字段中提取真实源IP地址。
xff-only:表示仅从HTTP报文扩展头中的X-Forwarded-For字段中提取真实源IP地址。
【使用指导】
设备支持多种真实源IP地址提取模式,管理员可以根据实际情况选择其中一种进行配置。
· 单字段提取:当管理员可以确定当前组网环境中仅需要针对报文中的某个特定字段提取真实源IP地址时,可将真实源IP地址提取模式配置为仅提取该字段(即XXX-only模式)。
· 字段优先级提取:当管理员不确定需要从哪些字段中获取真实源IP时,可将真实源IP地址提取模式配置为按照字段优先级提取(即priority模式),并可根据实际需求调整各字段的优先级。此模式下,设备会从报文的多个字段中获取多个客户端的真实源IP地址,并将优先级最高的字段中提取出的IP地址作为最终的真实源IP地址。
【举例】
# 配置真实源IP的提取模式为x-real-ip-only模式。
<Sysname> system-view
[Sysname] inspect real-ip extraction mode x-real-ip-only
【相关命令】
· inspect real-ip detect-field priority
暂无评论
你提到的“日志里源地址和目的地址相反”这个问题,仅靠配置X-Forwarded-For(XFF)字段是无法直接解决的。
“日志里源地址和目的地址相反”,这实际上是防火墙的地址转换功能(NAT)的正常行为,而不是XFF能处理的问题。
X-Forwarded-For的工作原理:XFF字段主要用于在HTTP或HTTPS的请求报文中,携带客户端的真实源IP地址。它只影响应用层(第7层)的数据内容。
你的日志来源:防火墙记录的是IP报文的头部信息(第3层),即数据包从哪里来、到哪里去。当数据包经过NAT后,源IP和目的IP被重写,日志记录的也是转换后的地址。
“地址相反”的原因:你看到的“地址相反”,是因为防火墙在记录一个从服务器到客户端的响应数据包。这个响应包的源地址是服务器(公网IP),目的地址是转换前的客户端(内网IP),所以看起来“颠倒了”。这是NAT会话的双向记录,并非故障。
简单来说,XFF是给最终服务器看的“乘客名单”,而无法改变防火墙自己的行车记录。
可以解决:如果你的后端服务器收到的请求日志里,源IP都变成了防火墙的IP,可以通过XFF让服务器知道真实客户端的IP。
无法解决:防火墙自身生成的NAT日志或安全告警日志,记录的仍是NAT转换后的IP地址,XFF无法改变这一点。
如果你的核心需求是让防火墙的安全策略或日志能基于真实的客户端IP进行阻断或记录(例如在CDN场景下),H3C防火墙的Comware V7平台提供了“真实源IP提取”功能。
配置步骤如下:
配置真实源IP的提取规则:在系统视图下,指定从HTTP头的X-Forwarded-For字段提取真实IP。
在安全策略中调用该功能:在对应的安全策略中,必须引用DPI(深度包检测)应用层检测引擎,该功能才能生效。
启用真实IP黑名单(可选):如果需要阻断某个真实IP,可以将其加入黑名单。
暂无评论
# 出口NAT(EasyIP)
interface GigabitEthernet1/0/2 # 外网口
nat outbound 2000
# 安全策略:trust→untrust 放行,untrust→trust 拒绝(默认)
security-policy ip
rule name trust-to-untrust
source-zone trust
destination-zone untrust
action pass
# 全局开启威胁日志
anti-attack log enable
# 针对常见攻击开启日志(按需)
anti-attack icmp-flood log enable
anti-attack syn-flood log enable
anti-attack udp-flood log enable
# 日志发到日志服务器(示例)
info-center loghost 192.168.1.100 # 你的日志服务器IP
info-center source default loghost 192.168.1.100
# 看威胁日志(公网→内网攻击,真实源IP)
display anti-attack log
# 看会话表(确认NAT转换)
display session table verbose
# 看流日志(内网→外网,NAT前源是内网)
display flow log
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论