DeepSeek Harness 插件:dsh-rgate 远程访问门禁

DeepSeek Harness (DSH) 的内置浏览器信任边界 (trustedHosts) 是为了防御 DNS 重绑定,而非身份认证。只要 Host 头通过验证,任何人都可以使用 Web UI。如果你将 Harness 暴露在非回环地址(如公网 IP、局域网),访问者无需任何凭证即可使用界面。dsh-rgate 插件为自托管部署添加了缺失的身份认证层。

插件定位

这是一个远程访问登录门禁,提供全页密码墙、API 限制和会话 Cookie。它由 raomaiping-hash 维护,解决的是 Web UI 缺乏认证机制的问题,使得 IP 扫描器在遇到公开地址时只能看到登录页面,而无法直接访问 Harness 的接口。

核心功能

  1. 全页密码墙
    通过注入门禁脚本到 index.html,非回环访问者(如 127.0.0.1、localhost、::1 除外)会被重定向到 /rgate-login 登录页。

  2. 完整的 API 限制
    所有 /api RPC 请求在未认证时返回 401。插件注册了自身的 /api/remote-auth.* 端点,不再代理或遮蔽 Harness 原生的 API 路由。

  3. 会话管理
    使用 rgate_session Cookie,设置 HttpOnly 和 SameSite=Strict,有效期 7 天。会话存储在内存中,登出和修改密码会清除所有会话。

  4. 无 ?token= URL
    插件生成 HMAC 签名的 rgate_auth Cookie,补全了 Harness 原生 dsh-client-connection 对 Cookie 的验证,使得访问者无需在 URL 中携带 ?token= 参数。

  5. 登录限流
    每个客户端限制 5 次失败尝试,随后触发指数退避(最慢 16 分钟),并使用 Cf-Connecting-Ip(配合 Cloudflare Tunnel)作为客户端标识,防止单一攻击者锁定所有用户。

  6. 审计日志
    登录成功/失败、锁定、密码变更操作会记录到 Harness 的日志(journald)中,且不记录密码明文。

  7. 密码存储
    密码使用 scrypt 算法(N=16384, r=8, p=1)加盐存储在 ~/.dsh/remote-auth.json(权限 0600)中。

  8. 远程访问设置
    在 DSH 的设置平面中提供远程访问状态、登录/登出和修改密码的入口。

  9. 来源验证
    登录和登出接口会检查 HTTP 来源,拒绝跨站表单提交。

安装与启用

从 GitHub 安装该插件(无构建步骤):

dsh plugin --profile web add github:raomaiping-hash/dsh-rgate

安装完成后,重启 web profile。插件激活时会输出 [rgate] 门禁已启用 …,并在首次启动时在 ~/.dsh/remote-auth.json 中生成一个随机密码。

典型用法

  1. 查看激活日志
    通过以下命令确认插件已生效:
   journalctl -u deepseek-harness | grep rgate
  1. 恢复忘记的密码
    如果忘记了密码,直接删除 ~/.dsh/remote-auth.json 文件并重启 Harness 服务。服务日志中会打印新的随机密码。

  2. 更改密码
    使用已认证的会话发送 POST 请求到 /api/remote-auth.password。

  3. 查看门禁状态
    通过 /api/remote-auth.status 检查当前配置、认证状态及是否为回环访问。

适用场景与注意

适用场景:适合单密码、个人或小型团队的自托管部署。

注意:
* 威胁模型:该插件假设 Harness 进程和主机文件系统是可信的。如果攻击者能读取 remote-auth.json 或进程内存,他们已经获得了主机权限。它不替代操作系统的网络安全卫生、HTTPS 终止或上游访问控制。
* WebSocket 未受保护:/api/events.mux 和 /api/events.host WebSocket 升级不受门禁限制。已通过认证的客户端仍可建立连接。
* 内存会话:会话存储在内存中,重启 Harness 会强制所有用户登出。
* 静态资源公开:未认证访客仍可访问静态资源(JS/CSS),但所有数据交互仍需通过 API 门禁。

总结

dsh-rgate 为 DeepSeek Harness 的 Web UI 提供了基础的认证层,通过密码墙和 Cookie 会话管理,有效防止了针对 Web 界面的直接扫描和未授权访问。结合其审计日志和限流机制,能够提升自托管部署的安全性。

插件目录
GitHub 仓库

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