mod_unified_waf
模块简介
BFE 支持在 http request 的处理流程中引入统一的第三方WAF支持。
基础配置
配置描述
模块配置文件: conf/mod_unified_waf/mod_unified_waf.conf
| 配置项 | 描述 |
|---|---|
| Basic.WafProductName | String 第三方WAF产品的名字,默认提供None、BFEMockWaf两个候选。默认值为None |
| Basic.ConnPoolSize | String 与WAF server 的连接池大小 |
| ConfigPath.ModWafDataPath | String WAF访问的具体参数配置 |
| ConfigPath.ProductParamPath | String WAF访问的产品线配置 |
| ConfigPath.WafInstancesPath | String WAF RS实例池的配置 |
| Log.OpenDebug | Boolean 是否开启 debug 日志 默认值False |
配置示例
[Basic]
#candidates: None, BFEMockWaf
WafProductName = None
ConnPoolSize = 8
[ConfigPath]
ModWafDataPath = "../conf/mod_unified_waf/mod_unified_waf.data"
ProductParamPath = "../conf/mod_unified_waf/product_param.data"
WafInstancesPath = "../conf/mod_unified_waf/waf_instances.data"
[Log]
OpenDebug = false
WAF访问具体参数配置
配置文件: conf/mod_unified_waf/mod_unified_waf.data
配置描述
| 配置项 | 描述 |
|---|---|
| Version | String 配置文件版本 |
| Config | Object 具体参数配置 |
| Config.WafClient | Object WAF Client参数配置 |
| Config.WafClient.ConnectTimeout | int 连接 WAF RS的超时时间 |
| Config.WafClient.Concurrency | int 访问 WAF RS的并发度 |
| Config.WafClient.MaxWaitCount | int 访问 WAF RS的等待请求数 |
| Config.WafDetect | Object WAF 检测参数配置 |
| Config.WafDetect.RetryMax | int 访问 WAF RS的重试次数 |
| Config.WafDetect.ReqTimeout | int 访问 WAF RS的超时时间 |
| Config.HealthChecker | Object WAF RS 健康检查参数配置 |
| Config.HealthChecker.UnavailableFailedThres | int WAF RS健康检测时,RS不可访问的连续失败次数阈值 |
| Config.HealthChecker.HealthCheckInterval | int WAF RS健康检测的间隔(ms) |
配置示例
{
"Version": "2025-06-23 12:00:10",
"Config": {
"WafClient": {
"ConnectTimeout": 30,
"Concurrency": 2000,
"MaxWaitCount": 400
},
"WafDetect": {
"RetryMax": 2,
"ReqTimeout": 40
},
"HealthChecker": {
"UnavailableFailedThres": 20,
"HealthCheckInterval": 1000
}
}
}
WAF访问产品线配置
配置文件: conf/mod_unified_waf/product_param.data
配置描述
| 配置项 | 描述 |
|---|---|
| Version | String 配置文件版本 |
| Config | Object 具体参数配置 |
| Config{k} | Object 具体产品线的名字 |
| Config{v} | Object 具体产品线的配置 |
| Config{v}.SendBody | Object WAF 检测时,是否发送body |
| Config{v}.SendBodySize | Object WAF 检测时,发送body的最大size(byte) |
配置示例
{
"Version": "2023-01-19 12:00:10",
"Config": {
"example_product": {
"SendBody": true,
"SendBodySize": 1024
}
}
}
WAF RS实例池配置
配置文件: conf/mod_unified_waf/waf_instances.data
配置描述
| 配置项 | 描述 |
|---|---|
| Version | String 配置文件版本 |
| Config | Object 具体配置信息,目前只有一个WafCluster |
| Config.WafCluster | Object WafCluster RS 具体配置 |
| Config.WafCluster[].IpAddr | String WAF RS IP |
| Config.WafCluster[].Port | String WAF RS 攻击检测端口 |
| Config.WafCluster[].HealthCheckPort | String WAF RS 健康检测端口 |
配置示例
{
"Version": "2023-01-19 12:00:10",
"Config": {
"WafCluster": [
{"IpAddr": "127.0.0.1", "Port": 8899, "HealthCheckPort": 8899}
]
}
}