本文概述
- 下载Nginx和ModSecurity
- 使用Mod Security安装Nginx
- 使用Nginx配置Mod安全性
考虑到在线Web威胁的增加, Web工程师面临的挑战之一是充分认识到加强和保护Nginx的安全。
文章图片
Nginx以其性能和轻量级的Web服务器/代理而闻名, 并在许多最繁忙的站点上使用。
- Pinterest.com
- Reddit.com
- WordPress.com
- Stackoverflow.com
- Mail.ru
Mod Security是Trustwave SpiderLabs提供的开源WAF, 并于2012年提供给Nginx。
在本指南中, 我将说明如何使用Nginx下载, 安装和配置Mod Security。
以下演示是在DigitalOcean托管的CentOS上完成的。
如果你是Nginx的新手, 那么我建议你学习此基础课程。
下载Nginx和ModSecurity 你可以直接在服务器上或本地PC上下载nginx, 然后进行传输。
- 从下面的链接下载最新版本
- 如果直接在服务器上下载, 则可以使用以下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
- 你可以直接从服务器使用以下命令
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安全漏洞。
推荐阅读
- 如何实现安全性HTTP标头以防止漏洞()
- 如何在Nginx中实现HTTPOnly和安全Cookie()
- 在Apache中使用HttpOnly和Secure标志保护cookie
- JDK和Applets
- 使用Apache poi和android的HSSFCellStyle错误
- 在Android中使用Apache POI时的兼容性问题
- 使用地理编码器和Android Google Maps API v2获取经度和纬度
- 在Android中,我应该使用什么来在图像上创建可移动对象()
- 使用Paperclip保存照片时,Rails app“无法分配内存”