安全
中心和代理程序可以通过 SSH 或 WebSocket 相互通信。
SSH 连接
SSH 连接由中心发起并连接到代理的 SSH 服务器。当您的中心可以访问您的代理,但您的代理无法访问中心时,这是理想的选择。例如,如果您在私有网络上运行中心,而代理在公共网络上。
当中心首次启动时,它会生成一个 ED25519 密钥对。
代理程序的 SSH 服务器仅配置为使用此密钥接受连接。它不提供伪终端或接受输入,因此即使您的私钥泄露,也无法在代理程序上执行命令。
WebSocket 连接
WebSocket 连接由代理发起并连接到中心的 URL。
我们使用相互身份验证握手,确保在交换任何数据之前双方都是可信的。
**初始连接和令牌验证:**代理发起到中心的 WebSocket 连接。它在升级请求期间将唯一的注册
令牌
作为 HTTP 头包含。中心在升级连接之前验证令牌是否与现有系统相关联。**中心质询:**为了向代理证明其身份,中心使用其私钥对令牌进行签名并将签名发送回代理。代理使用其公钥验证签名。
**指纹身份验证:**在验证中心后,代理通过发送其
指纹
进行响应。此指纹是唯一标识符的安全哈希,将代理的注册锁定到运行它的机器上。中心验证收到的指纹是否与系统存储的指纹匹配。如果匹配,连接就被授权。
报告漏洞
如果您发现最新版本存在严重的安全漏洞,请 提交漏洞报告。
如果漏洞严重性较低(请自行判断),您可以提交一个 issue。
网络需求
以下是 Beszel 基于默认配置与之通信的端口和远程主机列表。使用 SMTP 发送邮件或使用 S3 进行备份将需要连接到其他主机。
代理程序
入站
端口 | 用途 |
---|---|
45876 | 允许中心通过 SSH 连接到代理程序。端口可以自定义。 |
出站
远程主机 | 端口 | 用途 |
---|---|---|
您的中心 URL | 8090 | 代理发起的 WebSocket 连接。端口可以自定义或通过代理访问。 |
github.com | 443 | 检查/下载更新(如果使用 Docker 则不需要) |
中心
入站
端口 | 用途 |
---|---|
8090 | HTTP 访问 Web UI。端口可以自定义或通过代理访问。 |
出站
远程主机 | 端口 | 用途 |
---|---|---|
您的代理 | 45876 | 与您的代理程序的 SSH 连接。端口可以自定义。 |
github.com | 443 | 检查/下载更新(如果使用 Docker 则不需要) |