Sicurezza

如何加固 Home Assistant:实用与进阶指南

保护 Home Assistant 免受未经授权访问的技术指南。了解如何配置 MFA、用户、安全远程访问、备份和日志管理。

加固 Home Assistant 服务器是一项至关重要的操作,尤其是当您将系统暴露到外部以远程管理灯光、门锁、恒温器和警报系统时。本指南介绍了通过减少攻击途径、管理凭据、配置双重身份验证 (MFA) 以及建立可靠备份策略的稳健方法。对于电气系统或电动门锁的复杂操作,请始终信赖合格的电工或技术人员。

前置条件:具有 Home Assistant Core、OS 或 Supervised(近期的版本)的管理权限,具备修改本地网络的权限,以及支持 VPN 或安全反向代理的路由器。

限制与兼容性:图形界面的菜单项在每月发布的版本之间可能会略有差异。请始终针对您特定的更新渠道(Stable、Beta、Dev)查阅官方文档。

1. 用户管理与最小权限原则

首先要避免的错误是日常使用或连接移动设备时持续使用所有者 (Owner) 账户。添加到 Home Assistant 的每个用户都应该仅拥有严格必需的权限。

角色分离

创建一个由强凭据保护的备用管理员用户,并将标准用户角色(如果使用高级配置,可通过 ACL 限制权限)分配给家人或固定在墙上的设备(平板仪表盘)。如果不再需要初始引导 (onboarding) 用户,请将其禁用。

密码策略

为每个用户强制使用复杂且唯一的密码。Home Assistant 本身并不原生强制实行严格的最低密码复杂度,因此选择密码短语的责任落在管理员身上。

2. 强制双重身份验证 (MFA)

双重身份验证 (MFA) 可在密码泄露的情况下大幅降低账户受到威胁的风险。

点击 Home Assistant 侧边栏左下角您的姓名进入用户资料。向下滚动到双重身份验证部分。选择 TOTP(基于时间的一次性密码)模块,该模块兼容 Google Authenticator、Authy 或 Aegis 等应用。使用智能手机上的应用扫描二维码,并输入生成的六位数字代码以确认激活。请将恢复代码保存在安全且离线的地方。

3. 安全远程访问:VPN 与直接暴露的对比

强烈不建议通过路由器上的端口转发将 8123 端口直接暴露到 Internet,除非使用结合了 Web Application Firewall 或地理拦截 (geoblocking) 的强健保护层,例如带有 SSL/TLS 的反向代理(例如 Nabu Casa、Nginx Proxy Manager 或 Cloudflare Tunnels)。

推荐选择:Nabu Casa 或 VPN

无需手动配置 SSL 证书即可实现远程访问的最安全且最集成的方案是订阅 Home Assistant Cloud (Nabu Casa),它以安全的方式管理端到端加密。或者,在您的路由器或专用服务器(例如独立的 Raspberry Pi 或 pfSense/OPNsense 防火墙)上配置私有 VPN(例如 WireGuard 或 OpenVPN),在打开 Home Assistant 界面之前先接入家庭网络。

4. 步骤详尽的加固流程

  1. 使用主管理员账户登录 Home Assistant,验证本地或远程域名上的 SSL 证书已生效。
  2. 进入设置菜单,选择人员,删除或禁用之前创建的所有未使用或测试账户。
  3. 进入您的管理员用户资料,找到 MFA 部分,激活 TOTP 模块并将其与智能手机上的身份验证应用绑定。
  4. 验证敏感配置文件是否使用 secrets.yaml 文件来存储令牌、IoT 设备密码、MQTT 凭据和 API 密钥。
  5. 设置 -> 系统 -> 备份中配置自动备份系统,计划定期生成加密备份。
  6. 将生成的备份文件转移到 Home Assistant 的 SD 卡或主磁盘之外,将其保存到本地 NAS 或加密的云存储中。
  7. 如果您之前配置了不受 HTTPS 或 VPN 保护的访问,请立即禁用家用路由器上 8123 端口的直接端口转发。
  8. 配置系统通知,以便在发生失败的登录尝试或安全日志出现严重错误时立即收到警报。
  9. 将 Home Assistant Core、Supervisor 和操作系统更新到可用的最新稳定安全补丁。

