在公网环境下运行博客,安全是第一要务。本文将从面板、传输、防火墙、应用及系统五个维度,详细介绍如何构建一个“堡垒级”的 Halo 博客。
1. 1Panel 面板层:锁死“后台大门”
1Panel 是服务器的管理中枢,必须优先采取“物理隔离”策略,防止非法探测。
修改默认端口: 默认端口(如 8888)极易被批量扫描工具命中。请在
面板设置 -> 安全中将其修改为 10000-60000 之间的随机端口。配置安全入口: 设置一个复杂的安全路径(如
/top_secret_access)。只有“IP:端口+路径”完全匹配时才会显示登录页,有效隐藏攻击面。强制两步校验 (MFA): 开启基于时间的一次性密码(TOTP,如 Google Authenticator)。即使密码不慎泄露,没有手机动态码,黑客也无法逾越。
(进阶)授权 IP 访问: 如果你有固定公网 IP 或使用特定 VPN,可设置仅允许特定 IP 段访问面板,实现精确定点访问。
2. 网络传输安全:全链路加密
没有 SSL 证书的博客不仅用户体验差,更面临账号密码被中间人截获的风险。
自动化 SSL 部署: 利用 1Panel 内置的证书管理,申请免费的 Let's Encrypt 或 ZeroSSL 证书,并配置自动续期。
强制 HTTPS 跳转: 在网站设置中开启 HTTP 自动跳转 HTTPS,确保所有流量均在加密通道内传输。
HSTS 加固: 在 Nginx 配置中加入
Strict-Transport-Security响应头,强制浏览器在后续访问中直接发起 HTTPS 连接,防范 SSL 剥离攻击。
3. 应用层防御:善用 WAF 防火墙
1Panel 集成了基于 OpenResty 的 WAF 功能,能有效过滤 SQL 注入、XSS 跨站脚本等常见 Web 攻击。
开启 WAF: 在
网站 -> 设置 -> WAF中启用。它像一层隐形盾牌,过滤恶意流量。兼容性微调(重要): > 注意: Halo 在编辑文章时会提交包含 HTML 代码的内容,可能触发 WAF 的 XSS 拦截规则。
解决方案: 若保存文章报错,请检查 WAF 拦截日志。精准定位被拦截的 URL 路径,将其加入白名单,或针对该接口放行相关规则,切忌因为嫌麻烦而关闭整个防火墙。
4. Halo 应用加固:内防堡垒
Halo 自身的配置直接决定了业务数据的安全性。
关闭注册通道: 个人博客应在
设置 -> 用户中关闭“允许注册”功能,杜绝垃圾用户注册带来的资源损耗。异地容灾备份: * 利用 1Panel 计划任务,每日凌晨定时备份数据库及附件。
核心建议: 备份文件务必上传至第三方云存储(如阿里云 OSS、S3 或你的另一台 NAS),防止服务器硬件损坏或被黑导致的“一锅端”。
避坑指南: * 切勿对 Halo 开启“网站防篡改”:由于 Halo 运行在 Docker 容器内且会有频繁的附件写入操作,开启此功能会导致图片上传失败或主题更新报错。
5. 服务器系统级防护:守好最后防线
系统层的松懈会导致以上所有努力前功尽弃。
最小化端口暴露: 在
主机 -> 防火墙中执行“默认拒绝”策略。仅放行 80 (HTTP)、443 (HTTPS) 以及修改后的 SSH 和面板端口。SSH 安全策略: 1. 修改默认 22 端口。
2. 禁用密码登录,仅允许 SSH 密钥(Key)登录,彻底终结暴力破解的可能性。
总结:安全配置核对表
💡 小贴士:
每次修改安全配置(尤其是端口、路径或 IP 限制)后,请务必先用浏览器的无痕模式(Incognito)进行登录测试。确保配置生效且自己拥有访问权限,避免因配置错误将自己“反锁”在系统之外。
评论区