跳到主要内容

面板安全

已经做了哪些​

机制详情
登录防爆破每对「用户名 + IP」5 次尝试,单个 IP 20 次,单个用户名 50 次,并逐步升级封禁
密码经过哈希处理;密码绝不会出现在登录失败通知中
管理员操作日志表 admin_audit_log:谁、做了什么、何时、IP、结果
静态密钥TOTP 密钥加密存储(AES-256-GCM)
无外部请求打包后的 bundle 中不访问第三方服务:图标、版本检查和遥测都已移除
不记录请求体否则日志中会出现密码、令牌和 OAuth2 密钥 —— 只记录方法、路径、结果、IP 和时间
数据保留按期限自动清理个人数据(参见环境变量)

记录了什么,以及这些数据会怎样​

内容位置默认期限包含
管理员操作日志admin_audit_log30 天谁、做了什么、何时、IP
用户设备hwid_user_devices90 天HWID、操作系统、user-agent、IP
订阅请求user_subscription_request_history30 天IP、user-agent
流量历史nodes_user_usage_history14 天不含 IP
节点统计nodes_usage_history90 天不含 IP

自动清理默认关闭:如果希望自动遵守这些期限,请启用 SERVICE_CLEAN_USAGE_HISTORY 和 SERVICE_CLEAN_OLD_LOGS。

手动清理​

在 Logs 页面选择数据源并点击「Delete selected」。服务器还会额外要求显式 确认(confirm: true),因此无法绕过界面直接触发清理。

管理员操作日志位于 Audit Log 页面:可按管理员和结果筛选,支持分页。

管理员检查清单​

  • APP_SECRET 保存在可靠的位置(密码管理器,而不是聊天记录里)。
  • .env 文件权限为 600,且不会进入第三方可访问的备份。
  • 面板只能通过 HTTPS 访问,HTTP 会重定向。
  • METRICS_PORT 未对外暴露:指标只在 127.0.0.1 上提供。
  • 节点端口 2222 只能从面板 IP 访问。
  • 为管理员启用 2FA(TOTP)。
  • 用户可访问源代码链接(AGPL 第 13 条)。
  • 管理员密码保存在密码管理器中:要求很严格, 但正是这些要求保护着唯一的入口。

到节点的 SSH 终端​

该功能(Settings → Experimental)提供节点服务器上的命令行。 私钥加密保存在浏览器中,不会传到服务器,但该访问权限非常宽泛。 只有在理解后果时才启用,并且只授予最少的管理员。

报告漏洞​

请不要提交公开 issue。请通过仓库中的 Security Advisories 以私密方式描述问题。