このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。

機械翻訳について

25.2.7 アクセス拒否メッセージのトラブルシューティング

アクセス拒否の許可に関するSELinuxの決定は、アクセス・ベクター・キャッシュ(AVC)に格納されます。 監査サービス(auditd)が実行されていない場合、SELinuxはAVC拒否メッセージを/var/log/messagesに記録します。 それ以外の場合、メッセージは/var/log/audit/audit.logに記録されます。 setroubleshootdデーモンが実行されている場合は、読みやすいバージョンの拒否メッセージも/var/log/messagesに書き込まれます。

setroubleshootおよびsetroubleshoot-serverパッケージをインストールしていて、auditdおよびsetroubleshootサービスが実行中で、X Window Systemを使用している場合は、sealert -bコマンドを使用すると、SELinux AVC拒否に関する情報を表示するSELinux Alert Browserを実行できます。 アラートの詳細を表示するには、表示をクリックします。 推奨される解決を表示するには、トラブルシュートをクリックします。

SELinux Alert Browserを使用しない場合は、/var/log/audit/audit.logdeniedという文字が含まれたメッセージを、/var/log/messagesSELinux is preventingという文字が含まれたメッセージを検索できます。 次に例を示します。

# grep denied /var/log/audit/audit.log 
type=AVC msg=audit(1364486257.632:26178): avc:  denied  { read } for  
pid=5177 comm="httpd" name="index.html" dev=dm-0 ino=396075 
scontext=unconfined_u:system_r:httpd_t:s0 
tcontext=unconfined_u:object_r:acct_data_t:s0 tclass=file

アクセス拒否問題の主要な原因は、次のとおりです。

  • アプリケーションまたはファイルのコンテキスト・ラベルが不適切です。

    解決するには、ディレクトリ階層のデフォルトのファイル・タイプを変更します。 たとえば、デフォルトのファイル・タイプを/var/webcontentからhttpd_sys_content_tに変更します。

    # /usr/sbin/semanage fcontext -a -t httpd_sys_content_t "/var/webcontent(/.*)?"
    # /sbin/restorecon -R -v /var/webcontent

  • サービスのセキュリティ・ポリシーを構成するブールが誤って設定されています。

    解決するには、ブールの値を変更します。 たとえば、httpd_enable_homedirsをオンにすると、ユーザーのホーム・ディレクトリの参照が許可されます。

    # setsebool -P httpd_enable_homedirs on
  • サービスが、セキュリティ・ポリシーでアクセスが許可されていないポートへのアクセスを試行しています。

    サービスによるそのポートの使用が有効な場合は、semanageを使用してポリシー構成にそのポートを追加します。 たとえば、Apache HTTPサーバーがポート8000でリスニングすることを許可します。

    # semanage port -a -t http_port_t -p tcp 8000
  • パッケージの更新によって、アプリケーションが既存のセキュリティ・ポリシーに違反するように動作しています。

    audit2allow -w -aコマンドを使用すると、アクセス拒否が発生した事由を表示できます。

    audit2allow -a -M moduleコマンドを実行すると、型強制(.te)ファイルおよびポリシー・パッケージ(.pp)ファイルが作成されます。 semodule -i module.ppコマンドでポリシー・パッケージ・ファイルを使用すると、エラーの再発生を停止できます。 このプロシージャは通常、修正されたポリシーが使用可能になるまでパッケージ更新を機能させることを目的としています。 これを不適切に使用すると、システムに潜在的なセキュリティ・ホールが作成される可能性があります。