Menu Close
Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
11.2. 最も大きな 3 つの原因
以下のセクションでは、問題のラベル付け、サービスのブール値とポートの設定、SELinux ルールに関連する 3 つの原因を説明します。
11.2.1. ラベル付けの問題
SELinux を実行しているシステムでは、すべてのプロセスとファイルに、セキュリティー関連の情報を含むラベルが付いたラベルが付けられます。この情報は、SELinux コンテキスト と呼ばれます。これらのラベルが間違っている場合は、アクセスが拒否される可能性があります。誤ったラベルが付けられたアプリケーションにより、誤ったラベルがプロセスに割り当てられる場合があります。これにより、SELinux がアクセスを拒否し、ファイルに誤ったラベルが付けられたファイルが作成される可能性があります。
ラベル付けの問題の一般的な原因として、非標準ディレクトリーがサービスに使用される場合が挙げられます。たとえば、管理者が
/var/www/html/
を Web サイトに使用する代わりに、管理者は /srv/myweb/
を使用します。Red Hat Enterprise Linux では、/srv
ディレクトリーには var_t
タイプのラベルが付けられます。/srv
で作成されるファイルおよびディレクトリーは、このタイプを継承します。また、最上位のディレクトリー( /myserver
など)で新たに作成されたオブジェクトには default_t
タイプのラベルが付けられる場合があります。SELinux は、Apache HTTP Server (httpd
) がこの両方のタイプにアクセスできないようにします。アクセスを許可するには、SELinux は、/srv/myweb/
のファイルが httpd
からアクセスできることを認識する必要があります。
~]#
semanage fcontext -a -t httpd_sys_content_t "/srv/myweb(/.*)?"
この semanage コマンドは、
/srv/myweb/
ディレクトリー(およびその下のすべてのファイルおよびディレクトリー)のコンテキストを SELinux ファイルコンテキスト設定に追加します。[8].semanage
ユーティリティーはコンテキストを変更しません。root で restorecon
ユーティリティーを実行して変更を適用します。
~]#
restorecon -R -v /srv/myweb
file-context 設定へのコンテキストの追加に関する詳細は、「永続的な変更: semanage fcontext」 を参照してください。
11.2.1.1. 正しいコンテキストとは何ですか?
matchpathcon
ユーティリティーは、ファイルパスのコンテキストを確認し、そのパスのデフォルトラベルと比較します。以下の例は、ラベル が間違っているファイルを含むディレクトリーで matchpathcon
を使用する方法を示しています。
~]$
matchpathcon -V /var/www/html/*
/var/www/html/index.html has context unconfined_u:object_r:user_home_t:s0, should be system_u:object_r:httpd_sys_content_t:s0
/var/www/html/page1.html has context unconfined_u:object_r:user_home_t:s0, should be system_u:object_r:httpd_sys_content_t:s0
この例では、
index.html
ファイルおよび page1.html
ファイルに、user_home_t
タイプのラベルが付けられています。このタイプは、ユーザーのホームディレクトリーのファイルに使用されます。mv コマンドを使用してファイルをホームディレクトリーから移動すると、ファイルに user_home_t
タイプのラベルが付けられることがあります。このタイプは、ホームディレクトリー内しか存在しません。restorecon
ユーティリティーを使用して、対象のファイルを正しいタイプに戻します。
~]#
restorecon -v /var/www/html/index.html
restorecon reset /var/www/html/index.html context unconfined_u:object_r:user_home_t:s0->system_u:object_r:httpd_sys_content_t:s0
ディレクトリー下の全ファイルのコンテキストを復元するには、
-R
オプションを使用します。
~]#
restorecon -R -v /var/www/html/
restorecon reset /var/www/html/page1.html context unconfined_u:object_r:samba_share_t:s0->system_u:object_r:httpd_sys_content_t:s0
restorecon reset /var/www/html/index.html context unconfined_u:object_r:samba_share_t:s0->system_u:object_r:httpd_sys_content_t:s0
matchpathcon
のより詳細な例は、「デフォルトの SELinux コンテキストの確認」 を参照してください。
[8]
/etc/selinux/targeted/contexts/files/
のファイルは、ファイルとディレクトリーのコンテキストを定義します。このディレクトリー内のファイルは restorecon
ユーティリティーおよび setfiles
ユーティリティーで読み取り、ファイルとディレクトリーをデフォルトのコンテキストに復元します。