#1737·lynis

在使用 ModSecurity 的中等 nginx 配置下, HTTP-6708 速度过慢

作者: troubleshooter创建于 2026年4月27日更新于 2026年4月27日

HTTP-6708每跑一次都慢跑.

** 环境**

  • Lynis版本:3.1.6
  • 操作系统:Debian 13
  • 内核:6.12.74+deb13+1-amd64
  • 带Modsecurity的nginx(装入了927个规则)

** 说明问题**

HTTP-6708持续需要~11秒完成,触发了长执行警告,尽管nginx配置很小并几乎瞬间解析出.

** 相关系统状态**

配置大小 :

12个配置文件共2570行
37个服务器名条目(虚拟主机)

nginx在0.131秒内剖析出它的全部配置,包括927 ModSecurity规则:

$ 时间 nginx - t
2026/04/27 14:17:54 [通知]88625#88625:Modsecurity-nginx v1.0.3(规则已装入内/本地/远程:0/927/0)
nginx:配置文件 /etc/nginx/nginx.conf 语法确定
nginx:配置文件/etc/nginx/nginx.conf测试成功

实数 0.131s
用户 0m0.089s
0m. 040s 日数

从磁盘中查找和读取所有配置文件需要0.046秒:

$ 时间 找到 /etc/nginx - 类型 f - name "*.conf" -exec grep - l "\\\\;
[.12文件列出.]

实数 0m0.046s
用户 0m0.028s
sys 0m0.015s 时速

然而Lynis HTTP-6708 在同一文件上需要~11秒.

** 记录产出**

莱尼斯审计系统... 静静
[WARNING]:测试HTTP-6708执行长:11.248315秒
[WARNING]:测试CRYP-7902执行时间长:368.423856秒

** 关键意见**

HTTP-6708是用 " -- -- network NO " 注册的,这意味着它对磁盘上的配置文件进行纯静态分析。 没有网络呼叫、DNS查询或上游连接。 整个磁盘的读取以0.046s完成,因此延迟完全在Lynis自己的解析逻辑范围内.

** 可疑原因**

测试可能执行多个相继的grep通过所有配置文件——每条指令检查一次通行证——而不是单通扫描. 随着ModSecurity在配置上加载了927个规则,在完整文件树上重复迭代,甚至连一个微小的配置上,也使高架起落.

** 预期行为**

HTTP-6708应在这一大小的配置下在一秒钟内完成,这与nginx本身分析相同文件的时间一致.

** 建议的固定件**

考虑重新设置 HTTP-6708 测试逻辑, 执行对所有配置文件读取到内存的单行程序( 或临时的聚合文件) , 然后进行所有指令检查, 而不是重新扫描文件树, 以检查每个个人 。

-- -- . . .

  • 注:关于同一系统的CRYP-7902也提出了相关的长期执行问题