如何在不更改每个规则和每个主机的 id 的情况下在多个虚拟主机中包含相同的 modsecurity 规则?

How to include same modsecurity rules in multiple virtual hosts without changing the id for each rule and each host?

我有多个带有 Modsecurity enabled. I want to assign multiple OWASP rules 的虚拟主机(来自 base_rules 文件夹),例如 SQL 注入 多个 虚拟主机。 我已将它们包含在我的虚拟主机文件中,但是当我重新加载 apache 时收到以下消息:

ModSecurity: Found another rule with the same id Action '-t' failed. 

The Apache error log may have more information.

如何在不更改每个规则的 ID 的情况下将这些基本规则包含在多个虚拟主机中?该服务器旨在代理大量虚拟主机,因此更改每个规则和每个主机的 ID 需要手动完成大量工作。

在服务器级别而不是虚拟主机级别包括它们。

如果某些虚拟主机不需要它们,那么您可以编写 ModSecurity 规则以排除基于传入主机的部分或全部规则 header。

包括 VHOST 级别的规则就可以了。
导致错误的配置:

IncludeOptional folder_to_rules/modsecurity_crs_41_xss_attacks.conf
<VirtualHost *:80>
    ServerName example.com
    SecRuleEngine On

</VirtualHost>

解决方案:

<VirtualHost *:80>
    ServerName example.com
    SecRuleEngine On
    IncludeOptional folder_to_rules/modsecurity_crs_41_xss_attacks.conf
</VirtualHost>