新手:如何为特定用例添加 mod_sec 规则例外

新手:如何为特定用例添加 mod_sec 规则例外

也许有经验或有基本知识的人知道自己在做什么(不像我:))可以提供帮助......

目前,我已安装 Ubuntu 20.04、OpenLitespeed 和 Cyber​​panel。

我已经通过 pa.domain1.com 上的 docker 容器安装了 Plausible Analytics,并注意到当我访问地址 pa.domain1.com/domain2.com(基本上是我正在跟踪的 URL 或 domain2)时,它会给我一个 mod_sec 日志条目:

ModSecurity: Warning. Matched "Operator `Within' with parameter `.asa/ .asax/ .ascx/ .axd/ .backup/ .bak/ .bat/ .cdx/ .cer/ .cfg/ .cmd/ .com/ .config/ .conf/ .cs/ .csproj/ .csr/ .dat/ .db/ .dbf/ .dll/ .dos/ .htr/ .htw/ .ida/ .idc/ .idq/ .inc/ .ini/ .key/ .licx/ .ln (150 characters omitted)' against variable `TX:EXTENSION' (Value: `.com/' ) [file "/usr/local/lsws/conf/modsec/owasp-modsecurity-crs-3.0-master/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf"] [line "1015"] [id "920440"] [rev ""] [msg "URL file extension is restricted by policy"] [data ".com"] [severity "2"] [ver "OWASP_CRS/3.3.2"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-protocol"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/210/272"] [tag "PCI/6.5.10"] [hostname "pa.domain1.com"] [uri "/domain2.com"] [unique_id "16959174363.819657"] [ref "o11,4o12,3v5,15o71,5t:urlDecodeUni,t:lowercase"]
ModSecurity: Access denied with code 403 (phase 2). Matched "Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `5' ) [file "/usr/local/lsws/conf/modsec/owasp-modsecurity-crs-3.0-master/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "80"] [id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 5)"] [data ""] [severity "2"] [ver "OWASP_CRS/3.3.2"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "pa.domain1.com"] [uri "/domain2.com"] [unique_id "16959174363.819657"] [ref ""]

从该日志中,我得出结论,规则 9 和 18(REQUEST-920-PROTOCOL-ENFORCEMENT.conf 和 REQUEST-949-BLOCKING-EVALUATION.conf)被绊倒了,我明白了。 / 后面有一个不同的域,乍一看确实很可疑,但这是正确的。

因此,我已停用规则 9 和 18。现在,我可以访问 URL pa.domain1.com/domain2.com。

但是,我如果想让这 2 条规则整体停用,只需创建一个例外。幸运的是,对于我这个完全的 Linux 菜鸟来说,我可以在 Cyber​​panel 中添加 mod_sec 规则并点击保存。

但我不知道该规则应该是什么样子以及如何创建该规则。理想情况下,它也应该足够灵活,这样我就不必为 pa.domain1.com/domain3.com、pa.domain1.com/domain4.com 等添加另一条规则。有人能告诉我将我的场景列入白名单的规则吗?*

奖励积分:

有些相关(我认为)。在我的 plausible.env 文件中,它需要端口 127.0.0.1:8000:8000。目前,我在 CSF 中打开了该端口(IN 和 OUT)。否则,我无法访问 pa.domain1.com 上的分析网站。似乎不起作用。而且据我所知,如果不是绝对必要,不应将端口完全打开。由于此应用程序通过 127.0.0.1 运行,那么它是否应该能够在不向外界开放这些端口的情况下运行?

答案1

如果您只想为 pa.domain1.com 排除 id 920440 和 949110,那么您可以尝试将以下内容添加到 REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf 文件中。

SecRule SERVER_NAME "pa\.domain1\.com$"
    "id:1001, phase:1, nolog,\
    ctl:ruleRemoveById=920440, \
    ctl:ruleRemoveById=949110"

然后使用以下命令重新启动 Web 服务器:

service lsws restart

相关内容