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.6k
端末のセッション記録
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.2k
Red Hat Enterprise Linux 9のリリースノートを読む前に知りたい最近のキーワードをまとめて復習
moriwaka
0
1.6k
odpからmp4を作る / odp2mp4
moriwaka
0
330
Red Hat Enterprise Linux Web Console を使う / cockpit-rhel8
moriwaka
0
830
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.4k
Other Decks in Technology
See All in Technology
AI エージェント開発を支える MaaS としての Azure AI Foundry
ryohtaka
6
650
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
150
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
0
170
プロダクトエンジニア 360°フィードバックを実施した話
hacomono
PRO
0
120
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
270
わたしのOSS活動
kazupon
2
310
デスクトップだけじゃないUbuntu
mtyshibata
0
580
ESXi で仮想化した ARM 環境で LLM を動作させてみるぞ
unnowataru
0
140
ソフトウェアエンジニアと仕事するときに知っておいたほうが良いこと / Key points for working with software engineers
pinkumohikan
1
130
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
1
1.5k
データマネジメントのトレードオフに立ち向かう
ikkimiyazaki
6
1.2k
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
3
480
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
51
7.4k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Embracing the Ebb and Flow
colly
84
4.6k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
GitHub's CSS Performance
jonrohan
1030
460k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Why Our Code Smells
bkeepers
PRO
336
57k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
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