准备测试环境
先在实验室、灰度域名或低风险入口验证。确认网络、证书、上游服务、日志权限和防火墙规则都可控。
- 上游服务可直接访问。
- WAF 所需端口或云资源未被占用。
- 日志和监控入口已经准备好。
WAF 安装指南
ModSecurity + NGINX + OWASP CRS 中文配置与验证流程,结合固定版本 Docker 请求矩阵、JSON 请求体、正常流量告警和回滚检查。
快速结论
把 ModSecurity、NGINX 连接器和 OWASP CRS 视为一套需要版本管理的栈;提高偏执等级或调整异常阈值前先建立正常流量基线。
部署流程
先在实验室、灰度域名或低风险入口验证。确认网络、证书、上游服务、日志权限和防火墙规则都可控。
安装命令、控制台步骤和规则集版本都应以当前官方文档为准,避免复制过时博客片段。
先接入单个应用、单个域名或单条路径,观察干净流量、TLS、日志字段和上游行为,再扩大范围。
先用观察、计数、记录或挑战动作收集证据,再对低风险规则启用拦截。任何拦截策略都应可快速回滚。
回滚规划
实验室验证
这些检查项刻意保持保守。请把域名和端口替换成你的实验环境值,并把输出保存到测试记录里。
scripts/run-waf-evidence-lab.sh最终本地实验在 OWASP CRS 4.25.0 下记录 20 / 20 个预期状态,并写入 CSV、JSON 与两套引擎日志。
awk -F, 'NR == 1 || $1 == "modsecurity" { print }' docs/lab-evidence/waf-engine-comparison-2026-07-26-requests.csv6 个正常请求返回 200,4 个受控 SQLi/XSS 请求返回 403。
rg '920350|Host header is a numeric IP address' docs/lab-evidence/waf-engine-comparison-2026-07-26-modsecurity.log即使所选正常请求没有被阻断,日志中仍可看到 localhost 数字 Host 告警。
它用于验证连接器加载、CRS 规则执行、审计日志、正常请求路径和一条受控检测路径,同时保留上游旁路。
只有使用确定的连接器与 CRS 版本验证请求体、上传、API、规则排除、审计日志量和回滚后,才应考虑生产拦截。