如何在Nginx上安装和配置ModSecurity

本文概述

  • 下载Nginx和ModSecurity
  • 使用Mod Security安装Nginx
  • 使用Nginx配置Mod安全性
Nginx Web服务器在全球30%以上的网站中使用, 并且还在不断增长。
考虑到在线Web威胁的增加, Web工程师面临的挑战之一是充分认识到加强和保护Nginx的安全。
如何在Nginx上安装和配置ModSecurity

文章图片
Nginx以其性能和轻量级的Web服务器/代理而闻名, 并在许多最繁忙的站点上使用。
  • Pinterest.com
  • Reddit.com
  • WordPress.com
  • Stackoverflow.com
  • Mail.ru
如果你要在Nginx上托管Web应用程序并且担心安全性, 那么你要实现的第一件事就是Web应用程序防火墙(WAF)。
Mod Security是Trustwave SpiderLabs提供的开源WAF, 并于2012年提供给Nginx。
在本指南中, 我将说明如何使用Nginx下载, 安装和配置Mod Security。
以下演示是在DigitalOcean托管的CentOS上完成的。
如果你是Nginx的新手, 那么我建议你学习此基础课程。
下载Nginx和ModSecurity 你可以直接在服务器上或本地PC上下载nginx, 然后进行传输。
  • 从下面的链接下载最新版本
http://nginx.org/en/download.html
  • 如果直接在服务器上下载, 则可以使用以下wget
wget http://nginx.org/download/nginx-1.9.15.tar.gz

  • 使用gunzip命令提取它们
gunzip -c nginx-1.9.15.tar.gz | tar xvf –

  • 你将看到创建的新文件夹
drwxr-xr-x 8 1001 1001    4096 Apr 19 12:02 nginx-1.9.15

  • 从下面的链接下载最新版本的Mod Security
https://www.modsecurity.org/download.html
  • 你可以直接从服务器使用以下命令
wget https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz

gunzip -c modsecurity-2.9.1.tar.gz | tar xvf –

让我们安装它们
使用Mod Security安装Nginx 编译Nginx和mod安全源代码很重要。
  • 登录到服务器并确保你具有root权限。
注意:如果你使用的是全新服务器, 则可能需要安装以下库。
yum install gcc make automake autoconf libtool pcre pcre-devel libxml2 libxml2-devel curl curl-devel httpd-devel

首先, 让我们编译mod安全性。转到modsecurity-2.9.1文件夹并使用以下命令。
./configure --enable-standalone-modulemake

接下来, 安装具有mod安全性的Nginx
./configure --add-module=../modsecurity-2.9.1/nginx/modsecuritymakemake install

可以得出结论, Nginx已安装了Mod Security, 现在该进行配置了。
使用Nginx配置Mod安全性 将modsecurity.conf推荐的unicode.mapping文件从上面下载的ModSecurity源代码的提取文件夹中复制到nginx conf文件夹中。你也可以使用find命令。
find / -name modsecurity.conf-recommendedfind / -name unicode.mapping

[[email  protected] conf]# cp /opt/nginx/binary/modsecurity-2.9.1/modsecurity.conf-recommended /usr/local/nginx/conf/[[email  protected] conf]# cp /opt/nginx/binary/modsecurity-2.9.1/ unicode.mapping /usr/local/nginx/conf/[[email  protected] conf]#

让我们将modsecurity.conf-重命名为modsecurity.conf
mv modsecurity.conf-recommended modsecurity.conf

  • 备份nginx.conf文件
  • 打开nginx.conf文件, 并在” location /” 指令下添加以下内容
ModSecurityEnabled on; ModSecurityConfig modsecurity.conf;

所以它应该看起来像这样
location / {ModSecurityEnabled on; ModSecurityConfig modsecurity.conf; }

现在, Mod Security已与Nginx集成。重新启动Nginx以确保其正常运行。
让我们验证一下…
有两种方法可以确认Nginx是使用Mod Security编译的。
第一…
结合使用-V和nginx可执行文件, 列出已编译的模块。
[[email  protected] sbin]# ./nginx -Vnginx version: nginx/1.9.15built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)configure arguments: --add-module=../modsecurity-2.9.1/nginx/modsecurity[[email  protected] sbin]#

第二…
转到日志文件夹并查看错误文件, 你应该看到以下内容
2016/05/21 21:54:51 [notice] 25352#0: ModSecurity for nginx (STABLE)/2.9.1 (http://www.modsecurity.org/) configured.2016/05/21 21:54:51 [notice] 25352#0: ModSecurity: APR compiled version="1.3.9"; loaded version="1.3.9"2016/05/21 21:54:51 [notice] 25352#0: ModSecurity: PCRE compiled version="7.8 "; loaded version="7.8 2008-09-05"2016/05/21 21:54:51 [notice] 25352#0: ModSecurity: LIBXML compiled version="2.7.6"

得出结论, 你已成功使用Nginx配置了ModSecurity。
默认情况下, 配置仅处于检测模式, 这意味着它将不执行任何操作并保护你的Web应用程序。
【如何在Nginx上安装和配置ModSecurity】在我的下一篇文章中, 我解释了如何配置OWASP规则集并启用Mod Security来防止Web安全漏洞。

    推荐阅读