如何添加 mod 安全例外

how to add mod security exception

我已经按照以下说明安装了 Mod 安全性:https://www.digitalocean.com/community/tutorials/how-to-set-up-modsecurity-with-apache-on-ubuntu-14-04-and-debian-8

它似乎工作正常,但我似乎无法为 WordPress 登录创建例外。我已将以下内容添加到我的虚拟主机文件中:

<Directory "/var/www/domain.com/public_html/wp-admin">
    <IfModule security2_module>
        SecRuleEngine Off
    </IfModule>
</Directory>

我也试过以下方法:

<LocationMatch "/wp-admin">
    <IfModule security2_module>
        SecRuleEngine Off
    </IfModule>
</LocationMatch>

以及两者的不同组合。

我是 运行 Ubuntu 16.04.2,但我想它和 14.04 一样,对吧?

ModSecurity 在几个不同的阶段运行。第一阶段在处理任何目录或位置规则之前运行。因此,像这样关闭 ModSecurity 是行不通的,因为当 Apache 开始处理该配置时,为时已晚。

更好的方法是将 ModSecurity 规则写入 "allow" 这些位置:

SecRule REQUEST_URI "@beginsWith /wp-admin" "phase:1,id:12345,allow"

或者为这个请求的其余部分动态关闭 ModSecurity(这将与上面的效果基本相同):

SecRule REQUEST_URI "@beginsWith /wp-admin" "phase:1,id:12345,ctl:ruleEngine=off"

请务必在 定义任何其他规则之前定义任何一个规则,以确保其他规则不会在上述规则生效之前阻止请求。

但是我会说 wp-admin 是 WordPress 网站上最有可能受到攻击的位置之一,因此请确定为什么您会经历安装 ModSecurity 的麻烦然后决定不保护该特定 URL用它!