Red Hat Training

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

11.3.5. 拒否の検索と表示

本セクションでは、setroubleshootsetroubleshoot-serverdbus、および audit パッケージがインストールされ、auditdrsyslogd、および setroubleshootd デーモンが実行していることを前提としています。これらのデーモンの起動方法は、「どのログファイルが使用されるか」 を参照してください。ausearchaureport、および sealert などの SELinux AVC メッセージの検索および表示には、多数のユーティリティーを使用できます。

ausearch

audit パッケージは、さまざまな検索基準に基づいてイベントの audit デーモンログを照会できる ausearch ユーティリティーを提供します。[10] ausearch ユーティリティーは、/var/log/audit/audit.log にアクセスするため、root ユーザーとして実行する必要があります。
検索対象: すべての拒否
コマンド: ausearch -m avc,user_avc,selinux_err,user_selinux_err
検索対象: 今日の拒否
コマンド: ausearch -m avc -ts today
検索対象: 直近の 10 分間の拒否
コマンド: ausearch -m avc -ts recent
特定サービスの SELinux AVC メッセージを検索するには、-c comm-name オプションを使用します。comm-name は実行ファイルの名前 (Apache HTTP サーバーの場合は httpd、Samba の場合は smbd など) です。
~]# ausearch -m avc -c httpd
~]# ausearch -m avc -c smbd
ausearch コマンドを使用するたびに、読みやすくするために --interpret (-i) オプションを使用するか、スクリプト処理で --raw (-r) オプションを使用することが推奨されます。ausearch オプションの詳細は、ausearch(8) の man ページを参照してください。

aureport

audit パッケージは、aureport ユーティリティーを提供します。これにより、監査システムログのサマリーレポートを生成します。[11] aureport ユーティリティーは、/var/log/audit/audit.log にアクセスするため、root ユーザーとして実行する必要があります。SELinux の拒否メッセージと、その発生頻度を一覧表示するには、aureport -a を実行します。以下は、2 つの拒否を含む出力例になります。
~]# aureport -a

AVC Report
========================================================
# date time comm subj syscall class permission obj event
========================================================
1. 05/01/2009 21:41:39 httpd unconfined_u:system_r:httpd_t:s0 195 file getattr system_u:object_r:samba_share_t:s0 denied 2
2. 05/03/2009 22:00:25 vsftpd unconfined_u:system_r:ftpd_t:s0 5 file read unconfined_u:object_r:cifs_t:s0 denied 4

sealert

setroubleshoot-server パッケージは、sealert ユーティリティーを提供します。これは、setroubleshoot-server により変換された拒否メッセージを読み取ります。[12] 拒否は、/var/log/messages にあるように ID が割り当てられています。以下は、messages からの拒否例になります。
setroubleshoot: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket. For complete SELinux messages. run sealert -l 8c123656-5dda-4e5d-8791-9e3bd03786b7
この例では、拒否 ID は 8c123656-5dda-4e5d-8791-9e3bd03786b7 です。-l オプションは、識別子を引き数として取ります。sealert -l 8c123656-5dda-4e5d-8791-9e3bd03786b7 コマンドを実行すると、SELinux がアクセスを拒否した理由を詳細に分析し、アクセスを許可する解決策を示すことができます。
X Window System を実行中で、setroubleshoot パッケージおよび setroubleshoot-server パッケージがインストールされており、setroubleshootd デーモン、dbus デーモン、および auditd デーモンが実行されている場合は、SELinux がアクセスを拒否したときに警告が表示されます。
AVC 拒否メッセージ
Show をクリックすると、sealert 画面が表示されます。これにより、トラブルシューティングが可能になります。
または、sealert -b コマンドを実行して、sealert GUI を起動します。すべての拒否メッセージの詳細な解析を表示するには、sealert -l \* コマンドを実行します。


[10] ausearch の詳細は、ausearch(8) の man ページを参照してください。
[11] aureport の詳細は、aureport(8) の man ページを参照してください。
[12] sealert の詳細は、sealert(8) man ページを参照してください。