本文概述
如果要使用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的情况下执行此操作。
默认标题:
你可以通过添加一行来快速完成此操作。
SecServerSignature GeekFlare
现在看起来像:
我希望以上说明可以帮助你将OWASP核心规则集与Nginx Web服务器集成在一起, 以提供更好的保护。