Red Hat Training
A Red Hat training course is available for RHEL 8
セッションの録画
Red Hat Enterprise Linux 8 でのセッションの録画ソリューションの使用
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある 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 コンソールを起動または有効にする必要があります。
手順
cockpit-session-recording
をインストールします。# yum install cockpit-session-recording
システムで Web コンソールを起動または有効にします。
# systemctl start cockpit.socket # systemctl enable cockpit.socket
または、以下を実行します。
# systemctl enable cockpit.socket --now
2.3. CLI からの SSSD を使用したユーザーおよびグループのセッションの録画の有効化
SSSD を使用して認証する場合は、コマンドラインからユーザーおよびグループのセッションの録画を設定できます。
手順
sssd-session-recording.conf
設定ファイルを開きます。# vi /etc/sssd/conf.d/sssd-session-recording.conf
注記Web コンソールインターフェイスで設定ページを開くと、
sssd-session-recording.conf
ファイルが自動的に作成されます。- セッションの録画の範囲を指定するには、scope オプションに以下のいずれかの値を入力します。
-
none
は、セッションを録画しません。 -
some
は、指定したセッションのみを録画します。 all
は、すべてのセッションを録画します。-
(オプション): スコープを
some
として設定する場合は、ユーザーとグループの名前をコンマ区切りのリストに追加します。
-
(オプション): スコープを
例2.1 SSSD の設定
次の例では、example1
ユーザー、example2
ユーザー、および examples
グループでセッションの録画を有効にします。
[session_recording] scope = some users = example1, example2 groups = examples
2.4. Web UI で SSSD を使用したユーザーおよびグループのセッションの録画の有効化
SSSD を認証に使用する場合は、RHEL 8 Web コンソールでユーザーおよびグループにセッションの録画を設定できます。
手順
-
localhost:9090
を入力するか、お使いの IP アドレス<IP_ADDRESS>:9090
をブラウザーに入力して、RHEL 8 Web コンソールにローカルに接続します。 RHEL 8 Web コンソールにログインします。
重要録画したセッションを表示するには、管理者権限が必要です。
- 左側のメニューのセッションの録画ページに移動します。
右上の歯車ボタンをクリックします。
SSSD 設定テーブルにパラメーターを設定します。ユーザーおよびグループのリストをコンマで区切ります。
例2.2 SSSD を使用して録画したユーザーの設定
2.5. SSSD を使用しないユーザー向けセッションの録画の有効化
Red Hat は、このオプションを推奨しません。録画するユーザーを、コマンドラインインターフェイスまたは RHEL 8 Web コンソールから直接 SSSD で設定することが推奨されます。
ユーザーのシェルを手動で変更することを選択すると、作業シェルは tlog-rec-session.conf
設定ファイルに記載されているものになります。
録画したユーザーまたはユーザーグループの指定に SSSD を使用しない場合は、/usr/bin/tlog-rec-session
に録画するユーザーのシェルを次のように直接変更できます。
シェルを変更します。
# sudo usermod -s /usr/bin/tlog-rec-session <user_name>
2.6. 録画したセッションのファイルへのエクスポート
録画したセッションおよびそのログをエクスポートして、コピーできます。
次の手順では、録画したセッションをローカルシステムにエクスポートする方法を説明します。
前提条件
systemd-journal-remote
パッケージをインストールします。# yum install systemd-journal-remote
手順
`/tmp/dir などのエクスポートされた録画セッションを保存するディレクトリーを作成します。
# mkdir /tmp/dir
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
ツールから送信されるログメッセージの一部です。
手順
- 次のコマンドを実行すると、録画全体を再生できます。
# tlog-play -r journal -M TLOG_REC=<your-unique-host-id>
詳細な手順およびドキュメントは、man ページの tlog-play
を参照してください。
第4章 tlog
RHEL システムロールを使用したセッションの記録用のシステムの設定
tlog
RHEL システムロールを使用すると、Red Hat Ansible Automation Platform を使用して RHEL で端末セッションを録画するようにシステムを設定できます。
4.1. tlog
システムロール
tlog
RHEL システムロールを使用して、RHEL での端末セッションの録画用に RHEL システムを設定できます。
SSSD
サービスを使用して、ユーザーごと、またはユーザーグループごとに録画を行うように設定できます。
関連情報
- RHEL でのセッションの録画に関する詳細は、Recording Sessions を参照してください。
4.2. tlog
システムロールのコンポーネントおよびパラメーター
セッションの録画ソリューションには、以下のコンポーネントがあります。
-
tlog
ユーティリティー - System Security Services Daemon (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 キーを設定している。 -
tlog
システムロールを設定するシステムが 1 つ以上ある。 - Ansible Core パッケージがコントロールマシンにインストールされている。
-
rhel-system-roles
パッケージがコントロールマシンにインストールされている。
手順
以下の内容を含む新しい
playbook.yml
ファイルを作成します。--- - name: Deploy session recording hosts: all vars: tlog_scope_sssd: some tlog_users_sssd: - recorded-user roles: - rhel-system-roles.tlog
詳細は以下のようになります。
tlog_scope_sssd
:-
some
は、all
またはnone
ではなく、特定のユーザーおよびグループのみを録画することを指定します。
-
tlog_users_sssd
:-
recorded-user
は、セッションを録画するユーザーを指定します。ただし、ユーザーは追加されない点に留意してください。ユーザーを独自に設定する必要があります。
-
オプション: Playbook の構文を確認します。
# ansible-playbook --syntax-check playbook.yml
インベントリーファイルで Playbook を実行します。
# ansible-playbook -i IP_Address /path/to/file/playbook.yml -v
その結果、Playbook は指定したシステムに tlog
RHEL システムロールをインストールします。このロールには、ユーザーのログインシェルとして機能するターミナルセッション I/O ロギングプログラムである tlog-rec-session
が含まれます。また、定義したユーザーおよびグループで使用できる SSSD 設定ドロップファイルを作成します。SSSD は、これらのユーザーとグループを解析して読み取り、ユーザーシェルを tlog-rec-session
に置き換えます。さらに、cockpit
パッケージがシステムにインストールされている場合、Playbook は cockpit-session-recording
パッケージもインストールします。これは、Web コンソールインターフェイスで録画を表示および再生できるようにする Cockpit
モジュールです。
検証手順
システムで SSSD 設定ドロップファイルが作成されることを確認するには、以下の手順を実行します。
SSSD 設定ドロップファイルが作成されるフォルダーに移動します。
# cd /etc/sssd/conf.d
ファイルの内容を確認します。
# cat /etc/sssd/conf.d/sssd-session-recording.conf
Playbook に設定したパラメーターがファイルに含まれていることが確認できます。
4.4. グループまたはユーザーの一覧を除外するための tlog
RHEL システムロールのデプロイ
tlog
システムロールを使用すると、SSSD セッションの録画設定オプション exclude_users
および exclude_groups
をサポートできます。以下の手順に従って、Ansible Playbook を準備および適用し、ユーザーまたはグループがセッションを録画して systemd ジャーナルにロギングしないように RHEL システムを設定します。
前提条件
-
コントロールノードから
tlog
システムロールを設定するターゲットシステムへアクセスするための SSH キーを設定している。 -
tlog
システムロールを設定するシステムが 1 つ以上ある。 - Ansible Core パッケージがコントロールマシンにインストールされている。
-
rhel-system-roles
パッケージがコントロールマシンにインストールされている。
手順
以下の内容を含む新しい
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
:- User name: セッションの録画から除外するユーザーのユーザー名を指定します。
tlog_exclude_groups_sssd
:-
admins
は、セッションの録画から除外するグループを指定します。
-
オプションで Playbook の構文を確認します。
# ansible-playbook --syntax-check playbook.yml
インベントリーファイルで Playbook を実行します。
# ansible-playbook -i IP_Address /path/to/file/playbook.yml -v
その結果、Playbook は指定したシステムに tlog
RHEL システムロールをインストールします。このロールには、ユーザーのログインシェルとして機能するターミナルセッション I/O ロギングプログラムである tlog-rec-session
が含まれます。また、除外対象外のユーザーおよびグループが使用できる /etc/sssd/conf.d/sssd-session-recording.conf
SSSD 設定ドロップファイルを作成します。SSSD は、これらのユーザーとグループを解析して読み取り、ユーザーシェルを tlog-rec-session
に置き換えます。さらに、cockpit
パッケージがシステムにインストールされている場合、Playbook は cockpit-session-recording
パッケージもインストールします。これは、Web コンソールインターフェイスで録画を表示および再生できるようにする Cockpit
モジュールです。
検証手順
システムで SSSD 設定ドロップファイルが作成されることを確認するには、以下の手順を実行します。
SSSD 設定ドロップファイルが作成されるフォルダーに移動します。
# cd /etc/sssd/conf.d
ファイルの内容を確認します。
# cat sssd-session-recording.conf
Playbook に設定したパラメーターがファイルに含まれていることが確認できます。
関連情報
-
/usr/share/doc/rhel-system-roles/tlog/
ディレクトリーおよび/usr/share/ansible/roles/rhel-system-roles.tlog/
ディレクトリーを参照してください。 - Recording a session using the deployed Terminal Session Recording System Role in the CLI。
4.5. CLI でデプロイされた tlog
システムロールを使用したセッションの録画
指定したシステムに tlog
システムロールをデプロイしたら、コマンドラインインターフェイス (CLI) を使用してユーザー端末セッションを録画できます。
前提条件
-
ターゲットシステムに
tlog
システムロールをデプロイしている。 -
SSSD 設定ドロップファイルが
/etc/sssd/conf.d
ディレクトリーに作成されていること。Deploying the Terminal Session Recording RHEL System Role を参照してください。
手順
ユーザーを作成し、このユーザーにパスワードを割り当てます。
# useradd recorded-user # passwd recorded-user
作成したユーザーとしてシステムにログインします。
# ssh recorded-user@localhost
- 認証用に yes または no を入力するようにシステムが求めたら、yes を入力します。
recorded-user の パスワードを挿入します。
システムは、録画しているセッションに関するメッセージを表示します。
ATTENTION! Your session is being recorded!
セッションの録画が完了したら、以下を入力します。
# exit
システムはユーザーからログアウトし、ローカルホストとの接続を閉じます。
これにより、ユーザーセッションは録画および保存され、ジャーナルを使用して再生することができます。
検証手順
ジャーナルで録画したセッションを表示するには、以下の手順を実施します。
以下のコマンドを実行します。
# journalctl -o verbose -r
録画したジャーナルエントリー
tlog-rec
のMESSAGE
フィールドを検索します。# journalctl -xel _EXE=/usr/bin/tlog-rec-session
4.6. CLI を使用した録画したセッションの表示
コマンドラインインターフェイス (CLI) を使用して、ジャーナルからユーザーセッションの録画を再生できます。
前提条件
- ユーザーセッションを録画している。CLI でデプロイされた tlog システムロールを使用したセッションの録画 を参照してください。
手順
CLI 端末で、ユーザーセッションの録画を再生します。
# journalctl -o verbose -r
tlog
録画を検索します。$ /tlog-rec
以下のような詳細が表示されます。
- ユーザーセッションの録画用のユーザー名
-
out_txt
フィールド (録画したセッションの raw 出力エンコード) - 識別子番号 TLOG_REC=ID_number
- 識別子番号 TLOG_REC=ID_number をコピーします。
識別子番号 TLOG_REC=ID_number を使用して録画を再生します。
# tlog-play -r journal -M TLOG_REC=ID_number
これにより、ユーザーセッションの録画端末の出力が再生されることがわかります。