Red Hat Training

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

第11章 トラブルシューティング

本章では、SELinux がアクセスを拒否した場合の動作、問題の上位 3 つの原因、正しいラベル付けに関する情報の入手先、SELinux の拒否分析、および audit2allow でカスタムポリシーモジュールを作成する方法について説明します。

11.1. アクセスが拒否された場合の動作

アクセスの許可、拒否などの SELinux の結果はキャッシュされます。このキャッシュは、アクセスベクトルキャッシュ (AVC) として知られています。SELinux がアクセスを拒否すると、拒否メッセージがログに記録されます。この拒否は AVC 拒否としても知られており、実行しているデーモンに応じて別の場所にログが記録されます。
デーモン: auditd on
ログの場所: /var/log/audit/audit.log
デーモン: auditd off、rsyslogd on
ログの場所: /var/log/messages
デーモン: setroubleshootd、rsyslogd、auditd on
ログの場所: /var/log/audit/audit.log./var/log/messages にも送信される、読み取りが容易な拒否メッセージ
X Window System を実行中で、setroubleshoot パッケージおよび setroubleshoot-server パッケージがインストールされており、setroubleshootd デーモンおよび audd デーモンを実行している場合は、SELinux がアクセスを拒否したときに警告が表示されます。
Show をクリックすると、SELinux がアクセスを拒否した理由の詳細な分析と、アクセスを許可するための可能な解決策が表示されます。X Window System を実行していない場合は、SELinux によってアクセスが拒否されたときはわかりにくくなります。たとえば、Web サイトをブラウズするユーザーには、次のようなエラーが表示されます。
Forbidden

You don't have permission to access file name on this server
このような状況で、DAC ルール (スタンダードの Linux パーミッション) でアクセスが許可されている場合は、/var/log/messages および /var/log/audit/audit.log で、それぞれ "SELinux is preventing" エラーおよび "denied" エラーを確認してください。これは、root ユーザーになり、以下のコマンドを実行して実行できます。
~]# grep "SELinux is preventing" /var/log/messages
~]# grep "denied" /var/log/audit/audit.log