検索

セッションの録画

download PDF
Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 8 でのセッションの録画ソリューションの使用

Red Hat Customer Content Services

概要

本書は、Red Hat Enterprise Linux 8 の RHEL Web コンソール埋め込みプレーヤーを使用した、tlog をベースとしたセッション録画ソリューションの使用を説明します。

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。

Jira からのフィードバック送信 (アカウントが必要)

  1. Jira の Web サイトにログインします。
  2. 上部のナビゲーションバーで Create をクリックします。
  3. Summary フィールドにわかりやすいタイトルを入力します。
  4. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
  5. ダイアログの下部にある Create をクリックします。

第1章 RHEL でセッションの録画を開始

1.1. RHEL でセッションの録画

Red Hat Enterprise Linux 8 のセッションの録画ソリューションは、tlog パッケージに基づいています。tlog パッケージと関連する Web コンソールセッションプレーヤーを使用して、ユーザーの端末セッションを録画および再生できます。SSSD サービスを介して、ユーザーごと、またはユーザーグループごとに録画を行うように設定できます。端末の入出力はすべて収集され、テキスト形式でシステムジャーナルに保存されます。

重要

raw パスワードやその他の機密情報を傍受しないように、端末入力の録画はデフォルトで無効になっています。端末入力の録画をオンにすると、入力したすべてのパスワードがプレーンテキストでキャプチャーされます。

このソリューションを使用すると、セキュリティーの影響を受けるシステムでユーザーセッションを監査できます。また、セキュリティー違反が発生した場合は、フォレンジック分析の一環として録画したセッションを確認できます。管理者は、RHEL 8 システムでセッションの録画をローカルに設定できます。録画されたセッションは、Web コンソールインターフェイス、または端末で tlog-play コマンドを使用して確認できます。

1.2. セッションの録画用コンポーネント

セッションの録画ソリューションには、tlog ユーティリティー、SSSD サービス、および Web コンソールの埋め込みユーザーインターフェイスという 3 つの主要コンポーネントがあります。

tlog
tlog ユーティリティーは、端末の入出力 (I/O) を録画および再生するプログラムです。ユーザーの端末とユーザーシェルの間に tlog-rec-session ツールを挿入し、JSON メッセージとして通過したすべてのものをログに記録します。
SSSD
SSSD (System Security Services Daemon) は、リモートディレクトリーと認証メカニズムへのアクセスを管理する一連のデーモンを提供します。セッションの録画を設定する際に、SSSD を使用して、録画するユーザーまたはユーザーグループを指定できます。この設定は、コマンドラインインターフェイス (CLI) または RHEL 8 Web コンソールインターフェイスから設定できます。
RHEL 8 Web コンソール埋め込みインターフェイス
セッションの録画ページは、RHEL 8 Web コンソールインターフェイスの一部で、録画したセッションの管理に使用できます。
重要

録画したセッションにアクセスするには、管理者権限が必要です。

1.3. セッションの録画の制限

これは、セッションの録画ソリューションにおける最も重要な制限です。

  • root ユーザーは録画プロセスを回避できるため、root ユーザーの録画は信頼できません。
  • セッションの録画は、Gnome 3 グラフィカルセッションで端末を録画しません。グラフィカルセッションには全端末に監査セッション ID が 1 つあり、tlog は端末を区別できず、録画が繰り返し行われなくなるため、グラフィカルセッションでの端末の録画はサポートされません。
  • セッションの録画が journal にログを記録するように設定されると、録画したユーザーは、システムジャーナルまたは /var/log/messages の表示結果を録画する動作を確認できます。表示によりログが生成され、画面に出力されるため、セッションの録画によりこのアクションが録画され、さらに録画が生成されるため、出力が繰り返しあふれます。

    この問題を回避するには、以下のコマンドを使用します。

    # journalctl -f | grep -v 'tlog-rec-session'

    出力を制限するように tlog を設定することもできます。詳細は、man ページの tlog-rec または tlog-rec-session を参照してください。

  • リモートアクセスコマンドを実行するユーザーを録画するには、ターゲットホストでそのユーザーのセッションの録画を設定する必要があります。たとえば、以下のリモートアクセスコマンドを録画するには、client ホストで admin ユーザーのセッションの録画を設定する必要があります。

    ssh admin@client rm -f /some/file
  • journal は、RHEL 8 ではデフォルトでインメモリーに保存されるため、すべての録画は再起動時に失われます。録画をエクスポートする場合は、Exporting recorded sessions to a file を参照してください。

