我尝试使用 mod_security 和 OWASP 保护我的服务器(centos 7 上的 apache 2.4.6),但是按照说明安装 OWASP 后,httpd 无法启动并显示以下错误消息:
Apr 16 02:59:24 systemd[1]: Starting The Apache HTTP Server... Apr 16 02:59:24 httpd[8289]: AH00526: Syntax error on line 56 of /etc/httpd/modsecurity.d/owasp-modsecurity-crs/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf: Apr 16 02:59:24 httpd[8289]: Error creating rule: Failed to resolve operator: detectXSS Apr 16 02:59:24 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE Apr 16 02:59:24 kill[8291]: kill: cannot find process "" Apr 16 02:59:24 systemd[1]: httpd.service: control process exited, code=exited status=1 Apr 16 02:59:24 systemd[1]: Failed to start The Apache HTTP Server.
我知道旧版本的 mod_secure 也存在类似的问题,但我的版本是最新的(2.7.3)
有人知道如何解决这个问题吗?
答案1
您的 ModSecurity (2.7.3) 不是最新版本。最新版本是 2.9.1:http://modsecurity.org/download.html
detectXSS 语法是在 2.8 版中添加的 https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#detectXSS
我猜你使用 yum 软件包管理器安装了 ModSecurity,尽管进行了“yum 更新”,但仍然没有更新到 2.7.3 以上版本?这是企业软件包管理器的常见问题,它们优先考虑稳定性而不是最新版本。
要安装最新版本,您需要使用不同于官方存储库的存储库,或者使用以下命令从源代码下载并安装 ModSecurity(假设您的 apache 已安装,/usr/local/apache2
但请根据需要更改该位置):
wget https://www.modsecurity.org/tarball/2.9.2/modsecurity-2.9.2.tar.gz
wget https://www.modsecurity.org/tarball/2.9.2/modsecurity-2.9.2.tar.gz.sha256
sha256sum -c modsecurity-2.9.2.tar.gz.sha256
cd modsecurity-2.9.2
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
sudo make install
cp /usr/local/modsecurity/lib/mod_security2.so /usr/local/apache2/modules