安全与部署建议
WebMux 以启动服务的系统用户身份执行任意命令,等同于把一个 shell 暴露到网络上。它不是进程沙箱,也不提供多用户隔离,安全依赖于网络隔离。
安全边界
WebMux 等同于以当前用户身份把 shell 暴露到网络,默认监听 0.0.0.0:7681。仅本机使用请改为 127.0.0.1;远程访问请绑定 Tailscale / WireGuard 等可信 VPN;除非明确使用隧道并接受“Token 是唯一入口屏障”的风险,不要开放到公网。它不是进程沙箱,服务重启会结束所有终端会话。 阅读安全模型
安全模型
- 默认监听所有接口 0.0.0.0:7681;仅本机使用请设为 127.0.0.1:7681,远程访问建议绑定可信 VPN 地址,并用防火墙限制可访问的接口。
- 首次启动生成 0600 配置文件和持久化的 256 位 Token,可用 webmux status --json --reveal-token 查看。
- 所有 API 与 WebSocket 都需要认证(启用 token 时),token 以常量时间比较;带 Origin 的请求必须同源或位于 allowed_origins 中。
- Token 不进入请求 URL:HTTP 使用 Bearer 头,WebSocket 使用子协议;终端输入输出不会写入日志,配置接口不返回 token。
- WebMux 不内置 TLS;需要 HTTPS 时使用 tailscale serve 或反向代理。
- 登记的 Git 仓库必须可信:Git 会执行仓库配置中的 hooks 与 filters。关闭会话会清理其进程树,但完全脱离终端会话的自守护进程可能不受控制。
- 只有最新发布版本会接收安全修复。
三种推荐拓扑
报告漏洞
请不要通过公开 Issue 报告安全漏洞。请使用 GitHub 的 私密漏洞报告,并提供受影响的版本与平台、复现步骤或概念验证、可能的影响范围。详见 安全策略 · 报告漏洞。