Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
端末のセッション記録
Search
Kazuo Moriwaka
September 30, 2019
Technology
0
5.4k
端末のセッション記録
Red Hat Enterprise Linux 8に追加された端末のセッション記録ソフトウェアであるtlog の基本的な使い方と、現状の制限を紹介するスライドです
Kazuo Moriwaka
September 30, 2019
Tweet
Share
More Decks by Kazuo Moriwaka
See All by Kazuo Moriwaka
システム全体の暗号化ポリシーをカスタマイズ
moriwaka
0
2.1k
Red Hat Enterprise Linux 9のリリースノートを読む前に知りたい最近のキーワードをまとめて復習
moriwaka
0
1.5k
odpからmp4を作る / odp2mp4
moriwaka
0
300
Red Hat Enterprise Linux Web Console を使う / cockpit-rhel8
moriwaka
0
790
systemdエッセンシャル / systemd-intro
moriwaka
46
12k
flatpak
moriwaka
0
2.5k
Red Hat Enterprise Linux 8 の セキュリティトピック
moriwaka
2
1.3k
システム全体の暗号化ポリシー設定
moriwaka
0
1.1k
Application Streamsと、yumのmodule
moriwaka
0
1.3k
Other Decks in Technology
See All in Technology
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
31k
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
300
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
120
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
190
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
MLOps の現場から
asei
6
630
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
160
UI State設計とテスト方針
rmakiyama
2
290
20241220_S3 tablesの使い方を検証してみた
handy
3
190
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
520
OpenShift Virtualizationのネットワーク構成を真剣に考えてみた/OpenShift Virtualization's Network Configuration
tnk4on
0
130
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1366
200k
The Invisible Side of Design
smashingmag
298
50k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Speed Design
sergeychernyshev
25
670
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
The World Runs on Bad Software
bkeepers
PRO
65
11k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Transcript
1 GENERAL Distribution 端末のセッション記録 2019 年 9 月 12 日
レッドハット株式会社 森若 和雄
2 GENERAL Distribution このスライドについて このスライドについて 対象 RHEL8 で端末セッションの記録がしたい人 RHEL8 の新機能として導入された
tlog について知りたい人 目的 tlog の基本的な使い方と、現状の制限を紹介する
3 GENERAL Distribution 概要 概要 • 端末のセッション記録とは何か ? • tlog
で何ができるか ? • tlog 利用時の注意点 • 参考資料
4 GENERAL Distribution 端末のセッション記録 とは何か?
5 GENERAL Distribution 端末のセッション記録 とは 端末のセッション記録 とは 端末への入出力をログなどに保存してあとで見られるように します 利用目的は作業の記録、監査証跡の保存、デモンストレーション
など RHEL 8 では端末のセッション記録機能が含まれます ログイン時に tlog-rec-session ユーティリティが動作して、端末への入出力をログ に記録します 制限 : Gnome 上の仮想端末セッションは自動記録できません Gnome( または任意のグラフィカルセッション ) ではデスクトップ全体で 1 つの セッションを共有するため端末を識別できず、自動的なセッション記録ができませ ん。
6 GENERAL Distribution セッション記録関連コマンドなど セッション記録関連コマンドなど ユーザが利用するコマンド • tlog-rec 端末入出力をログに出力する •
tlog-play ログを端末で再生する セッション開始時に自動で記録を開始する • tlog-rec-session 端末入出力をログに出力し、シェルを起動する • sssd ユーザやグループにより tlog-rec-session の起動有無を 決める Web UI • cockpit-session-recording Web Console(cockpit) にセッション記録の設定機能と 再生機能を提供するプラグイン
7 GENERAL Distribution セッション記録概要図 セッション記録概要図 sssd は条件を満たす ログイン時には tlog- rec-session
をシェルと して返す。 tlog-rec-session sssd login や sshd bash や zsh systemd-journal rsyslog fluentd など tlog-play cockpit tlog-rec-session は端 末入出力をログ出力す るよう接続した上で シェルを起動 login や sshd はユーザ 情報を sssd に問いあわせ ログにはセッション毎の ID がついているので抽出 して再生できる tlog-rec-session は 端末への入出力を json 形式でログへ出力
8 GENERAL Distribution tlog で何ができるか ?
9 GENERAL Distribution tlog でできること tlog でできること 各ユーザによるセッション記録と再生 ユーザが自分のセッション内で端末操作をファイルへ記録し、再生できる。 強制的なセッション記録
あるシステムにログインしたユーザが特定のグループに所属している場合、 端末セッションをログへ記録する。 ( 前述のとおり Gnome 環境では不可 ) ログ形式へ対応 独自ファイル (JSON 形式 ) だけでなく、 systemd-journal と syslog 形式に対応し ている。ログへ記録されたセッションも通常セッションと同様に再生できる。
10 GENERAL Distribution tlog と他のシステムを組み合わせるとできること tlog と他のシステムを組み合わせるとできること Red Hat Identity
Management などと組み合わせる Red Hat Identity Management や LDAP サーバなどでユーザとグループを集中管理す ると、誰のセッションを記録するか集中管理できる ElasticSearch などと組みあわせる tlog は JSON 形式でログを出力するため、 Elasticsearch などと組みあわせやすい。 各システムの tlog のログを Elasticsearch に保存できる。 Auditd と組みあわせる 従来からある auditd によるコマンド実行やファイルアクセスのログと組み合わせると 見るべき範囲を絞り込みやすくなる。
11 GENERAL Distribution tlog の使い方
12 GENERAL Distribution インストールと初期設定 インストールと初期設定 インストール # yum install tlog
cockpit-session-recording 初期設定 セッションの強制的な記録を行う場合は最低限 SSSD の設定が必要 SSSD の設定 /etc/sssd/conf.d/sssd-session-recording.conf scope=none ( 記録しない )/some( 条件により記録する )/all( 全部記録する ) users, groups( 記録対象ユーザ、グループの指定 ) tlog の設定 /etc/tlog/tlog-rec-session.conf tlog-rec-session の子プロセスとして起動する shell の種類 ログ出力先を syslog にするか、 journal にするか、その場合の priority など
13 GENERAL Distribution Cockpit での利用 (1/2) Cockpit での利用 (1/2) 1.
Session Recording を選択 2. Configuration で tlog-rec-session 設定 3. 時刻、文字列検索、ユーザー名で絞り込み
14 GENERAL Distribution Cockpit での利用 (2/2) Cockpit での利用 (2/2) 再生画面
再生、一時停止、再生 速度変更、拡大縮小 ログ検索、ログのメタ データなど
15 GENERAL Distribution SSSD の設定例 SSSD の設定例 /etc/sssd/conf.d/sssd-session-recording.conf 例 :
全て記録する [session_recording] scope=all users= groups= 例 : wheel グループのみ記録する [session_recording] scope=some users= groups=wheel 詳しくは man sssd-session-recording(5)
16 GENERAL Distribution tlog-rec-session の設定例 tlog-rec-session の設定例 /etc/tlog/tlog-rec-session.conf JSON フォーマットで設定をおこないます。
例 : shell として zsh を使う { ”shell”: “/usr/bin/zsh” } 例 : ユーザ入力も保存 ( パスワード打鍵なども記録されるので要注意 ) { ”log”: { ”input”: true } } 詳しくは man tlog-rec-session.conf(5)
17 GENERAL Distribution journal の中から TLOG_REC をみつける journal の中から TLOG_REC
をみつける journal に保存すると TLOG_REC が大事 TLOG_REC という属性でセッション毎に一意な ID が付与される journalctl の検索を利用して絞り込む $ journalctl -o json-pretty --output-fields TLOG_REC 検索条件 | grep TLOG_REC | uniq 検索条件でよく使うもの TLOG_USER=kmoriwak # ユーザ名 -S -20min # 検索範囲の開始時刻。 - で相対的な時刻を指定。 -S 2019-09-03 # 検索範囲の開始時刻。絶対的な時刻を指定。 -U -5min # 検索範囲の終了時刻。 -S と同様。
18 GENERAL Distribution ユーザによる記録・再生 ユーザによる記録・再生 ファイルヘ記録、再生する $ tlog-rec -o foobar.txt
$ tlog-play -i foobar.txt $ tlog-play -i foobar.txt -s 3 # 3 倍速で再生 journal へ記録、再生する $ tlog-rec -w journal journal 内で TLOG_REC の値をみつける $ journalctl -o json-pretty --output-fields TLOG_REC TLOG_USER=kmoriwak | grep TLOG_REC | uniq $ tlog-play -r journal -M TLOG_REC=e93f93c169a04cabbe90fca8a5c86b4f-9bc- 1302f62
19 GENERAL Distribution tlog 利用時の注意点
20 GENERAL Distribution tlog の注意点 tlog の注意点 直前数秒の記録は失われることがあります tlog はデフォルトで
10 秒間入出力をバッファリングします。 tlog を含めて停止す るような操作は記録できない場合があります。 Gnome(GUI 全般 ) のセッションは記録されません 現在の tlog では Gnome や GUI 環境でのセッションは自動的に記録されません。 各ユーザが tlog-rec で記録することはできます。 tlog-play では端末サイズ変更はできません 記録時と再生時の端末サイズや端末エミュレータの種類が違うと表示が崩れます。 記録していることは簡単にわかります tlog-rec-session の子プロセスとして shell が起動されているので pstree などで容 易に記録されていることがわかります。
21 GENERAL Distribution tlog の注意点 tlog の注意点 journald はログが消えることがあります systemd-journald
は logrotate 機能を内蔵しており、設定によりストレージの残容 量などの条件によって rotate された過去のログを自動的に削除します。また root 権限があれば削除することができます。監査証跡として利用したい場合にはログ サーバや Elasticsearch などの外部サーバに保存します。 場合によりログ容量が予測しづらいです たとえば root 権限で journalctl -f とすると「端末にログを表示した」ログが journal に追加されるループになり、簡単に大量のログを発生させられます。一定 レート以上ではログを drop する設定も可能ですが、その場合は記録が失われるた め判断が必要です。
22 GENERAL Distribution まとめ まとめ • Red Hat Enterprise Linux
8 ではセッション記録の機能が追 加されました • 作業記録や監査証跡などに利用できます • 利用はかなり簡単です • 目的により制限と考慮するべき点があります
23 GENERAL Distribution 参考情報 参考情報 • 公式ドキュメント「セッションの録画」 https://red.ht/302GAlm • Scribery
プロジェクトのページ http://scribery.github.io/
24 GENERAL Distribution Thank You