このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
アクセス拒否の許可に関する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.log
でdenied
という文字が含まれたメッセージを、/var/log/messages
でSELinux 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 -imodule
.ppコマンドでポリシー・パッケージ・ファイルを使用すると、エラーの再発生を停止できます。 このプロシージャは通常、修正されたポリシーが使用可能になるまでパッケージ更新を機能させることを目的としています。 これを不適切に使用すると、システムに潜在的なセキュリティ・ホールが作成される可能性があります。