管理
安全与隐私
怎样安全地从外面访问控制台,令牌怎么用,以及烽燧保存了哪些数据。
烽燧能改动你的路由器、读你的短信,所以请像对待路由器管理页面一样对待它。
不要直接暴露到公网
小心
不要在路由器上把 18384 端口转发到公网,也不要给这台机器开 DMZ。控制台使用普通 HTTP,登录密码和会话会以明文经过网络。
要在外面访问,用下面任意一种:
- Tailscale 或其他 VPN(最简单):手机连上 VPN 后访问 NAS 的内网地址。
*.ts.net主机名默认就被允许。 - HTTPS 反向代理:例如群晖自带的反向代理、Caddy、Nginx,并且设置一个足够强的控制台密码。
经反向代理访问
- 在
ALLOWED_HOSTS里写上你的域名,例如cpe.example.com。否则烽燧会以421拒绝陌生域名的请求(这是为了防止 DNS 重绑定攻击)。 - 在
TRUSTED_PROXIES里写上反向代理的 准确 IP。只有来自这个地址的请求,烽燧才会相信它带来的真实客户端地址和 HTTPS 标记。- 代理和烽燧在同一台机器、且烽燧用 host 网络:保持默认的
127.0.0.1,::1。 - 代理在另一个 Docker 容器里:写代理容器在 Docker 网络里的地址,例如
172.18.0.2。
- 代理和烽燧在同一台机器、且烽燧用 host 网络:保持默认的
- 设置正确后,登录 Cookie 会自动加上
Secure,登录限流也会按真实客户端计算。
警告
如果 TRUSTED_PROXIES 没设对,所有访问者在烽燧看来都来自代理的地址:登录失败的限流会作用于所有人,Cookie 也不会带 Secure。
控制台密码与令牌
- 控制台密码:首次设置时创建,在「设置 → 登录密码」修改。只保存它的 scrypt 哈希。
- 令牌:在「设置 → 令牌」生成,分「完全控制」和「只读」两种,可以设有效期(1 到 365 天或永不过期),只显示一次,随时可以撤销。令牌不能修改控制台设置。
- 交给智能体、仪表盘或脚本:一律用只读令牌。
- 忘记密码:在 NAS 上执行
docker exec cpe-dash node dist/cli.js reset-login拿到 15 分钟有效的重置码,或在已绑定的 Telegram 私聊里发/reset(可在「设置 → 安全」关闭),然后在登录页点「忘记密码」。
烽燧保存了什么
所有文件都在 data/ 里,用 DATA_ENCRYPTION_KEY 加密(AES-256-GCM),文件权限为 0600:
| 文件 | 内容 |
|---|---|
settings.json | 路由器连接(含路由器密码)、控制台密码哈希、令牌哈希、实验性写入的同意 |
state.json | 最新数据缓存、7 天历史曲线、告警、锁定状态、自愈记录 |
sms.json / contacts.json | 短信和通讯录 |
telegram.json | 绑定的 Telegram 聊天 |
audit.json | 最近 500 条审计记录 |
审计日志(「设置 → 审计」)记录每次改动路由器、每次登录控制台和每次修改设置:谁(网页、哪个令牌、MCP、Telegram、自愈)、什么时候、做了什么、结果如何。
烽燧不连接任何云服务,不收集使用数据。只有你配置的 Telegram 和 Webhook 会收到通知内容。
隐私模式
- 页头的眼睛图标隐藏 IMEI、IMSI、号码、MAC、WAN 地址和短信内容,适合截图和投屏。
- 用令牌访问的 API、实时事件和 MCP 默认拿到打码后的数据(
REDACT_SENSITIVE_IN_API=true)。
报告安全问题
请按 SECURITY.md 私下报告,不要发公开 issue。