第2章 RHEL Web コンソールへのセッションの録画のデプロイ

本セクションでは、Red Hat Enterprise Linux Web コンソールにセッションの録画ソリューションをデプロイする方法を説明します。

セッションの録画ソリューションをデプロイするには、以下のパッケージをインストールする必要があります。

  • tlog
  • SSSD
  • cockpit-session-recording

2.1. tlog のインストール

tlog パッケージをインストールします。

手順

  • 以下のコマンドを使用します。

    # yum install tlog

2.2. cockpit-session-recording のインストール

基本的な Web コンソールパッケージは、デフォルトで Red Hat Enterprise Linux 8 に同梱されます。セッションの録画ソリューションを使用できるようにするには、cockpit-session-recording パッケージをインストールして、システムで Web コンソールを起動または有効にする必要があります。

手順

  1. cockpit-session-recording をインストールします。

    # yum install cockpit-session-recording
  2. システムで Web コンソールを起動または有効にします。

    # systemctl start cockpit.socket
    # systemctl enable cockpit.socket

    あるいは、以下のような場合もあります。

    # systemctl enable cockpit.socket --now

2.3. CLI からの SSSD を使用したユーザーおよびグループのセッションの録画の有効化

SSSD を使用して認証する場合は、コマンドラインからユーザーおよびグループのセッションの録画を設定できます。

手順

  1. sssd-session-recording.conf 設定ファイルを開きます。

    # vi /etc/sssd/conf.d/sssd-session-recording.conf
    注記

    Web コンソールインターフェイスで設定ページを開くと、sssd-session-recording.conf ファイルが自動的に作成されます。

  2. セッションの録画の範囲を指定するには、scope オプションに以下のいずれかの値を入力します。

    • none は、セッションを録画しません。
    • some は、指定したセッションのみを録画します。
    • all は、すべてのセッションを録画します。
  3. (オプション): スコープを some として設定する場合は、ユーザーとグループの名前をコンマ区切りのリストに追加します。
  4. SSSD プロファイルを有効にするには、次のコマンドを実行します。

    # authselect select sssd with-files-domain

例2.1 SSSD の設定

次の例では、example1 ユーザー、example2 ユーザー、および examples グループでセッションの録画を有効にします。

[session_recording]
scope = some
users = example1, example2
groups = examples

2.4. Web UI で SSSD を使用したユーザーおよびグループのセッションの録画の有効化

SSSD を認証に使用する場合は、RHEL 8 Web コンソールでユーザーおよびグループにセッションの録画を設定できます。

手順

  1. localhost:9090 を入力するか、お使いの IP アドレス <IP_ADDRESS>:9090 をブラウザーに入力して、RHEL 8 Web コンソールにローカルに接続します。
  2. RHEL 8 Web コンソールにログインします。

    重要

    録画したセッションを表示するには、管理者権限が必要です。

  3. 左側のメニューのセッションの録画ページに移動します。
  4. 右上の歯車ボタンをクリックします。

    SSSD 設定ボタン
  5. SSSD 設定テーブルにパラメーターを設定します。ユーザーおよびグループのリストをコンマで区切ります。

    例2.2 SSSD を使用して録画したユーザーの設定

    SSSD の設定

2.5. SSSD を使用しないユーザー向けセッションの録画の有効化

重要

