如何在Nginx上安装和配置ModSecurity

Nginx Web服务器用于以下用途 30% 网站数量在全球范围内并且还在不断增长.


考虑到在线Web威胁的增加,Web工程师面临的挑战之一是充分认识到加强和保护Nginx的安全性.

Nginx市场份额

Nginx以其性能和轻量级的Web服务器/代理而闻名,并在许多最繁忙的站点上使用.

  • Pinterest.com
  • Reddit.com
  • WordPress.com
  • Stackoverflow.com
  • Mail.ru

如果您将Web应用程序托管在Nginx上并且担心安全性,那么您要实现的第一件事就是Web应用程序防火墙(WAF).

Mod Security是Trustwave SpiderLabs的开放源代码WAF,2012年可用于Nginx.

在本指南中,我将说明如何 下载, 安装配置 Nginx的Mod安全性.

以下演示是在托管有CentOS的CentOS上完成的 数字海洋.

如果您不熟悉Nginx,那么我建议您服用 基础课程.

下载Nginx和ModSecurity

您可以直接在服务器或本地PC上下载Nginx,然后进行传输.

  • 从下面的链接下载最新版本

http://nginx.org/en/download.html

  • 如果您直接在服务器上下载,则可以使用以下wget

get 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年4月19日12:02 nginx-1.9.15

  • 从下面的链接下载最新版本的Mod Security

https://www.modsecurity.org/download.html

  • 您可以直接从服务器使用以下命令

get 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 security。去 modsecurity-2.9.1 文件夹并使用以下命令.

./ configure-启用独立模块
使

下一个, 使用mod安全性安装Nginx

./ configure –add-module = .. / modsecurity-2.9.1 / nginx / modsecurity
使
进行安装

可以得出结论,Nginx已安装了Mod Security,现在该进行配置了.

使用Nginx配置Mod安全性

复制 modsecurity.conf推荐 & unicode.mapping 上面下载的ModSecurity源代码的提取文件夹中的文件到nginx conf文件夹。您也可以使用find命令.

查找/ -name modsecurity.conf-推荐
查找/ -name unicode.mapping
[[受电子邮件保护] conf]#cp /opt/nginx/binary/modsecurity-2.9.1/modsecurity.conf-推荐/ usr / local / nginx / conf /
[[受电子邮件保护] conf]#cp /opt/nginx/binary/modsecurity-2.9.1/ unicode.mapping / usr / local / nginx / conf /
[[受电子邮件保护] conf]#

我们重命名 modsecurity.conf推荐modsecurity.conf

mv modsecurity.conf-推荐的modsecurity.conf

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

ModSecurityEnabled开启;
ModSecurityConfig modsecurity.conf;

所以它应该看起来像这样

位置 / {
ModSecurityEnabled开启;
ModSecurityConfig modsecurity.conf;
}

现在,Mod Security已与Nginx集成在一起。重新启动Nginx以确保其正常运行.

让我们验证一下…

有两种方法可以确认Nginx是使用Mod Security编译的.

第一…

结合使用-V和nginx可执行文件列出已编译的模块.

[[受电子邮件保护] sbin]# ./ nginx -V
nginx版本:nginx / 1.9.15
由gcc 4.4.7 20120313(Red Hat 4.4.7-16)(GCC)内置
配置参数:–add-module = .. / modsecurity-2.9.1 / nginx / modsecurity
[[受电子邮件保护] sbin]#

第二…

转到日志文件夹并查看错误文件,您应该看到以下内容

2016/05/21 21:54:51 [notice] 25352#0:用于nginx的ModSecurity(STABLE)/2.9.1(http://www.modsecurity.org/)已配置.
2016/05/21 21:54:51 [notice] 25352#0:ModSecurity:APR编译版本="1.3.9";加载的版本="1.3.9"
2016/05/21 21:54:51 [notice] 25352#0:ModSecurity:PCRE编译版本="7.8 ";加载的版本="7.8 2008年9月5日"
2016/05/21 21:54:51 [notice] 25352#0:ModSecurity:LIBXML编译版本="2.7.6"

这说明您已使用Nginx成功配置了ModSecurity。.

默认情况下,配置仅处于检测模式,这意味着它将不执行任何操作并保护您的Web应用程序.

在我的下一篇文章中,我解释了如何配置OWASP规则集并启用Mod Security来防止Web安全漏洞.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map