我正在尝试使用安装/配置 mod-sec本教程,它使用 OWASPModSecurity 核心规则集。然而当我重新启动 apache 时,出现以下错误:
Syntax error on line 53 of /etc/modsecurity/base_rules/modsecurity_crs_20_protocol_violations.conf:
Error parsing actions: Unknown action: ver
Action 'configtest' failed.
The Apache error log may have more information.
...fail!
这是有问题的代码块:(具体来说ver:'OWASP_CRS/2.2.9',\
)
SecRule REQUEST_LINE "!^(?i:(?:[a-z]{3,10}\s+(?:\w{3,7}?://[\w\-\./]*(?::\d+)?)?/[^?#]*(?:\?[^#\s]*)?(?:#[\S]*)?|connect (?:\d{1,3}\.){3}\d{1,3}\.?(?::\d+)?|options \*)\s+[\w\./]+|get /[^?#]*(?:\?[^#\s]*)?(?:#[\S]*)?)$"\
"msg:'Invalid HTTP Request Line',\
severity:'4',\
id:'960911',\
ver:'OWASP_CRS/2.2.9',\
rev:'2',\
maturity:'9',\
accuracy:'9',\
logdata:'%{request_line}',\
phase:1,\
block,\
t:none,\
tag:'OWASP_CRS/PROTOCOL_VIOLATION/INVALID_REQ',\
tag:'CAPEC-272',\
setvar:'tx.msg=%{rule.msg}',\
setvar:tx.anomaly_score=+%{tx.notice_anomaly_score},\
setvar:'tx.%{rule.id}-OWASP_CRS/PROTOCOL_VIOLATION/INVALID_REQ-%{matched_var_name}=%{matched_var}'"
我已经安装了modsec Version: 2.6.3-1ubuntu0.2
,所以我相信它应该可以与OWASP ModSecurity Core Rule Set
关于如何让它工作,您有什么想法吗?提前致谢!
答案1
谷歌搜索你的错误信息,我发现这
...
现在 apache 启动失败:Sep 30 15:30:14 mydomain httpd[2377]: /etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_20_protocol_violations.conf 第 52 行语法错误:Sep 30 15:30:14 mydomain httpd[2377]: 解析操作时出错:未知操作:ver
响应是
这是我的错...CRS v2.2.6 使用了 ModSecurity v2.7.0 中的一些新操作 -
- 版本
- 到期
- 准确性
您使用的 CRS 似乎对于您安装的 mod_security 版本来说太新了。您需要更新到较新版本的 mod_security 或找到较旧版本的 CRS。
答案2
OWASP 规则集已升级,要求 modsecurity >= 2.7。
有一个降级脚本util/规则管理文件夹可以自动降级规则集以兼容 2.6 版本。
要降级已激活的规则,只需在规则目录中运行此命令(需要 perl):
perl <PATH_TO_OWASP_RULESET_TGZ>/SpiderLabs-owasp-modsecurity-crs-ebe8790/util/rule-management/remove-2.7-actions.pl -t 2.6 -f .