5. 密钥、日志与更新

定期维护安全性需要特别注意硬编码数据、日志清理以及更新的及时性。

secrets.yaml 文件的管理

切勿在自动化文件或主配置 (configuration.yaml) 中输入明文密码。利用 !secret nome_chiave 语法从专门的密钥文件中调用受保护的数据。

日志分析

定期监控系统日志 (home-assistant.log) 或设置 -> 系统中的日志部分,以发现来自可疑 IP 地址的暴力破解尝试、重复的身份验证错误或加载项 (Add-on) 中的异常。

更新策略

定期更新系统。开发人员每月发布的安全补丁修复了许多零日漏洞。在进行每次重大更新之前,请务必执行完整的手动备份。

6. 结果验证

要确认安全配置是否有效,请执行以下检查:

  • 从所有客户端登出并尝试登录:系统必须强制要求输入智能手机应用生成的 TOTP 代码。
  • 通过外部端口扫描工具(或关闭 Wi-Fi 使用蜂窝网络)检查 8123 端口是否不会以明文 (HTTP) 响应,而是无法访问或受到 HTTPS/VPN 的保护。
  • 检查远程目标文件夹中是否存在自动备份,且恢复流程已在预发 (staging) 或测试环境中至少测试过一次。

7. 常见问题与故障排除

遇到的问题可能的原因解决方案
丢失 MFA 设备且无法访问丢失智能手机或卸载了 Authenticator 应用通过 SSH 访问或本地控制台登录,删除 .storage/auth_provider.totp 文件或使用已保存的恢复代码。
激活 VPN 后远程访问无法正常工作路由规则错误或路由器上的端口已关闭检查 VPN 协议的端口转发(例如 WireGuard 的 UDP 51820)和网关配置。
日志中频繁出现与登录尝试相关的错误公网 IP 暴露的端口正在被恶意 Bot 扫描立即关闭路由器上的直接映射端口,并采用带有地理保护的反向代理或 Cloudflare。

8. 常见问题解答 (FAQ)

在不订阅 Nabu Casa 的情况下使用 Home Assistant 安全吗?

是的,只要部署了私有 VPN(例如 WireGuard)或正确配置了带有有效 SSL 证书(Let's Encrypt)的反向代理,就绝对安全。订阅 Nabu Casa 提供了现成的解决方案并支持项目的开发,从而极大地简化了这一过程。

如果怀疑系统遭到入侵该怎么办?

立即断开 Home Assistant 的 Internet 连接(禁用网络连接或断开路由器对外的连接),更改所有管理员用户的密码,撤销长效访问令牌 (Long-Lived Access Tokens),分析日志文件以查找异常 IP,并恢复到怀疑遭到入侵日期之前的干净备份。

加载项 (Add-on) 会损害安全性吗?

是的,从非官方或未验证的存储库安装 Add-on 可能会使系统暴露于安全漏洞中。请仅使用官方存储库或经过验证的社区商店,并保持所有加载项为最新状态。

如何保护控制门锁或警报的自动化?

对于智能门锁或警报系统等关键设备,请始终实施额外的逻辑一致性检查,要求在仪表盘内部输入加密的 PIN 码,并确保仅可通过具有高权限且激活了 MFA 的用户访问关键命令。

Occorrente

Materiali usati

Link ai rivenditori

I collegamenti portano alle pagine dei prodotti indicati. Il prezzo Amazon, quando disponibile, proviene dall’API ufficiale ed è aggiornato con data e ora; prezzo e disponibilità finali sono quelli della pagina Amazon.