带有 NGINX 的 WAF owasp modsecurity crs 中的“SecCollectionTimeout 尚不支持”

Posted

技术标签:

【中文标题】带有 NGINX 的 WAF owasp modsecurity crs 中的“SecCollectionTimeout 尚不支持”【英文标题】:"SecCollectionTimeout is not yet supported" in WAF owasp modsecurity crs with NGINX 【发布时间】:2018-08-23 11:57:51 【问题描述】:

我用 WAF 安装 nginx(使用 Docker)

    mkdir -p /usr/src \
    && cd /usr/src/ \
    && git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity \
    && cd ModSecurity \
    && git submodule init \
    && git submodule update \
    && ./build.sh \
    && ./configure \
    && make -j$(getconf _NPROCESSORS_ONLN) \
    && make install

    ... previous commands to install nginx from source...

    && cd /usr/src \
    && git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git \
    && cd /usr/src/nginx-$NGINX_VERSION \
    && ./configure --with-compat --add-dynamic-module=../ModSecurity-nginx \
    && make modules \
    && cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules \
    && mkdir /etc/nginx/modsec \
    && wget -P /etc/nginx/modsec/ https://raw.githubusercontent.com/SpiderLabs/ModSecurity/v3/master/modsecurity.conf-recommended \
    && mv /etc/nginx/modsec/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf \
    && sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/nginx/modsec/modsecurity.conf \
    && sed -i 's/SecRequestBodyInMemoryLimit 131072//' /etc/nginx/modsec/modsecurity.conf \
    && sed -i 's#SecAuditLog /var/log/modsec_audit.log#SecAuditLog /var/log/nginx/modsec_audit.log#' /etc/nginx/modsec/modsecurity.conf \
    && mkdir /opt \
    && cd /opt \
    && git clone -b v3.0/master --single-branch https://github.com/SpiderLabs/owasp-modsecurity-crs.git \
    && cd owasp-modsecurity-crs/ \
    && cp /opt/owasp-modsecurity-crs/crs-setup.conf.example /opt/owasp-modsecurity-crs/crs-setup.conf

但是突然开始标记这个错误:

nginx:[emerg]“modsecurity_rules_file”指令规则错误。文件:/opt/owasp-modsecurity-crs/crs-setup.conf。行:96。列:43。尚不支持 SecCollectionTimeout。

在documentation:

==============

#
# -- [[ Collection timeout ]] --------------------------------------------------
#
# Set the SecCollectionTimeout directive from the ModSecurity default (1 hour)
# to a lower setting which is appropriate to most sites.
# This increases performance by cleaning out stale collection (block) entries.
#
# This value should be greater than or equal to:
# tx.reput_block_duration (see section "Blocking Based on IP Reputation") and
# tx.dos_block_timeout (see section "Anti-Automation / DoS Protection").
#
# Ref: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-SecCollectionTimeout

# Please keep this directive uncommented.
# Default: 600 (10 minutes)
SecCollectionTimeout 600

==============

我通过将这一行添加到命令中来解决它(禁用规则):

&& sed -i 's/SecCollectionTimeout 600/# SecCollectionTimeout 600/' /opt/owasp-modsecurity-crs/crs-setup.conf

但我不知道它有什么后果,也不知道它是否是正确的应用方式。

一些可以指导我的例子?

【问题讨论】:

【参考方案1】:

我认为您需要重新配置 WAF OWASP 以解决该问题。 检查那个链接...

上次我朋友解决这个问题重新配置它...

https://support.cloudflare.com/hc/en-us/articles/115000223771-How-do-I-configure-the-WAF-

【讨论】:

非常感谢您的帮助,最后我只需要重新编译 docker 镜像而不做任何更改。事实证明,根据github的评论,我之前的解决方案并没有造成任何不便 试试hub.docker.com/r/krish512/modsecurity,它已经用最新的ModSecurity CRS规则构建了【参考方案2】:

我自动回复:

来源: https://github.com/SpiderLabs/ModSecurity/issues/1705

这是因为没有 SecCollectionTimeout 指令 当前可在 libModSecurity (aka v3) 上配置,如 参考手册。

注释掉 crs-setup.conf 上的 SecCollectionTimeout 指令 解决问题没有副作用。

这里正在对解析器进行更改以避免错误。你可以 现在也选择将此更改应用于代码。它是 已经被合并到 main.

有趣的是,我 20 天前在 *** 中提出的问题......这个问题是 22 天前在 github 上提出的,寻找一些与“SecCollectionTimeout”相关的问题,但没有任何相关......瞬间

简而言之,你提供的代码是完全正常的,所以为他服务的那个,我唯一做的就是重新编译图像,以便它确实拉到https://github.com/SpiderLabs/ModSecurity 的存储库并准备好

p>

【讨论】:

以上是关于带有 NGINX 的 WAF owasp modsecurity crs 中的“SecCollectionTimeout 尚不支持”的主要内容,如果未能解决你的问题,请参考以下文章

Nginx+Modsecurity实现WAF

在防御 DDOS 时,Apache2 mod_evasive vs mod_security 与 OWASP crs?

web application firewalld (WAF) 功能

Apache + mod_wsgi 与 nginx + gunicorn

Azure应用程序网关常见问题场景分析

使用Nginx+Lua实现waf