Gmzta SSH 会话记录 - 使用说明
1. 简介
Gmzta SSH 会话记录可以使您将通过 Gmzta SSH 会话的日志传输到加入飞网网络的另一个节点。这些记录与其他节点通过飞网传输数据一样,支持全程加密。
2. 工作原理
Gmzta SSH 会话记录可以使您从目标节点将 Gmzta SSH 会话的记录传输到 Gmzta 中的会话记录节点。会话记录是一个应用程序,您需要将其部署到飞网网络内的一台设备上。日志通过飞网传输到节点上,因此它们是全程加密的。最终会话记录将日志文件存储在部署的设备文件系统上。
Gmzta SSH 会话记录以 asciinema 格式获取终端会话。这些记录是以换行分隔的 JSON 文件,可以作为文本进行搜索,并可以在会话记录节点的可选 Web UI 或 asciinema CLI 中进行重放。
会话记录获取所有终端输出,即 Gmzta SSH 会话期间在终端屏幕上出现的任何文本。这可能包括敏感数据,但不会获取对话输入内容。
3. 设置 Gmzta SSH 会话记录
3.1 先决条件
会话记录仅适用于通过 Gmzta SSH 连接的 SSH 连接。
只有飞网的所有者、管理员或网络管理员才能设置会话记录。
要启用会话记录,您必须:
确保已在飞网中配置了Gmzta SSH。
在您的飞网中部署一个会话记录节点。
在访问控制策略中通过在每个 SSH 策略中添加
recorder:["tag:<tag-name>"]
字段,启动会话记录。
会话记录节点二进制文件将作为 Docker 容器运行。因为该二进制文件通过飞网作为节点加入您的网络,所以Docker主机不需要成为飞网网络的节点。应用程序监听端口 80 以接收会话记录,并提供一个可选的内置 Web 应用程序,用于在端口 443 上查看会话记录。
3.2 创建用于会话记录的标签和身份验证密钥
会话记录节点必须与一个标签相关联。我们建议您专门为 SSH 会话记录创建一个新的 NACP(访问控制策略) 标签。您可以通过在“控制面板”的“访问控制”页面中定义该标签。可参考使用NACP标签了解更多。
"tagOwners": {
"tag:recorder": [
"<tag-owner>"
]
}
在“控制面板”的“密钥设置”页面创建一个身份验证密钥。将您创建的新标签分配给此身份验证密钥。如果您的飞网启用了"设备批准",需使用预先批准的密钥。并确保将此身份验证密钥复制到剪贴板。
在您将部署会话记录节点容器的主机上,将 GM_TOKEN
环境变量设置为身份验证密钥。这仅在首次启用会话记录应用程序时需要。
export GM_TOKEN=<gmkey-auth-xxxx>
3.3 部署会话记录节点
会话记录节点以 Docker 容器的形式启动。
docker pull gmzta/fw_recoder:latest
要运行容器并将会话记录保存到 Docker 主机的文件系统。
docker run -d --restart=always -e GM_TOKEN=$GM_TOKEN -e GM_HOSTNAME=recorder -v ./gmzta_var_lib:/var/lib -v ./Recorder:/app/Recorder gmzta/fw_recoder:latest
必需的参数:
-e GM_TOKEN= 指定的飞网登录身份验证密钥
可选的参数:
-e GM_HOSTNAME:指定会话记录节点的主机名。如果未指定,则默认为 "recorder"。
4 在NACP中启用会话记录
您可以在访问控制策略的Gmzta SSH的规则中添加一个recorder
的字段启用会话记录功能。
默认情况下,当为某个SSH访问规则启动会话记录时,飞网将允许 Gmzta SSH会话进行连接,即使会话记录节点无法访问时也可以建立SSH会话连接。当添加enforceRecorder
字段,并将其设置为true
时,这将拒绝或终止在会话记录节点无法访问时,应记录的任何Gmzta SSH会话。
如果SSH允许两个或多个连接SSH访问规则,并且访问规则中enforceRecorder
字段指定了不同的值,飞网将遵循访问控制策略文件中第一个指定enforceRecorder
的值。
NACP中启用会话记录的示例:
{
"action": "check",
"src": [list-of-sources],
"dst": [list-of-destinations],
"users": [list-of-ssh-users],
"recorder": ["tag:<tag-name>"], // 指定添加到会话记录节点的标签。
"enforceRecorder": false, // 可选字段;默认为false,会话记录节点不可用时,是否允许Gmzta SSH会话进行连接。
}
注:如果
enforceRecorder
是true
,并且在访问控制策略中启用会话记录后会话记录节点不可用时,则将拒绝Gmzta SSH会话,所有的Gmzta SSH会话将被终止。当会话记录节点不可访问并设置"enforceRecorder": true
时想要建立Gmzta SSH会话连接,请删除访问控制策略中的recorder
字段。
5 禁用会话记录
5.1 禁用特定的Gmzta SSH访问控制规则的会话记录
要禁用特定 SSH 访问规则的 Gmzta SSH 会话记录,请从 SSH 访问控制规则中删除recorder
字段,记录节点将不再记录符合该规则的 SSH 会话。
5.2 禁用所有的Gmzta SSH会话的记录
要禁用所有 Gmzta SSH 会话的记录,可通过两种方式操作。
在访问控制策略文件中删除所有 Gmzta SSH 访问控制规则中的
recorder
字段。在“控制面板”的“设备详情”页面中删除会话记录节点。
6 查看会话记录的信息
会话记录节点会以开启飞网服务的形式展示会话记录信息,其他节点通过访问会话记录节点共享的服务查看会话记录的信息 (注:需开启HTTPS、UniDNS的功能)。