Skip to content

安全

中心和代理程序可以通过 SSH 或 WebSocket 相互通信。

SSH 连接

SSH 连接由中心发起并连接到代理的 SSH 服务器。当您的中心可以访问您的代理,但您的代理无法访问中心时,这是理想的选择。例如,如果您在私有网络上运行中心,而代理在公共网络上。

当中心首次启动时,它会生成一个 ED25519 密钥对。

代理程序的 SSH 服务器仅配置为使用此密钥接受连接。它不提供伪终端或接受输入,因此即使您的私钥泄露,也无法在代理程序上执行命令。

WebSocket 连接

WebSocket 连接由代理发起并连接到中心的 URL。

我们使用相互身份验证握手,确保在交换任何数据之前双方都是可信的。

  1. **初始连接和令牌验证:**代理发起到中心的 WebSocket 连接。它在升级请求期间将唯一的注册 令牌 作为 HTTP 头包含。中心在升级连接之前验证令牌是否与现有系统相关联。

  2. **中心质询:**为了向代理证明其身份,中心使用其私钥对令牌进行签名并将签名发送回代理。代理使用其公钥验证签名。

  3. **指纹身份验证:**在验证中心后,代理通过发送其 指纹 进行响应。此指纹是唯一标识符的安全哈希,将代理的注册锁定到运行它的机器上。中心验证收到的指纹是否与系统存储的指纹匹配。如果匹配,连接就被授权。

报告漏洞

如果您发现最新版本存在严重的安全漏洞,请 提交漏洞报告

如果漏洞严重性较低(请自行判断),您可以提交一个 issue。

网络需求

以下是 Beszel 基于默认配置与之通信的端口和远程主机列表。使用 SMTP 发送邮件或使用 S3 进行备份将需要连接到其他主机。

代理程序

入站

端口用途
45876允许中心通过 SSH 连接到代理程序。端口可以自定义。

出站

远程主机端口用途
您的中心 URL8090代理发起的 WebSocket 连接。端口可以自定义或通过代理访问。
github.com443检查/下载更新(如果使用 Docker 则不需要)

中心

入站

端口用途
8090HTTP 访问 Web UI。端口可以自定义或通过代理访问。

出站

远程主机端口用途
您的代理45876与您的代理程序的 SSH 连接。端口可以自定义。
github.com443检查/下载更新(如果使用 Docker 则不需要)

基于 MIT 许可发布