2

今天,我为 nginx 安装了 mod_security。我将以下块添加到/etc/nginx/nginx

server {
listen       80;
server_name  localhost;

location / {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
}

}

重启 Nginx 后,出现以下错误:

nginx: [emerg] unknown directive "ModSecurityEnabled" in /etc/nginx/conf.d/nginx.conf:6
nginx: configuration file /etc/nginx/nginx.conf test failed

输出nginx -V

nginx version: nginx/1.4.7
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables'

出了什么问题?

4

2 回答 2

6

根据官方文档:

nginx 服务器的扩展模型不包含动态加载的模块,因此ModSecurity 必须与主服务器的源代码一起编译。由于 nginx 可在多个基于 Unix 的平台(以及 Windows)上使用,因此目前推荐的获取 ModSecurity for nginx 的方法是在指定环境中编译。

来源:https ://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#Installation_for_NGINX

您不能只在 nginx.conf 中添加一些行来使其正常工作。

如果您希望获得更有效的帮助并同时参与使 Stack Overflow 成为一个更好的地方,您可能还需要考虑以下事项:

  • 在寻求帮助之前阅读文档(我花了 3 分钟才弄清楚它的工作方式)。
  • 为您的问题选择一个更明确的标题。
  • 尝试自动更正内容以使其更易于阅读。

祝你好运!

于 2014-07-15T15:35:37.387 回答
0

我在 NGinx plus 上做了这个,所以不确定是否完全一样,但看起来是这样......

Yum install nginx-modsecurity(用于 nginx 及其 nginx-plus-module-modsecurity) 添加load_module modules/ngx_http_modsecurity_module.so;到 /etc/nginx/nginx.conf 的顶层 - 在服务器块之外

然后,在您的服务器块内 modsecurity on; modsecurity_rules_file /some/path/to/rules/modsecurity-recommended.conf

您可以从以下位置获取 modsecurirty-recommended 的建议内容:https://docs.nginx.com/nginx-waf/admin-guide/nginx-plus-modsecurity-waf-owasp-crs/

目前这对我有用,希望对您有所帮助

于 2018-11-07T14:35:11.970 回答