一、ModSecurity 简介
ModSecurity 是一个开源的 Web 应用防火墙 (WAF),用于检测和防止针对 Web 应用的攻击。它通过分析 HTTP 请求和响应,提供实时保护。ModSecurity 的主要功能包括:
- 实时应用保护:检测和防止 SQL 注入、跨站脚本 (XSS) 攻击等常见的 Web 漏洞攻击。
- 虚拟补丁:在应用程序更新前提供临时保护。
- 入侵检测和日志记录:记录详细的请求和响应信息,帮助分析攻击来源和模式。
ModSecurity 可以与多种 Web 服务器集成,包括 Apache、Nginx 和 IIS。
ModSecurity-Nginx 是 ModSecurity 与 Nginx 的集成版本。
二、ModSecurity-Nginx的使用
下面介绍如何在docker-compose.yml里使用 ModSecurity-Nginx
docker-compose.yml如下:
nginx:
container_name: nginx
image: owasp/modsecurity-crs:4.3.0-nginx-alpine-202406090906
restart: unless-stopped
user: root
entrypoint: ["/bin/sh", "-c", "nginx -g 'daemon off;'"]
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf:/etc/nginx/conf.d
- ./nginx.conf:/etc/nginx/nginx.conf
- ./modsecurity.d:/etc/modsecurity.d
- ./owasp-crs:/opt/owasp-crs
- 官方镜像 hub.docker.com/r/owasp/mod…
- 自定义entrypoint:
/bin/sh", "-c", "nginx -g 'daemon off;'- 挂载配置文件:
modsecurity.d:/etc/modsecurity.d和owasp-crs:/opt/owasp-crs
modsecurity.conf:
modsecurity on;
modsecurity_rules_file /etc/modsecurity.d/setup.conf;
nginx.conf:
load_module modules/ngx_http_modsecurity_module.so;
user nginx;
worker_processes auto;
三、常见问题和解决方法
- 性能影响:ModSecurity 运行在应用层,会带来一定的性能开销。建议根据实际需求开启或关闭规则,并在高负载环境下进行性能调优。
- 误报:ModSecurity 可能会产生误报,阻止合法的请求。可以通过分析日志文件,调整规则来减少误报。
- 规则更新:定期更新 OWASP Core Rule Set 规则集,以确保应对新的安全威胁。