要点
当你的托管面板掌握着所有客户网站的钥匙时,它就是攻击者最先寻找的目标。正因如此,值得看一看目前这则关于 Froxlor 的警告。CERT-Bund 在其预警与信息服务中以编号 WID-SEC-2026-3629 收录了它。
- CERT-Bund 以编号 WID-SEC-2026-3629 发布了一则关于 Froxlor 的警告。
- 受影响的是自己在独立服务器上运行 Froxlor 的人。维护责任在你,而不在服务商。
- 你的清单上有四件事:确认版本、把面板从开放网络中撤下、安装更新、检查痕迹。
先说明一点:我们在这篇文章中有意不列出 CVE 编号、受影响的版本或攻击细节。具有约束力的信息在安全公告本身以及 Froxlor 项目的发行说明中。在判断你的安装是否受影响之前,请先阅读它们。我们在这里提供的,是无论如何都有意义的检查顺序。
---
## 为什么托管面板是特别有价值的目标
Froxlor 在一处统一管理域名、数据库、FTP 账户、邮箱地址和 Web 服务器配置。因此这个面板在服务器上拥有很大的权限。谁接管了面板,往往能触及的不止一个网站。
你在其他管理界面上也见过这种模式。我们在 Webmin 和 Virtualizor 的文章中描述过。这类软件的核心维护得不错,但界面暴露在互联网上,登录或权限系统中的一个错误就足够了。
一个任何人都能从互联网访问的面板,是会被发现的,而且通常比你安装更新更快。## 这则警告涉及谁 答案取决于由谁维护这套软件:
| 情况 | 谁来更新? | 需要采取的行动 |
|---|---|---|
| Froxlor 运行在你自己的独立服务器上 | 你 | 高:立即检查 |
| Froxlor 运行在你为客户运营的服务器上 | 你 | 高:客户数据同样受影响 |
| 没有自有面板的托管型虚拟主机 | 服务商 | 无,只需询问 |
| Froxlor 测试安装 | 你 | 中:关闭或更新 |
- 确认版本。登录面板,读取已安装的版本。将它与安全公告和发行说明中列出的版本对照。如果那里把你的版本列为受影响,直接跳到第 3 步。
- 检查系统软件包。显示服务器上有哪些更新尚未安装:
面板更新不能替代操作系统更新。PHP、Web 服务器和数据库同样必须保持最新。sudo apt update apt list --upgradable - 限制访问。在更新完成之前,除你之外,把面板界面对所有人封锁。例如用 ufw 只允许你的固定 IP 访问 HTTPS 端口(地址和端口请按你的安装调整):
如果面板与你的客户网站运行在同一个端口上,则改为在 Web 服务器中封锁面板的路径。否则 ufw 对 443 端口的规则会把所有网站都挡在外面。sudo ufw allow from 203.0.113.10 to any port 443 proto tcp sudo ufw status numbered - 做备份。更新之前,先备份面板数据库和配置。更新中途中断时,没有备份就是个麻烦。
- 安装更新。使用 Froxlor 项目为你的安装方式所记录的方法。只从项目的官方来源下载软件包。
- 查找痕迹。查看在此期间是否有人在系统上操作过(见下一节)。
- 检验结果。再次检查版本,并从一个陌生的 IP 测试面板是否确实已无法公开访问。
注意:如果你的面板在漏洞公开之前就已经暴露在互联网上,只更新是不够的。更新会堵住漏洞,但不会清除攻击者已经留下的任何东西。因此务必同时做第 6 步。
## 检查是否被接管的痕迹
你要找的是并非你自己创建的东西。三个地方就足以获得初步概览:
* **登录记录:**检查谁登录过服务器,并与你自己的登录时间对照。
* **新文件:**在 Web 目录中查找最近被修改过的 PHP 文件。
* **新账户:**在面板的用户管理中查看你不认识的管理员或客户。
对应的命令:
last -a | head -20
sudo find /var/www -name '*.php' -mtime -14 -ls
sudo awk -F: '$3 == 0 {print $1}' /etc/passwd
路径 `/var/www` 只是一个示例。请填入你的面板文件和客户网站实际所在的目录。最后一行会列出所有拥有 root 权限的账户。应该恰好只有一个,即 `root`。
如果发现可疑之处,不要在正在运行的系统上继续操作。保存好日志,更改服务器上存放过的所有密码和密钥,有疑问时就重新安装服务器。对独立服务器来说,这只需几分钟。如有需要,可通过 独立服务器订购 订一台全新的,并从干净的备份中迁移数据。
---
## 长期缩小攻击面
这则警告是从根本上改变面板运行方式的好机会。下面的对比显示了这样做的代价和收益:
支持:面板只能从管理网络访问
- 互联网上的扫描器再也找不到登录页面。
- 新出现的漏洞只会成为持续数周的问题,而不是数小时的问题。
- 客户网站照常运行,不受影响。
反对
- 你需要一个固定 IP 或 VPN,才能自己访问面板。
- 团队中在外的人必须先连接。
- 这条规则必须有文档记录,否则以后会有人感到困惑。
实用提示:给自己定一个固定的日期,例如每月的第一个星期一,核对面板版本和尚未安装的系统更新。日历里的十分钟,比一个被接管的服务器折腾一整夜便宜得多。
## 收到这类警告后常见的错误
* **只更新面板:**PHP 和 Web 服务器仍是旧版本,尽管它们处在同一条攻击路径上。
* **更新前没有备份:**一旦出错,就没有退路。
* **忘了旧的测试安装:**在另一个端口上、无人维护的第二个面板同样容易受到攻击。
* **有怀疑后没有更换密码:**只要有人进过系统,往往也知道数据库密码和密钥。
* **先读再做:**请阅读安全公告,但在此之前就先限制对面板的访问。这只需两分钟。
## 如何确认已经成功
当以下四点都成立时,你就完成了:
1. 面板版本等于安全公告或发行说明中所列的已修复版本,或者更新。
2. `apt list --upgradable` 不再显示尚未安装的安全更新。
3. 从一个陌生网络(比如你手机的移动网络)访问,面板登录页面打不开。
4. 对新文件、新账户和登录记录的检查,没有发现任何你不认识的东西。
如果你在同一台服务器上还运行着 DNS 面板或域名服务器,也请看看我们关于 BIND 安全漏洞 的文章。它描述了类似的检查顺序。
常见问题
如果我只是在服务商那里订了虚拟主机,会受到 Froxlor 警告的影响吗?
只有在你的服务商使用 Froxlor 时才会。这时更新由服务商负责,而不是你。你可以询问是否更新以及何时更新。但如果你自己运营着装有 Froxlor 的独立服务器,就必须自己更新。
我在哪里能找到确切的受影响版本?
在 CERT-Bund 的安全公告中,编号为 WID-SEC-2026-3629,以及 Froxlor 项目的发行说明中。那里有具有约束力的信息。请把它们与你登录后面板所显示的版本进行对比。
用防火墙封锁面板,能代替更新吗?
作为应急措施可以,作为长期方案不行。封锁会缩小攻击面,但漏洞仍留在软件里。一旦有了已修复的版本就请更新,并且仍然保持访问受限。
我怎么知道有人已经利用过我的面板?
典型的迹象包括:不认识的管理员或客户账户、Web 目录中最近被修改过的 PHP 文件、last 输出中陌生的登录,以及多出来的拥有 root 权限的账户。如果发现这类情况,最好重新安装服务器并更改所有访问凭据。