在NGINX OSS中编译ModSecurity
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在NGINX OSS中编译ModSecurity相关的知识,希望对你有一定的参考价值。
我正在尝试为nginx OSS Web服务器编译ModSecurity。我已按照其“快速入门指南”中的所有说明进行操作,但遇到了问题。链接新模块后,配置测试失败。
/var/log/nginx/error.log
输出的错误是:
2018/02/10 00:47:51 [emerg] 6026#6026: module "/usr/share/nginx/modules/ngx_http_modsecurity_module.so" is not binary compatible in /etc/nginx/modules-enabled/50-mod-http-modsecurity.conf:1
最初动态模块是用编译的
sh
./configure --with-compat --add-dynamic-module=../ModSecurity-nginx
但这会导致错误。
从我读过的内容来看,我需要使用与现有Nginx实例相同的选项编译模块。
我使用nginx -V
找到了当前选项,然后使用所有输出选项重新运行./configure
,但这会产生相同的错误。
任何人都可以指出我在这里正确的道路?
谢谢你的帮助。
更新10/29/18
似乎原始二进制文件也需要使用--with-compat
标志进行编译。我已经提交了一个关于这个问题的错误报告,可以在这里找到:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897926
也许它可以得到一些牵引力。
我有一个类似的问题。我使用的是Nginx 1.10.3,这是Debian Stretch的默认设置。此版本似乎不适用于最新的Nginx ModSecurity连接器。
我删除了默认的Nginx版本并从http://nginx.org/en/linux_packages.html安装了最新的稳定Nginx。之后,我能够毫无问题地为Nginx安装和加载ModSecurity模块。我按照本指南:https://www.linuxjournal.com/content/modsecurity-and-nginx为Nginx安装ModSecurity模块。
Nginx的最新稳定版本1.14.2支持--with-compat标志。编译Nginx源代码时,请确保使用与运行的Nginx一起使用的相同编译器选项。要找出用于构建当前运行的Nginx的编译时选项,请运行命令:nginx -V
以上是关于在NGINX OSS中编译ModSecurity的主要内容,如果未能解决你的问题,请参考以下文章
基于 Nginx + ModSecurity V3 实现对 web 流量的安全访问控制
带有 NGINX 的 WAF owasp modsecurity crs 中的“SecCollectionTimeout 尚不支持”
ningx配置ModSecurity重启出现兼容性问题:ModSecurity: Loaded PCRE do not match with compiled!的解决方法