第31章 RHEL システムロールを使用したセッション記録用システムの設定
tlog
RHEL システムロールを使用して、管理対象ノード上のターミナルセッションアクティビティーを自動的に記録および監視します。SSSD
サービスを使用して、ユーザーまたはユーザーグループごとに記録を行うように設定できます。
tlog RHEL システムロールのセッション記録ソリューションは、次のコンポーネントで構成されています。
-
tlog
ユーティリティー - System Security Services Daemon (SSSD)
- オプション: Web コンソールインターフェイス
31.1. tlog
RHEL システムロールを使用して個々のユーザーのセッション記録を設定する
Ansible Playbook を準備して適用し、RHEL システムを設定して、セッション記録データを systemd
ジャーナルに記録します。
これにより、特定のユーザーがコンソールにログインしたとき、または SSH 経由でログインしたときに、そのユーザーのセッション中、ユーザーのターミナルの出力と入力を記録できるようになります。
この Playbook は、ユーザーのログインシェルとして機能するターミナルセッション I/O ロギングプログラムである tlog-rec-session
をインストールします。このロールは SSSD 設定ドロップファイルを作成します。このファイルはログインシェルを使用するユーザーとグループを定義します。さらに、cockpit
パッケージがシステムにインストールされている場合、Playbook は cockpit-session-recording
パッケージもインストールします。これは Cockpit
モジュールの 1 つであり、Web コンソールインターフェイスでの記録の表示と再生を可能にするものです。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Deploy session recording hosts: managed-node-01.example.com tasks: - name: Enable session recording for specific users ansible.builtin.include_role: name: rhel-system-roles.tlog vars: tlog_scope_sssd: some tlog_users_sssd: - <recorded_user>
tlog_scope_sssd: <value>
-
some
値は、all
またはnone
ではなく、特定のユーザーとグループのみを記録することを指定します。 tlog_users_sssd:: <list_of_users>
- セッションを記録するユーザーの YAML リスト。ユーザーが存在しない場合、このロールによってユーザーが追加されないことに注意してください。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
SSSD ドロップインファイルの内容を確認します。
# cd /etc/sssd/conf.d/sssd-session-recording.conf
Playbook に設定したパラメーターがファイルに含まれていることが確認できます。
- セッションを記録するユーザーとしてログインし、いくつかの操作を実行してからログアウトします。
root
ユーザーとして以下を実行します。記録されたセッションのリストを表示します。
# journalctl _COMM=tlog-rec-sessio Nov 12 09:17:30 managed-node-01.example.com -tlog-rec-session[1546]: {"ver":"2.3","host":"managed-node-01.example.com","rec":"07418f2b0f334c1696c10cbe6f6f31a6-60a-e4a2","user":"demo-user",... ...
次のステップでは、
rec
(レコーディング ID) フィールドの値が必要になります。_COMM
フィールドの値は 15 文字の制限により短縮されることに注意してください。セッションを再生します。
# tlog-play -r journal -M TLOG_REC=<recording_id>
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.tlog/README.md
ファイル -
/usr/share/doc/rhel-system-roles/tlog/
ディレクトリー