安全最佳实践
本页汇总了让 nginx-reverse-emby 更安全的关键措施。每一条都值得花几分钟确认。
密码和令牌
API_TOKEN用 32 位以上随机字符串,包含大小写字母和数字。不要用简单密码。MASTER_REGISTER_TOKEN单独设置一个不同的值,不要和API_TOKEN共用。- 这两个 Token 都不要提交到 Git 仓库,不要在公开渠道(聊天记录、论坛、截图)中暴露。
data 目录保护
./data 目录包含 SQLite 数据库、证书私钥、Agent Token 等敏感信息:
- 不要提交到 Git 仓库(确保
.gitignore包含data/) - 不要上传到公共网盘
- 备份文件加密后再存储到远程
面板访问控制
- 默认
docker-compose.yaml只监听127.0.0.1:8080。首次登录建议通过 SSH 隧道访问http://127.0.0.1:8080。 - 面板可以给自己提供 HTTPS:登录后创建
https://panel.example.com -> http://127.0.0.1:8080的 HTTP 规则,使用localAgent 自动申请证书并代理回控制面。 - 面板自身 HTTPS 可用后,设置
NRE_PUBLIC_URL=https://你的面板域名,让 join script 和 Agent 更新 URL 使用固定可信地址。 - 不要把面板 8080 端口直接暴露到公网 HTTP。如果需要公网监听,必须配合防火墙限制来源 IP。
- 只有在额外使用上游反代,且上游会清洗并重写
X-Forwarded-*头时,才设置NRE_TRUST_FORWARDED_HEADERS=true。
防火墙
只放行真正需要的端口,不要一把全开:
- 面板端口:限制来源 IP
- HTTP 入口:80
- HTTPS 入口:443
- 自定义监听端口:按实际规则逐个放行
证书安全
- 证书私钥不要复制传播,不要提交到仓库
- Cloudflare API Token 只授予必要权限(区域读取 + DNS 读取/编辑),定期轮换
- 详情见 证书与 HTTPS
Agent 注册安全
MASTER_REGISTER_TOKEN是 Agent 注册的唯一凭证,泄露后任何人都可以注册 Agent 接入你的控制面- 定期检查 节点管理 页面,移除不认识的 Agent
数据库安全
- 如果使用 PostgreSQL 或 MySQL,数据库密码独立设置,不要复用其他密码
- 数据库端口不要暴露在公网
及时升级
定期更新控制面和 Agent 到最新版本以获取安全修复。更新前先备份 data 目录,以防万一。