Red Hat は、このオプションを推奨しません。録画するユーザーを、コマンドラインインターフェイスまたは RHEL 8 Web コンソールから直接 SSSD で設定することが推奨されます。

ユーザーのシェルを手動で変更することを選択すると、作業シェルは tlog-rec-session.conf 設定ファイルに記載されているものになります。

録画したユーザーまたはユーザーグループの指定に SSSD を使用しない場合は、/usr/bin/tlog-rec-session に録画するユーザーのシェルを次のように直接変更できます。

  1. シェルを変更します。

    # sudo usermod -s /usr/bin/tlog-rec-session <user_name>

2.6. 録画したセッションのファイルへのエクスポート

録画したセッションおよびそのログをエクスポートして、コピーできます。

次の手順では、録画したセッションをローカルシステムにエクスポートする方法を説明します。

前提条件

  • systemd-journal-remote パッケージをインストールします。

    # yum install systemd-journal-remote

手順

  1. `/tmp/dir などのエクスポートされた録画セッションを保存するディレクトリーを作成します。

    # mkdir /tmp/dir
  2. journalctl -o export コマンドを実行して、tlog 録画に関連するシステムジャーナルエントリーをエクスポートします。

    # journalctl _COMM=tlog-rec _COMM=tlog-rec-sessio -o export | /usr/lib/systemd/systemd-journal-remote -o /tmp/dir/example.journal -
    注記

    COMM=tlog-rec-sessio COMM 名は、15 文字の制限により短縮されます。

第3章 録画したセッションの再生

録画したセッションを再生する方法は 2 つあります。

  • tlog-play ツール
  • RHEL 8 Web コンソール (Cockpit とも呼ばれる)

3.1. tlog-play で再生

tlog-play ツールを使用して、端末でセッションの録画を再生できます。tlog-play ツールは、tlog-rec ツールで録画した端末の入出力を再生するプログラムです。これは、そのターミナルの録画を再生しますが、録画したファイルのサイズを変更することはできません。このため、再生ターミナルが適切な再生を行うには、録画した端末のサイズと一致させる必要があります。tlog-play ツールは、/etc/tlog/tlog-play.conf 設定ファイルからパラメーターを読み込みます。これらのパラメーターは、man ページの tlog-play に記載されているコマンドラインオプションで上書きできます。

3.2. Web コンソールで再生

RHEL 8 Web コンソールには、録画したセッションを管理するインターフェイスがあります。録画したセッションのリストがあるセッションの録画ページから直接、確認するセッションを選択できます。

例3.1 録画したセッションリストの例

録画したセッションリスト

Web コンソールプレーヤーは、ウィンドウのサイズ変更に対応します。

3.3. tlog-play で録画したセッションの再生

エクスポートされたログファイルまたは Systemd Journal からセッションの録画を再生できます。

ファイルから再生

セッションは、録画中および録画後に、ファイルから再生できます。

# tlog-play --reader=file --file-path=tlog.log

ジャーナルからの再生

通常、-M (または --journal-match) オプション、-S (または --journal-since) オプション、および -U (または --journal-until) オプションを使用し、ジャーナルの一致とタイムスタンプの制限を使用して、ジャーナルログエントリーを選択して再生できます。

ただし、実際には、ジャーナルからの再生は、通常、TLOG_REC ジャーナルフィールドに対する 1 つの一致で行われます。TLOG_REC のフィールドには、ログに記録した JSON データからコピーした rec フィールドが含まれます。これは、録画におけるホスト固有の ID です。

ID は、TLOG_REC フィールド値から直接取得するか、JSON の rec フィールドの MESSAGE フィールドから取得できます。どちらのフィールドも、tlog-rec-session ツールから送信されるログメッセージの一部です。

手順

  1. 次のコマンドを実行すると、録画全体を再生できます。
# tlog-play -r journal -M TLOG_REC=<your-unique-host-id>

詳細な手順およびドキュメントは、man ページの tlog-play を参照してください。

第4章 RHEL システムロールを使用したセッション記録用システムの設定

tlog RHEL システムロールを使用して、管理対象ノード上のターミナルセッションアクティビティーを自動的に記録および監視します。SSSD サービスを使用して、ユーザーまたはユーザーグループごとに記録を行うように設定できます。

tlog RHEL システムロールのセッション記録ソリューションは、次のコンポーネントで設定されています。

  • tlog ユーティリティー
  • System Security Services Daemon (SSSD)
  • オプション: Web コンソールインターフェイス

4.1. tlog RHEL システムロールを使用して個々のユーザーのセッション記録を設定する

Ansible Playbook を準備して適用し、RHEL システムがセッション記録データを systemd ジャーナルに記録するように設定します。

これにより、特定のユーザーのセッション中、ユーザーがコンソールにログインしたとき、または SSH 経由でログインしたときに、そのユーザーの端末出力と入力を記録できるようになります。

Playbook は、ユーザーのログインシェルとして機能するターミナルセッション I/O ロギングプログラム である tlog-rec-session をインストールします。このロールは SSSD 設定ドロップファイルを作成し、このファイルはログインシェルを使用するユーザーとグループを定義します。さらに、cockpit パッケージがシステムにインストールされている場合、Playbook は cockpit-session-recording パッケージもインストールします。これは Cockpit モジュールの 1 つであり、Web コンソールインターフェイスでの記録の表示と再生を可能にするものです。

前提条件

手順

  1. 次の内容を含む 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 リスト。ロールでは、ユーザーが存在しない場合はユーザーが追加されないことに注意してください。
  2. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

検証

  1. SSSD ドロップインファイルの内容を確認します。

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

    Playbook に設定したパラメーターがファイルに含まれていることが確認できます。

  2. セッションを記録するユーザーとしてログインします。
  3. 記録されたセッションを再生します

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.tlog/README.md ファイル
  • /usr/share/doc/rhel-system-roles/tlog/ ディレクトリー

4.2. tlog RHEL システムロールを使用して、特定のユーザーとグループをセッション記録から除外する

tlog RHEL システムロールの tlog_exclude_users_sssd および tlog_exclude_groups_sssd ロール変数を使用して、ユーザーまたはグループのセッションが systemd ジャーナルに記録およびログ記録されないように除外できます。

Playbook は、ユーザーのログインシェルとして機能するターミナルセッション I/O ロギングプログラム である tlog-rec-session をインストールします。このロールは SSSD 設定ドロップファイルを作成し、このファイルはログインシェルを使用するユーザーとグループを定義します。さらに、cockpit パッケージがシステムにインストールされている場合、Playbook は cockpit-session-recording パッケージもインストールします。これは Cockpit モジュールの 1 つであり、Web コンソールインターフェイスでの記録の表示と再生を可能にするものです。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    ---
    - name: Deploy session recording excluding users and groups
      hosts: managed-node-01.example.com
      tasks:
        - name: Exclude users and groups
          ansible.builtin.include_role:
            name: rhel-system-roles.tlog
          vars:
            tlog_scope_sssd: all
            tlog_exclude_users_sssd:
              - jeff
              - james
            tlog_exclude_groups_sssd:
              - admins
    tlog_scope_sssd: <value>
    all は、すべてのユーザーとグループを記録することを指定します。
    tlog_exclude_users_sssd: <user_list>
    セッション記録から除外するユーザー名の YAML リスト。
    tlog_exclude_groups_sssd: <group_list>
    セッション記録から除外するグループの YAML リスト。
  2. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

検証

  1. SSSD ドロップインファイルの内容を確認します。

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

    Playbook に設定したパラメーターがファイルに含まれていることが確認できます。

  2. セッションを記録するユーザーとしてログインします。
  3. 記録されたセッションを再生します

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.tlog/README.md ファイル
  • /usr/share/doc/rhel-system-roles/tlog/ ディレクトリー

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.