第4章 非標準設定でのアプリケーションとサービスの SELinux 設定
SELinux が Enforcing モードの場合、デフォルトのポリシーはターゲットポリシーになります。以下のセクションでは、ポート、データベースの場所、プロセスのファイルシステムパーミッションなどの設定のデフォルトを変更した後に、さまざまなサービスに対して SELinux ポリシーを設定および設定する方法を説明します。
非標準ポート用に SELinux タイプを変更し、デフォルトディレクトリーの変更に関する間違ったラベルを特定して修正し、SELinux ブール値を使用してポリシーを調整する方法を説明します。
4.1. 非標準設定での Apache HTTP サーバーの SELinux ポリシーのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Apache HTTP サーバーを設定して、別のポートでリッスンし、デフォルト以外のディレクトリーにコンテンツを提供できます。SELinux の拒否を防止するには、以下の手順に従い、システムの SELinux ポリシーを調整します。
前提条件
-
httpd
パッケージがインストールされ、Apache HTTP サーバーが TCP ポート 3131 をリッスンし、デフォルトの/var/www/
ディレクトリーの代わりに/var/test_www/
ディレクトリーを使用するように設定されています。 -
policycoreutils-python-utils
パッケージおよびsetroubleshoot-server
パッケージがシステムにインストールされている。
手順
httpd
サービスを起動して、ステータスを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux ポリシーは、
httpd
がポート 80 で実行していることを前提としています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポート 3131 の SELinux タイプを、ポート 80 に一致させるように変更します。
semanage port -a -t http_port_t -p tcp 3131
# semanage port -a -t http_port_t -p tcp 3131
Copy to Clipboard Copied! Toggle word wrap Toggle overflow httpd
を再開します。systemctl start httpd
# systemctl start httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ただし、コンテンツにはアクセスできません。
wget localhost:3131/index.html
# wget localhost:3131/index.html … HTTP request sent, awaiting response... 403 Forbidden …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sealert
ツールの理由を確認します。sealert -l "*"
# sealert -l "*" ... SELinux is preventing httpd from getattr access on the file /var/test_www/html/index.html. …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow matchpathcon
ツールを使用して、標準パスと新規パスの SELinux タイプを比較します。matchpathcon /var/www/html /var/test_www/html
# matchpathcon /var/www/html /var/test_www/html /var/www/html system_u:object_r:httpd_sys_content_t:s0 /var/test_www/html system_u:object_r:var_t:s0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
/var/test_www/html/
コンテンツディレクトリーの SELinux タイプを、デフォルトの/var/
ディレクトリーのタイプに変更します。semanage fcontext -a -e /var/www /var/test_www
# semanage fcontext -a -e /var/www /var/test_www
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 再帰的に、
/var
ディレクトリーのラベルを再設定します。restorecon -Rv /var/
# restorecon -Rv /var/ ... Relabeled /var/test_www/html from unconfined_u:object_r:var_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0 Relabeled /var/test_www/html/index.html from unconfined_u:object_r:var_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
httpd
サービスが実行していることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Apache HTTP サーバーが提供するコンテンツがアクセスできることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow