Red Hat Training

A Red Hat training course is available for RHEL 8

第 4 章 配置系统以使用 tlog RHEL 系统角色记录会话记录

使用 tlog RHEL 系统角色,您可以使用 Red Hat Ansible Automation Platform 配置系统以便在 RHEL 上进行终端会话记录。

4.1. tlog 系统角色

您可以使用 tlog RHEL 系统角色为 RHEL 上终端会话记录配置 RHEL 系统。tlog 软件包及其关联的 Web 控制台会话播放器为您提供了记录和回放用户终端会话的能力。

您可以将记录配置为通过 SSSD 服务为每个用户或用户组进行。所有终端输入和输出都会捕获并保存在系统日志中基于文本的格式。

其它资源

  • 有关 RHEL 中会话记录的详情,请参阅 记录会话

4.2. tlog 系统角色的组件和参数

Session Recording 的解决方案由以下组件组成:

  • tlog 工具
  • 系统安全性服务守护进程(SSSD)
  • 可选: Web 控制台界面

用于 tlog RHEL 系统角色的参数有:

角色变量描述

tlog_use_sssd (default: yes)

使用 SSSD 配置会话记录,这是管理记录的用户或组的首选方法

tlog_scope_sssd (default: none)

配置 SSSD 记录范围 - all / some / none

tlog_users_sssd (default: [])

要记录的用户的 YAML 列表

tlog_groups_sssd (default: [])

要记录的组的 YAML 列表

  • 有关使用的参数 tlog 以及 tlog 系统角色的附加信息,请参考 /usr/share/ansible/roles/rhel-system-roles.tlog/README.md 文件。

4.3. 部署 tlog RHEL 系统角色

按照以下步骤准备和应用 Ansible playbook 以配置 RHEL 系统,将数据记录到 systemd 日志中。

先决条件

  • 您已设置了从控制节点访问系统角色的目标系统(tlog 系统角色在其中配置的系统)的 SSH 密钥。
  • 您有一个控制节点,这是 Ansible Engine 配置其他系统的系统。
  • 您已在控制节点上安装了 Red Hat Ansible Engine,您要从该节点上运行 playbook。
  • 已在要从其中运行 playbook 的控制节点上安装了 rhel-system-roles 软件包。
  • 您至少有一个要配置 tlog 系统角色的系统。您不必在要部署 tlog 解决方案的系统中安装 Red Hat Ansible Automation Platform。

流程

  1. 使用以下内容 playbook.yml 创建新文件:

    ---
    - name: Deploy session recording
      hosts: all
      vars:
        tlog_scope_sssd: some
        tlog_users_sssd:
          - recordeduser
    
      roles:
        - rhel-system-roles.tlog

    其中,

    • tlog_scope_sssd:

      • some 指定您只记录某些用户和组群,不是 allnone
    • tlog_users_sssd:

      • recordeduser 指定要记录会话的用户。请注意,这不会为您添加用户。您必须自行设置该用户。
  2. 另外,还可以验证 playbook 语法。

    # ansible-playbook --syntax-check playbook.yml
  3. 在清单文件上运行 playbook:

    # ansible-playbook -i IP_Address /path/to/file/playbook.yml -v

playbook 会在您指定的系统中安装 tlog 角色。它还会创建一个 SSSD 配置文件,供您定义的用户和组使用。SSSD 解析并读取这些用户和组以 shell 用户身份覆盖 tlog 会话。另外,如果 cockpit 软件包安装在系统中,playbook 也会安装 cockpit-session-recording 软件包,它是一个 Cockpit 模块,供您在 web 控制台界面中查看和播放记录。

验证步骤

要验证 SSSD 配置文件是否在系统中创建了,请执行以下步骤:

  1. 进入创建 SSSD 配置丢弃文件的文件夹:

    # cd /etc/sssd/conf.d
  2. 检查文件内容:

    # cat /etc/sssd/conf.d/sssd-session-recording.conf

您可以看到该文件包含您在 playbook 中设置的参数。

4.4. 部署 tlog RHEL 系统角色以排除组或用户列表

您可以使用 RHEL 上的 tlog 系统角色支持 SSSD 会话记录选项 exclude_usersexclude_groups。按照以下步骤准备并应用 Ansible playbook 来配置 RHEL 系统,以排除用户或组的会话记录并登录到 systemd 日志中。

