Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

10.2. SELinux および journald

systemd では、journald デーモン( systemd-journalとしても知られている)は、ロギングデータを収集して保存するシステムサービスである syslog ユーティリティーの代替です。これは、カーネルから受信したロギング情報、システムサービスの標準およびエラー出力、またはネイティブ API を使用して、カーネルから受信したロギング情報に基づいて構造化 および インデックス化されたジャーナルを作成し、維持します。セキュアな方法で、各ログメッセージに対して多数のメタデータフィールドを暗黙的に収集します。
systemd-journal サービスを SELinux とともに使用して、セキュリティーを強化できます。SELinux は、設計されている内容を実行させることのみを許可することでプロセスを制御します。ポリシーライターのセキュリティー目標によっては、より少ない場合もあります。たとえば、SELinux は、危険にさらされた ntpd プロセスが、ネットワーク時間以外の処理を防ぎます。ただし、ntpd プロセスは syslog メッセージを送信するため、SELinux が危険にさらされたプロセスがこれらのメッセージを送信し続けます。危険にさらされた ntpd は、他のデーモンと誤って一致させるために syslog メッセージをフォーマットするか、または管理者を誤って使用したり、syslog ファイルを読み取る ユーティリティーをシステム全体にまとめるユーティリティーです。
systemd-journal デーモンはすべてのログメッセージを検証し、その他の理由で SELinux ラベルをそのメッセージに追加します。これにより、ログメッセージで不整合を簡単に検出し、発生する前にこのタイプの攻撃を防ぐことができます。journalctl ユーティリティーを使用して、systemd ジャーナルのログをクエリーできます。コマンドライン引数を指定しないと、このコマンドを実行すると、最も古いエントリーから開始する、ジャーナルの完全な内容が一覧表示されます。システムコンポーネントのログなど、システムで生成されたすべてのログを表示するには、root で journalctl を実行します。root 以外のユーザーとして実行すると、出力は現在ログインしているユーザーに関連するログにのみ制限されます。

例10.2 journalctlを使用したログの一覧表示

journalctl を使用して、特定の SELinux ラベルに関連するすべてのログを一覧表示できます。たとえば、以下のコマンドは system_u:system_r:policykit_t:s0 ラベルでログに記録されるすべてのログを一覧表示します。
~]# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0
Oct 21 10:22:42 localhost.localdomain polkitd[647]: Started polkitd version 0.112
Oct 21 10:22:44 localhost.localdomain polkitd[647]: Loading rules from directory /etc/polkit-1/rules.d
Oct 21 10:22:44 localhost.localdomain polkitd[647]: Loading rules from directory /usr/share/polkit-1/rules.d
Oct 21 10:22:44 localhost.localdomain polkitd[647]: Finished loading, compiling and executing 5 rules
Oct 21 10:22:44 localhost.localdomain polkitd[647]: Acquired the name org.freedesktop.PolicyKit1 on the system bus Oct 21 10:23:10 localhost polkitd[647]: Registered Authentication Agent for unix-session:c1 (system bus name :1.49, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
Oct 21 10:23:35 localhost polkitd[647]: Unregistered Authentication Agent for unix-session:c1 (system bus name :1.80 [/usr/bin/gnome-shell --mode=classic], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.utf8)
journalctl の詳細は、journalctl(1) の man ページを参照してください。