跳到主要内容

Coraza

功能介绍

Coraza 是一款功能强大的企业级 OWASP Web 应用程序防火墙。

自 2.12.0 版本起,Coraza 已集成于 Lucky(万吉)的 Web 服务中。

基础使用说明

请注意,不建议在硬件配置较低的路由器上运行万吉的 WAF。

如需详细了解,请访问 Coraza 官方文档:https://coraza.io 。本文将介绍 Coraza WAF 的快速设置方法。

在CorazaWAF页面添加实例

在创建的实例中添加以下三条规则:

第一条规则选择类型为“自定义”。

参考 https://raw.githubusercontent.com/corazawaf/coraza/main/coraza.conf-recommended 的文本内容。
#号注释行可不必复制。如需深入了解具体参数的作用,请自行翻译和修改。 以下为参考配置,SecRuleEngine 必须为on。

SecRuleEngine On
SecRequestBodyAccess On

SecRule REQUEST_HEADERS:Content-Type "^(?:application(?:/soap\+|/)|text/)xml" \
"id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML"

SecRule REQUEST_HEADERS:Content-Type "^application/json" \
"id:'200001',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON"


SecRule REQUEST_HEADERS:Content-Type "^application/[a-z0-9.-]+[+]json" \
"id:'200006',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON"


SecRequestBodyLimit 13107200

SecRequestBodyInMemoryLimit 131072

SecRequestBodyLimitAction Reject


SecRule REQBODY_ERROR "!@eq 0" \
"id:'200002', phase:2,t:none,log,deny,status:400,msg:'Failed to parse request body.',logdata:'%{reqbody_error_msg}',severity:2"


SecRule MULTIPART_STRICT_ERROR "!@eq 0" \
"id:'200003',phase:2,t:none,log,deny,status:400, \
msg:'Multipart request body failed strict validation."


SecResponseBodyAccess On


SecResponseBodyMimeType text/plain text/html text/xml

SecResponseBodyLimit 524288

SecResponseBodyLimitAction ProcessPartial

SecDataDir /tmp/



SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:(5|4)(0|1)[0-9])$"

SecAuditLogParts ABIJDEFHZ
SecAuditLogType Serial

第二条和第三条规则是相关联的。

OWASP CRS 是一组通用攻击检测规则,适用于 ModSecurity 或兼容的 Web 应用程序防火墙。
CRS 旨在保护 Web 应用程序免受各种攻击,包括 OWASP Top 10,并将误报降至最低。
请自行查阅并下载:https://github.com/coreruleset/coreruleset。

第二条规则选择类型为“自定义”。

复制 https://raw.githubusercontent.com/coreruleset/coreruleset/main/crs-setup.conf.example 的文本内容。
注释行可不必复制。如需深入了解具体参数的作用,请自行翻译和修改。
如果您只想快速设置,请复制下面配置。这部分内容会随着规则版本的变化而更新。
当您使用 OWASP CRS 新版本规则时,请确保更新此条规则的版本号.
参考配置如下:

SecAction \
"id:900110,\
phase:1,\
pass,\
t:none,\
nolog,\
tag:'OWASP_CRS',\
ver:'OWASP_CRS/4.7.0-dev',\
setvar:tx.inbound_anomaly_score_threshold=6,\
setvar:tx.outbound_anomaly_score_threshold=4"

SecAction \
"id:900990,\
phase:1,\
pass,\
t:none,\
nolog,\
tag:'OWASP_CRS',\
ver:'OWASP_CRS/4.7.0-dev',\
setvar:tx.crs_setup_version=470"
下载并解压 https://github.com/coreruleset/coreruleset/archive/refs/heads/main.zip,

复制解压后 rules 文件夹的完整路径,例如 /opt/share/coreruleset-main/rules。
创建第三条规则,选择类型为“路径”,并将路径填写为 /opt/share/coreruleset-main/rules/*.conf,然后保存。

如果您是第一次使用,觉得上述第二条和第三条规则操作繁琐,可以直接创建一条规则,选择类型为“OWASP 核心规则集”。

勾选所有规则或按需选择,系统将自动调用内置的 OWASP 核心规则集。
请注意,不要同时手动下载和设置 OWASP 核心规则集与使用内置核心集,以免产生冲突。
在选择类型为 OWASP 核心规则集时,无需创建第二条规则。

上述规则的顺序不得更改。

在相应的Web服务子规则选择使用的CorazaWAF实例。

提示

在Web服务主规则中的Coraza WAF设置旨在方便批量控制子规则指向同一实例。
为了更有效地管理和优化安全策略,建议为不同的子规则使用不同的 CorazaWAF 实例。