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会话进行连接。
} 

注:如果enforceRecordertrue,并且在访问控制策略中启用会话记录后会话记录节点不可用时,则将拒绝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 会话的记录,可通过两种方式操作。

  1. 在访问控制策略文件中删除所有 Gmzta SSH 访问控制规则中的recorder 字段。

  2. 在“控制面板”的“设备详情”页面中删除会话记录节点。

6 查看会话记录的信息

    会话记录节点会以开启飞网服务的形式展示会话记录信息,其他节点通过访问会话记录节点共享的服务查看会话记录的信息 (注:需开启HTTPS、UniDNS的功能)。

上次更新: