在 apache 上的 modsecurity 中按 ID 进行 Disaabe 规则

Disaabe rule by ID in modsecurity on apache

我将 ModSecurity 用于 Web 服务器并且工作正常。但是它阻止了某些情况并提供了 Access Denied 页面。下面显示了读取日志文件后获取的不需要的规则 ID。

950109 950901 958291 960024 973338 981172 981173 981231 981242 981243 981245 981246 981248 981257 981260 981318 981319 981320

有些文章说这些 ID 是 frequent false positives。所以我想禁用这些 ID。

经过搜索,我找到了禁用这些规则 ID 的解决方案。这就是我禁用这些 ID 的方式。

将此添加到 /etc/apache2/mods-available/security2.conf

的末尾

<IfModule mod_security2.c> SecRuleRemoveById 950109 SecRuleRemoveById 950901 SecRuleRemoveById 958291 SecRuleRemoveById 960024 SecRuleRemoveById 973338 SecRuleRemoveById 981172 SecRuleRemoveById 981173 SecRuleRemoveById 981231 SecRuleRemoveById 981242 SecRuleRemoveById 981243 SecRuleRemoveById 981245 SecRuleRemoveById 981246 SecRuleRemoveById 981248 SecRuleRemoveById 981257 SecRuleRemoveById 981260 SecRuleRemoveById 981318 SecRuleRemoveById 981319 SecRuleRemoveById 981320 </IfModule>

然后重启apache。 service apache2 restart .现在工作正常了。

这也可以一行打字

<IfModule mod_security2.c> SecRuleRemoveById 950109 950901 958291 960024 973338 981172 981173 981231 981242 981243 981245 981246 981248 981257 981260 981318 981319 981320 </IfModule>

这是一种有效的方法,但有点粗糙。 https://netnea.com/apache-tutorials 的教程解释了详细信息。

此外,您使用的核心规则集版本已过时。你应该去看看https://coreruleset.org。更新到 CRS3,90% 的误报都会消失。