應用 WAF 白名單
目錄結構
|-- waf_whitelist/
|-- waf_whitelist.yaml
|-- ...
YAML 檔案中可以包含一個或多個應用 WAF 白名單配置。
配置說明
每個 WAF 白名單配置是一個包含以下引數的物件:
引數名 | 資料型別 | 是否必選 | 描述 |
---|---|---|---|
conditions | array | 是 | 觸發白名單的條件列表 |
rules | array | 是 | 要忽略的 WAF 規則列表 |
conditions 配置
可參考 頁面規則 - 條件
rules 配置
引數名 | 資料型別 | 是否必選 | 描述 |
---|---|---|---|
rule_set_name | string | 是 | WAF 規則集的名稱 |
rule_names | array | 否 | 要忽略的具體規則名稱列表 |
配置示例
- conditions:
- var: uri
op: eq
val: /hello
rules:
- rule_set_name: scanner_detection
rule_names:
- '913100'
- '913110'
- rule_set_name: protocol_enforcement
此配置定義了兩個 WAF 白名單規則,使用規則集名稱及規則名稱來指定要忽略的規則。
其中的 '913100'
和 '913110'
是 ModSecurity 規則的 ID,在 OpenResty Edge 中被用作規則名稱,因此需要是字串型別。當您使用自定義規則集時,可以自行指定規則名稱。
使用示例
更新配置到 OpenResty Edge 中:
edge-config https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -l waf_whitelist -i /root/oredge-configs -d test.com
從 OpenResty Edge 中匯出配置:
edge-config -u https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -E -l waf_whitelist -d test.com
清理 OpenResty Edge 中的配置:
edge-config -u https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -c -l waf_whitelist -d test.com
示例中均使用 -l waf_whitelist
來指定只操作應用 WAF 白名單相關的配置。
注意事項
每個白名單規則必須包含
conditions
和rules
兩個部分。conditions
中的每個條件必須包含var
、op
和val
(或vals
)欄位。rules
中的每個規則必須包含rule_set_name
,rule_names
是可選的。如果使用
rule_set_name
,確保該名稱在全域性 WAF 規則集中存在。如果指定了
rule_names
,則只有列出的規則會被忽略;否則,整個規則集都會被忽略。在匯入配置時,工具會先刪除所有現有的 WAF 白名單,然後新增新的白名單規則。
白名單規則的處理順序與配置檔案中的順序相反,即最後定義的規則會首先被處理。
在匯出配置時,工具會將規則集 ID 轉換為對應的規則集名稱,以提高可讀性。
如果應用不存在,工具會在匯出時給出警告資訊。
WAF 白名單可以幫助減少誤報,但過度使用可能會降低安全性,請謹慎配置。
在處理配置時,工具會自動將規則集名稱轉換為對應的 ID。