本文概述
- 下载ModSecurity CRS
- 配置Nginx以集成OWASP ModSecurity CRS
- 配置OWASP核心规则集以开始保护
- HTTP协议违规保护
- 常见的网络攻击
- 机器人, 爬虫, 恶意活动防护
- 木马防护
- 信息泄漏防护
- 跨站点脚本攻击
- SQL注入攻击
【如何在Nginx中实现ModSecurity OWASP核心规则集】在我以前的文章中, 我解释了如何安装Nginx和Mod Security, 并在这里承诺如何使用OWASP CRS配置它们以获得更好的安全性。
ModSecurity是开源的Web应用程序防火墙(WAF), 默认情况下, 它配置为仅检测。这意味着你需要启用必要的配置(如下所示)才能开始保护你的网站。
下载ModSecurity CRS
- 从以下链接下载最新的CRS zip文件并传输到服务器
- 解压缩文件
unzip SpiderLabs-owasp-modsecurity-crs-2.2.9-26-gf16e0b1.zip
- 将以下内容复制到nginx conf文件夹
modsecurity_crs_10_setup.conf.examplebase_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核心规则集以开始保护 在本节中, 所有修改都将在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服务器集成在一起, 以提供更好的保护。
推荐阅读
- 11种用于监视云和脚本中SSL证书到期的工具
- 改善移动应用程序安全性的8个技巧
- 9个移动应用扫描程序以查找安全漏洞
- Kali Linux在VMWare Fusion上的安装指南[带截图]
- 复制/粘贴无法在签名的Applet中工作
- 尽管运行代码显示菜单,但Java applet显示白屏
- Java applet使用智能卡实现数字签名
- 'appletviewer'未被识别为内部或外部命令,可操作程序或批处理文件
- Java Applet PDF打印