网站能打开,只能说明部署成功。真正开始对外服务后,它会持续收到登录尝试、路径扫描和自动化请求,其中很多与你的网站有没有流量无关。
2026 年 7 月,WordPress 修复了两处核心漏洞:一处可以改变数据库查询,另一处在特定条件下可通过 REST API 批处理接口执行服务器代码。Cloudflare 随后上线 WAF 规则,在攻击请求到达 WordPress 前拦截;WordPress 则通过版本更新修复代码。
这里提到 WordPress,不是说 Halo 存在同样的问题。它提醒我们:建站程序会更新,攻击方法也会变化。一个正常运行的网站,至少需要账号保护、及时更新、备份和入口防护。
如果你使用 Halo 建站、用 1Panel 管理服务器,这些设置大多可以在图形界面里完成。
普通网站为什么也会被攻击
很多攻击由程序自动完成。扫描器会批量寻找公开的管理入口、弱密码、过期插件和已知漏洞,并不关心网站是不是知名。
网站失守后,最常见的麻烦也不是首页被换掉。攻击者可能新增管理员、插入垃圾链接、盗取数据库,或者利用服务器发送垃圾邮件。站长往往要花更多时间判断哪些文件被改过、后门藏在哪里。
安全设置的作用,是把攻击变难,并在出问题后保留恢复手段。
一套适合个人网站和小团队的基础方案,包括四部分:
保护 Halo 和 1Panel 的管理账号;
建立能够实际恢复的异地备份。
更新 Halo、插件、主题及服务器组件;
用 HTTPS、WAF 和防火墙减少入口风险;
下面逐项操作。
1. 给 Halo 管理员开启两步验证
强密码可以减少猜测和撞库风险,两步验证则是在密码泄露后再挡一次。
Halo 支持 TOTP 验证器。登录 Halo 后:
点击左下角头像,进入个人中心;
打开「两步验证」;
使用密码管理器或身份验证器扫描二维码;
输入生成的一次性验证码,完成绑定。
管理密码不要与邮箱、1Panel 或其他网站重复。更省心的做法是用密码管理器生成并保存,每个网站使用不同密码。
如果多人维护网站,也不要共用一个管理员账号。编辑只拿编辑内容所需的权限,管理员权限留给少数维护人员。离职成员、测试账号和不再使用的个人令牌应及时删除。
Halo 默认不开启用户注册。网站不需要注册功能时,保持关闭即可;需要开放时,应启用邮箱验证,并检查新用户的默认角色。
2. 保护 1Panel 管理入口
1Panel 可以管理应用、数据库、文件和容器,权限通常高于 Halo 后台。它的账号需要单独保护。
在 1Panel V2 中,登录账号相关设置位于左下角头像菜单的「用户信息」。建议完成这些设置:
使用与 Halo 不同的强密码;
开启 MFA;
设置合理的会话超时时间;
不使用 API 时保持关闭;
条件允许时,启用通行密钥。
面板入口还可以通过 HTTPS、绑定域名、安全入口和授权 IP 继续收紧。授权 IP 很有效,但不适合公网 IP 经常变化的网络。修改前先确认 SSH 仍能登录服务器,避免把自己锁在面板外。
3. 为网站启用 HTTPS
HTTPS 加密浏览器与网站之间的通信。登录密码、Cookie 和页面内容即使在传输途中被截获,也不能直接读取。
实际上我们在实操篇中已经提到了 HTTPS 配置。
如果你还不熟悉 HTTP、HTTPS、SSL 证书和端口,可以先阅读站内的《零基础建站概念篇:域名、服务器、DNS 核心概念全解》。这篇文章也解释了 HTTPS 自动跳转、HSTS,以及 80、443 端口分别负责什么。
在 1Panel 中进入:
网站 → 选择 Halo 网站 → 配置 → HTTPS
申请或上传证书后,开启 HTTPS 和 HTTP 自动跳转,并检查证书自动续期是否正常。Halo 的外部访问地址也应改成实际使用的 https:// 域名,否则部分资源、跳转或插件回调可能出现问题。
HTTPS 只保护传输过程。它不能修复程序漏洞,也不能阻止别人用泄露的密码登录。
4. 开启 1Panel WAF
WAF 是 Web 应用防火墙。请求到达 Halo 之前,先由 WAF 检查路径、参数、请求头和访问频率。
访问者 → 1Panel WAF → Halo → 数据库
以下操作以当前 1Panel V2 为准。V1 和较早的 V2 版本在菜单、授权范围及功能上可能不同,请以实际界面和对应版本文档为准。
当前 1Panel V2 社区版提供基础 WAF,包括黑白名单、访问频率限制、通用参数规则、SQL 注入、XSS 和文件上传限制。专业版和企业版增加漏洞防御、应用规则、自定义 ACL、地区访问限制、攻击报表和拦截记录等功能。
使用 WAF 前,需要通过 1Panel 安装并运行 OpenResty,而且 Halo 已经作为网站添加到 1Panel。
基本设置顺序如下:
进入「WAF → 全局设置」,开启总开关;
启用准备使用的基础规则;
进入「WAF → 网站设置」,选择 Halo 网站;
开启当前网站的 WAF;
检查登录、文章保存、附件上传、评论、API 和第三方回调;
确认正常请求没有被拦截。
当前 1Panel V2 的网站 WAF 支持观察模式和防护模式。观察模式检测请求但不阻断,适合上线前验证。不过社区版没有完整的可视化拦截记录页面,需要结合 OpenResty 日志和实际访问结果排查。确认 Halo 的主要功能正常后,再切换到防护模式。
发生误报时,应针对具体规则或路径缩小调整范围。不要直接把整个 Halo 控制台或全部 API 加入白名单,这会让对应请求跳过后续检查。
WAF 是入口防护,不是更新的替代品。新攻击可能绕过现有规则,程序补丁仍然要装。
5. 配置自动备份,并保留异地副本
一份有用的 Halo 备份,应覆盖应用数据、数据库、附件和必要配置。
Halo 2.8 起内置备份与恢复功能,可以在 Console 的「备份」页面手动创建备份。通过 1Panel 部署时,也可以进入:
应用商店 → 已安装 → Halo → 备份
手动备份适合升级前使用,长期运行还需要计划任务。可以在 1Panel 中定期备份 Halo 应用和数据库,再同步到对象存储、WebDAV、SFTP 或其他远端存储。
不要只把备份留在网站所在的服务器。磁盘损坏、目录误删或服务器被入侵时,本地备份可能一起丢失。
建议至少保留最近几天的每日备份和几份每周备份。更重要的是做一次恢复测试。计划任务显示成功,只代表生成了备份文件,不代表它一定能够恢复。
使用 Halo 商城版时还要注意:根据 Halo 当前文档,内置备份暂不包含商城相关数据,需要额外备份数据库。
6. 更新 Halo、插件和主题
公开漏洞出现后,补丁和漏洞细节往往会同时扩散。长期不更新的网站更容易被自动扫描命中。
通过 1Panel 部署 Halo 时,可以在这里查看升级:
应用商店 → 可升级 → Halo
升级前先阅读 Halo 的版本说明并创建备份。升级完成后,检查首页、控制台、文章页面和插件功能,再查看应用日志有没有持续报错。
Halo 核心、插件和主题需要分别维护。插件和主题可以在 Halo 内置应用市场中检查更新。不再使用的组件应卸载,不要只停用后长期保留。
1Panel 应用商店同步新版本可能晚于 Halo 官方发布。遇到安全公告时,应同时查看 Halo 官方版本信息。
1Panel 本身、OpenResty、数据库和服务器系统也需要更新。不要一次跨越多个大版本直接升级生产环境;先备份,再阅读迁移说明。
7. 关闭不必要的公网端口
Halo 通过 1Panel 的 OpenResty 和域名提供服务后,访客通常只需要访问 80 和 443 端口。Halo 容器的 8090 端口、数据库端口一般不需要直接暴露到公网。
在云厂商安全组和 1Panel 防火墙中分别检查:
80、443 是否正常开放;
Halo 应用端口是否仍对公网开放;
MySQL、PostgreSQL、Redis 等内部服务是否暴露;
SSH 和 1Panel 管理端口能否限制来源 IP。
云安全组和服务器防火墙是两层独立控制。关闭端口前先确认反向代理和 SSH 通道正常,避免网站或管理入口一起失联。
8. 定期查看日志和账号
日志不能阻止攻击,但能告诉你网站发生了什么。
每隔一段时间检查:
1Panel 登录日志和操作日志;
Halo 应用日志;
网站访问日志和 OpenResty 错误日志;
Halo 管理员、个人令牌和登录设备;
CPU、内存、磁盘和异常流量。
如果突然出现大量登录失败、连续扫描不存在的路径、陌生管理员或文章中的异常链接,就需要进一步排查。CPU 和邮件发送量持续升高,也可能是服务器被滥用的信号。
新站上线安全清单
如果你的 Halo 站点刚刚初始化完成,可以照着下面逐项检查:
[ ] Halo 管理员使用独立强密码并开启两步验证
[ ] 1Panel 使用另一组强密码并开启 MFA
[ ] 为网站和面板启用 HTTPS
[ ] 在当前 1Panel V2 中配置 WAF,并验证 Halo 的主要功能
[ ] 定时备份 Halo 应用和数据库
[ ] 将至少一份备份保存到服务器之外
[ ] 实际测试一次恢复
[ ] 更新 Halo、插件、主题和 1Panel
[ ] 关闭 Halo、数据库等不必要的公网端口
[ ] 定期检查日志、管理员和登录设备
这些设置不会让网站“绝对安全”,但能处理新手建站后最常见的风险。网站维护也不需要每天花很多时间:开启自动备份和必要告警,每月安排一次更新与检查,遇到安全公告时及时处理。
常见问题
使用 Halo 还需要 WAF 吗?
需要。Halo 负责网站功能,WAF 在请求进入 Halo 前进行检查。两者不在同一层,WAF 不能代替 Halo 更新。
开启 WAF 后,还需要更新 Halo 吗?
需要。WAF 依靠规则识别攻击请求,可能出现误报或漏报。更新 Halo 才能修复程序中的已知问题。
Halo 备份和 1Panel 应用备份有什么区别?
Halo 内置备份针对 Halo 自身的数据结构;1Panel 应用备份从部署层保存应用数据。重要站点可以同时使用,并单独安排数据库备份。
1Panel 社区版可以使用 WAF 吗?
当前 1Panel V2 文档显示,社区版可以使用基础 WAF。V1 和较早版本可能不同。如果面板中没有对应菜单,先确认 1Panel 版本、OpenResty 状态和当前许可证,不要照搬其他版本的界面说明。
两步验证开启后,密码可以简单一点吗?
不可以。两步验证是第二道检查,不是密码的替代品。密码仍应保持独立且足够随机。