安全模型与隐私承诺
Gately 运行在网络边界,经手 DNS 服务商密钥、证书私钥与各类凭据,因此安全与透明是首要设计目标。
隐私承诺
- 默认零外联:不连接任何项目方服务器,不上报设备信息,不下发远程配置。
- 对外地址可见可改:公网 IP 查询、STUN 服务器等地址都在界面中展示,可修改或关闭。
- 第三方登录自主:GitHub、Google、QQ、OIDC 登录使用你自己申请的 OAuth 应用,不经过任何中转。
- 自主升级:程序不会在后台下载或替换自身;Linux 二进制部署的在线升级只在管理员点击后执行,并核对 SHA-256、保留旧版本,升级时机由你决定。
数据保护
- 配置为明文 JSON,文件权限 0600,可审计、可回滚。
- 敏感字段在 API 输出中脱敏。
- cloudflared 的令牌通过环境变量传递,不会出现在进程列表中;frp、Tailscale 的令牌与密钥以 0600 权限保存。
认证与访问控制
- bcrypt 密码哈希,HMAC 签名会话令牌;
- 默认密码
gately.cn是公开的,仍在使用时管理界面顶部持续提醒修改;忘记密码或丢失两步验证器时只能在服务器上用gately reset-password/gately reset-totp重置(需要读写配置目录并输入yes确认),重置后所有会话失效并记入审计日志,详见 重置密码与两步验证; - Passkey(WebAuthn)登录:只保存公钥,强制用户验证(指纹、面容或 PIN),签名计数防克隆;需要通过域名与 HTTPS(或 localhost)访问;
- 两步验证(TOTP,通过 RFC 6238 测试向量验证);
- 只读账号:可查看状态与配置,不能修改、下载备份、读取密钥或打开终端;重置密码或删除后会话立即失效;
- 登录失败限流;
- 本机反向代理:管理界面放在本机 nginx、haproxy 或 Gately Web 服务之后时,只信任本机地址传来的
X-Real-IP/X-Forwarded-For,仅内网访问、登录限流与审计日志据此取得真实来源,可在「设置 → 访问限制」关闭或添加额外可信代理; - 安全入口、仅内网访问、管理界面 HTTPS;
- 飞牛统一网关:飞牛安装包经飞牛统一网关访问时,由飞牛负责访问控制,只有飞牛管理员能打开;「飞牛登录态自动登录」默认关闭,开启后已登录的飞牛管理员以 Gately 管理员身份直接登录(跳过两步验证),普通飞牛用户仍需登录,详见 飞牛 fnOS 原生应用;
- 功能模块开关:在「设置 → 功能模块」关闭不用的模块后,该模块不启动服务、不提供管理接口,可缩小暴露面;
- 多令牌 API:每个令牌只拥有创建时勾选的模块读写权限,可设置过期时间,并记录最近使用的来源 IP;账号、两步验证、令牌管理以及备份、恢复、重启、系统设置接口只接受登录会话,详见 API 令牌与 OpenAPI;
- 站点访问控制:认证失败自动封禁、GeoIP 国家过滤、路径规则,详见 Web 服务;
- 配置备份支持加密(scrypt + AES-GCM),详见 配置备份。
审计与可追溯
操作审计日志记录登录、配置变更与敏感访问,配置历史保留每个配置文件被覆盖前的版本并支持一键回滚,详见 审计与配置历史。发布产物附带 cosign 签名、构建来源证明与 SBOM,校验方法见 校验发布产物。
高风险功能的默认值
本机 Shell 终端默认关闭。SSH 终端采用「首次信任」策略记录主机密钥指纹。
报告安全问题
请通过 GitHub 仓库的 Security 页面私下报告漏洞,避免在公开 Issue 中披露细节:https://github.com/wangwanjie/gately/security
更多实践建议见 加固建议。