Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
8.3.5. 拒否の検索および表示
このセクションでは、setroubleshoot、setroubleshoot-server、dbus、audit のパッケージがインストールされ、
auditd
、rsyslogd
、setroubleshootd
のデーモンが実行中であることを前提としています。これらのデーモンのスタート方法に関しては、「使用するログファイル」 を参照してください。SELinux 拒否の検索および表示には、ausearch
、aureport
、sealert
などの数多くのツールが利用できます。
ausearch
audit パッケージは ausearch
を提供します。ausearch(8) man ページでは、「ausearch
は、異なる検索基準に基づいたイベントで監査デーモンログにクエリを行えるツールです」となっています[14]。ausearch
ツールは /var/log/audit/audit.log
にアクセスするので、Linux root ユーザーで実行する必要があります。
検索対象 | コマンド |
---|---|
すべての拒否 | ausearch -m avc |
当日の拒否 | ausearch -m avc -ts today |
過去 10 分間の拒否 | ausearch -m avc -ts recent |
特定のサービスでの SELinux 拒否を検索するには、
-c comm-name
オプションを使います。ここでの comm-name は「実行可能な名前です」 [15]。例えば、Apache HTTP Server の場合は httpd
、Samba の場合は smbd
になります。
~]# ausearch -m avc -c httpd
~]# ausearch -m avc -c smbd
ausearch
オプションの詳細については、ausearch(8) man ページを参照してください。
aureport
audit パッケージは aureport
を提供します。aureport(8) man ページでは、「aureport
は、監査システムログのサマリーレポートを作成するツールです」となっています[16]。aureport
ツールは /var/log/audit/audit.log
にアクセスするので、Linux 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
aureport
オプションの詳細については、aureport(8) man ページを参照してください。
sealert
setroubleshoot-server パッケージは sealert
を提供します。これは、setroubleshoot-server が変換した拒否メッセージを読み取ります。/var/log/messages
にあるように、拒否には ID が割り当てられます。以下の例は、messages
からの拒否です。
setroubleshoot: SELinux is preventing httpd (httpd_t) "getattr" to /var/www/html/file1 (samba_share_t). For complete SELinux messages. run sealert -l 84e0b04d-d0ad-4347-8317-22e74f6cd020
この例の拒否 ID は、
84e0b04d-d0ad-4347-8317-22e74f6cd020
です。-l
オプションは、ID を引数 として受け取ります。sealert -l 84e0b04d-d0ad-4347-8317-22e74f6cd020
コマンドを実行すると、SELinux がアクセスを拒否した詳細な分析とアクセスを許可するソリューションが提示されます。
X Window System を実行中で setroubleshoot と setroubleshoot-server パッケージがインストールされ、
setroubleshootd
と dbus
、auditd
デーモンが稼働している場合、SELinux によってアクセスが拒否されると警告が表示されます。「表示する」をクリックすると、sealert
GUI が開始され、HTML 出力で拒否を表示します。
sealert -b
コマンドを実行し、sealert
GUI を開始します。sealert -l \*
コマンドを実行し、すべての拒否の詳細な分析を表示します。- Linux root ユーザーで
sealert -a /var/log/audit/audit.log -H > audit.html
コマンドを実行し、sealert
GUI で見られたようにsealert
分析の HTML バージョンを作成します。
sealert
オプションの詳細については、sealert(8) man ページを参照してください。