如何在Nginx中实现ModSecurity OWASP核心规则集

本文概述

如果要使用Mod Security保护Nginx, 那么你希望激活OWASP核心规则集(CRS)以防止受到后续威胁。

  • HTTP协议违规保护
  • 常见的网络攻击
  • 机器人, 爬虫, 恶意活动防护
  • 木马防护
  • 信息泄漏防护
  • 跨站点脚本攻击
  • SQL注入攻击

你同意吗?

在我以前的文章中, 我解释了如何安装Nginx和Mod Security, 并在这里承诺如何使用OWASP CRS配置它们以获得更好的安全性。

ModSecurity是开源的Web应用程序防火墙(WAF), 默认情况下, 它配置为仅检测。这意味着你需要启用必要的配置(如下所示)才能开始保护你的网站。

下载ModSecurity CRS

  • 从以下链接下载最新的CRS zip文件并传输到服务器

https://github.com/SpiderLabs/owasp-modsecurity-crs/zipball/master

  • 解压缩文件
unzip SpiderLabs-owasp-modsecurity-crs-2.2.9-26-gf16e0b1.zip
  • 将以下内容复制到nginx conf文件夹
modsecurity_crs_10_setup.conf.example
base_rules

配置Nginx以集成OWASP ModSecurity CRS

由于你已决定使用OWASP CRS, 因此需要合并SpiderLabs OWASP CRS中包含的conf文件, 你刚刚将其复制(modsecurity_crs_10_setup.conf.example)复制到了nginx文件夹下。

Nginx不支持Apache等多个ModSecurityConfig指令, 因此你需要将所有规则conf放在一个文件中。

我们开始做吧…

  • 将base_rules和modsecurity_crs_10_setup.conf.example添加到modsecurity.conf文件中
cat modsecurity_crs_10_setup.conf.example base_rules/*.conf >>/usr/local/nginx/conf/modsecurity.conf

你还需要将所有* .data文件复制到nginx conf文件夹中

cp base_rules/*.data /usr/local/nginx/conf/

快速验证:

确保已在nginx.conf文件中的位置下添加了ModSecurityEnabled和ModSecurityConfig伪指令。如果没有, 请按如下所示添加它们。

location / {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
}
  • 重新启动Nginx

通过一切手段, 你已经成功地将OWASP CRS集成到Nginx的Mod Security中。是时候进行一些必要的微调了。

配置OWASP核心规则集以开始保护

在本节中, 所有修改都将在modsecurity.conf文件中, 因此请记住进行备份。

首先第一件事

启用审核日志记录

生成日志至关重要, 因此你可以了解被阻止的内容。如果不存在, 请添加SecAuditLog指令。

SecAuditLog /usr/local/nginx/logs/modsec_audit.log

重新启动Nginx, 你将看到生成的日志文件

-rw-r----- 1 root root 0 May 22 07:54 /usr/local/nginx/logs/modsec_audit.log

启用安全规则引擎

通过启用以下规则引擎来开始Mod Security保护

SecRuleEngine On

启用默认操作为拒绝

对于与规则匹配的任何请求, 将默认操作配置为”阻止”。

SecDefaultAction "phase:1, deny, log"

以上三个配置至关重要, 现在ModSecurity已准备就绪, 可以执行操作并进行保护。

这是你可能喜欢的另一种配置。

更改服务器标题横幅

默认的Nginx配置将使用其版本公开服务器信息, 如果你在PCI-DSS环境中工作, 强烈建议对其进行屏蔽。

你也可以按此处所述在没有Mod Security的情况下执行此操作。

默认标题:

Nginx的默认头

你可以通过添加一行来快速完成此操作。

SecServerSignature GeekFlare

现在看起来像:

nginx-modsecurity-header

我希望以上说明可以帮助你将OWASP核心规则集与Nginx Web服务器集成在一起, 以提供更好的保护。

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?