如何在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服务器集成,以提供更好的保护。