先决条件

  • 您已设置了从控制节点访问要配置 tlog 系统角色的目标系统的 SSH 密钥。
  • 您有一个控制节点,这是 Red Hat Ansible Engine 配置其他系统的系统。
  • 您已在控制节点上安装了 Red Hat Ansible Engine,您要从该节点上运行 playbook。
  • 已在控制节点上安装了 rhel-system-roles 软件包。
  • 您至少有一个系统要配置 tlog 系统角色。

    您不必在要部署 tlog 解决方案的系统中安装 Red Hat Ansible Automation Platform。

流程

  1. 使用以下内容 playbook.yml 创建新文件:

    ---
    - name: Deploy session recording excluding users and groups
      hosts: all
      vars:
        tlog_scope_sssd: all
        tlog_exclude_users_sssd:
          - jeff
          - james
        tlog_exclude_groups_sssd:
          - admins
    
      roles:
        - rhel-system-roles.tlog

    其中,

    • tlog_scope_sssd:

      • all: 指定您要记录所有用户和组。
    • tlog_exclude_users_sssd:

      • 用户名:指定您要从会话记录中排除的用户的用户名。
    • tlog_exclude_groups_sssd:

      • admins 指定您要从会话记录中排除的组。
  2. (可选)验证 playbook 语法 ;

    # ansible-playbook --syntax-check playbook.yml
  3. 在清单文件上运行 playbook:

    # ansible-playbook -i IP_Address /path/to/file/playbook.yml -v

playbook 会在您指定的系统中安装 tlog 软件包。它还创建一个 /etc/sssd/conf.d/sssd-session-recording.conf SSSD 配置文件,用户和组可使用该文件,但您定义的排除文件除外。SSSD 解析并读取这些用户和组,以 shell 用户身份与 tlog 会话重叠。另外,如果 cockpit 软件包安装在系统中,playbook 也会安装 cockpit-session-recording 软件包,它是一个 Cockpit 模块,供您在 web 控制台界面中查看和播放记录。

注意

您无法记录 exclude_users 列表中列出的用户的会话,或者它们是 exclude_groups 列表中组的成员。

验证步骤

要验证 SSSD 配置文件是否在系统中创建了,请执行以下步骤:

  1. 进入创建 SSSD 配置丢弃文件的文件夹:

    # cd /etc/sssd/conf.d
  2. 检查文件内容:

    # cat sssd-session-recording.conf

您可以看到该文件包含您在 playbook 中设置的参数。

其它资源

4.5. 使用在 CLI 中部署的 tlog 系统角色记录会话

当您在指定的系统中部署了 tlog 系统角色,就可以使用命令行界面(CLI)记录用户终端会话。

先决条件

  • 您已在目标系统中部署了 tlog 系统角色。
  • SSSD 配置丢弃文件在文件 /etc/sssd/conf.d 中创建。

流程

  1. 创建一个用户并为这个用户分配密码:

    # useradd recordeduser
    # passwd recordeduser
  2. 以您刚刚创建的用户身份登录到该系统:

    # ssh recordeduser@localhost
  3. 当系统提示您输入 yes 或 no 进行身份验证时请输入 "yes"。
  4. 插入 recorduser 的密码。

    系统提示一条信息通知您的会话被记录。

    ATTENTION! Your session is being recorded!
  5. 记录完会话后,请键入:

    # exit

    系统从用户注销并关闭与本地主机的连接。

用户会话会被记录,并被保存,您可以使用 journal 进行播放。

验证步骤

要在日志中查看您记录的会话,请执行以下步骤:

  1. 运行以下命令:

    # journalctl -o verbose -r
  2. 搜索 tlog-rec 记录日志条目中的 MESSAGE 字段。

    # journalctl -xel _EXE=/usr/bin/tlog-rec-session

4.6. 使用 CLI 监视记录的会话

您可以使用命令行界面(CLI)从日志中执行用户会话记录。

先决条件

流程

  1. 在 CLI 终端中,播放用户会话记录:

    # journalctl -o verbose -r
  2. 搜索 tlog 记录:

    $ /tlog-rec

    您可以查看详情,例如:

    • 用户会话记录的用户名
    • out_txt 字段是记录的会话的原始输出编码
    • 标识符号 TLOG_REC=ID_number
  3. 复制标识符号 TLOG_REC=ID_number
  4. 使用标识符号 TLOG_REC=ID_number 回放记录。

    # tlog-play -r journal -M TLOG_REC=ID_number

您可以看到记录的用户会话被回放。