modsecurity-nginx的使用

644 阅读1分钟

一、ModSecurity 简介

ModSecurity 是一个开源的 Web 应用防火墙 (WAF),用于检测和防止针对 Web 应用的攻击。它通过分析 HTTP 请求和响应,提供实时保护。ModSecurity 的主要功能包括:

  1. 实时应用保护:检测和防止 SQL 注入、跨站脚本 (XSS) 攻击等常见的 Web 漏洞攻击。
  2. 虚拟补丁:在应用程序更新前提供临时保护。
  3. 入侵检测和日志记录:记录详细的请求和响应信息,帮助分析攻击来源和模式。

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.dowasp-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;

三、常见问题和解决方法

  1. 性能影响:ModSecurity 运行在应用层,会带来一定的性能开销。建议根据实际需求开启或关闭规则,并在高负载环境下进行性能调优。
  2. 误报:ModSecurity 可能会产生误报,阻止合法的请求。可以通过分析日志文件,调整规则来减少误报。
  3. 规则更新:定期更新 OWASP Core Rule Set 规则集,以确保应对新的安全威胁。