如何启用 ModSecurity 来实际阻止/拒绝恶意请求?

如何启用 ModSecurity 来实际阻止/拒绝恶意请求?

我已经在 ubuntu 22.04 中为 apache 安装了 mod 安全模块,使用。

sudo apt-get install libapache2-mod-security2
sudo a2enmod security2
sudo systemctl restart apache2

这将安装安全模块版本 2.9.5 和核心规则集版本 3.3.2。

我设置

SecRuleEngine On 在 /etc/modsecurity/modsecurity.conf 中

并且只保留核心规则集中启用的两个会议,其余所有会议我都已暂时移动。

  1. /usr/share/modsecurity-crs/REQUEST-933-APPLICATION-ATTACK-PHP.conf
  2. /usr/share/modsecurity-crs/REQUEST-949-BLOCKING-EVALUATION.conf

因为,我的目标是通过观察逐一设置规则,没有任何误报/我的应用程序需要被阻止。

但是它并没有阻止请求,而只是将其记录在 mod 安全审计日志中。

我不确定我在这里遗漏了什么,其余一切都处于默认设置。

如果需要,我可以分享更多细节。

有人可以帮我弄这个吗?

答案1

并且只保留核心规则集中启用的两个会议,其余所有会议我都已暂时移动。

这就是问题。

必须设置必要的事项crs-setup.conf,或者至少进行审核。

然后你必须还需要了解 CRS 默认的工作方式 - 即“异常评分模式” -这里您可以阅读更多内容。

简要总结:大多数 CRS 规则不会终止交易,只会增加异常分数(这是一个交易分数变量)。如果达到先前设定的阈值(请参阅crs-setup.conf),则特定规则会终止该交易。

如果你删除这些配置文件(通常请求-949-阻止-评估响应-959-阻止-评估),那么您的交易就永远不会被阻塞。

重要的!异常评分模式是默认模式,但您也可以使用传统的“自包含”模式。然后您必须修改一些设置crs-setup.conf- 请参阅部分。

使用自包含模式时您不需要添加其他规则,每个触发的规则都会终止交易。

答案2

谢谢@airween,

我知道大多数规则实际上并没有拒绝请求/响应,它们只是增加/更新分数,默认模式是“异常评分”模式,我不想将其更改为“自包含模式”。

我认为我已经在我的配置中发现了这个问题。

第一个 conf 文件需要REQUEST-901-INITIALIZATION.conf初始化那些异常分数变量,我缺少它,这就是为什么请求没有被阻止。

总的来说,通过加载 crs 的三个 conf 文件对我来说是有用的。

  • /usr/share/modsecurity-crs/REQUEST-901-INITIALIZATION.conf(负责变量初始化)
  • /usr/share/modsecurity-crs/REQUEST-933-APPLICATION-ATTACK-PHP.conf(负责实际规则执行并相应地设置分数)
  • /usr/share/modsecurity-crs/REQUEST-949-BLOCKING-EVALUATION.conf(负责根据规则配置设置的分数阻止请求)

相关内容