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

如果您正在使用Mod Security保护Nginx,则希望启用OWASP核心规则集(CRS)以保护免受以下威胁。

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

您是否同意?

在我以前的帖子中,我解释了如何install Nginx and Mod Security,并且如约在此处介绍了如何使用OWASP CRS进行配置以提供更好的安全性。

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

下载ModSecurity CRS

  • 从以下链接下载最新的CRS压缩文件,并将其传输到服务器

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文件的location下添加了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的情况下执行此操作,如explained here

默认标题:

您可以通过添加一行来快速执行此操作。

SecServerSignature GeekFlare

现在它看起来像这样:

我希望上面的指导能够帮助您将OWASP核心规则集与Nginx Web服务器集成,以提供更好的保护。

类似文章