2.7. Apache HTTP Server の SELinux ポリシー

Security-Enhanced Linux (SELinux) ポリシーを使用して、Apache HTTP Server のアクセス制御を定義できます。これらのポリシーは、製品へのアクセス権を決定する一連のルールです。

2.7.1. SELinux ポリシー情報

SELinux セキュリティーモデルはカーネルにより適用され、ファイルシステムの場所やポートなどのリソースへのアプリケーションのアクセスが限定されるようにします。SELinux ポリシーは、危険にさらされているか、不適切な設定である誤ったプロセスを制限したり、実行できないようにしたりします。

Apache HTTP Server インストールの jbcs-httpd24-httpd-selinux パッケージは、mod_proxy_cluster ポリシーを提供します。次の表には、提供されている SELinux ポリシーに関する情報が含まれています。

表2.1 RPM およびデフォルトの SELinux ポリシー

名前ポート情報ポリシー情報

mod_proxy_cluster

2 つのポート (TCP6666UDP23364) は、httpd プロセスが使用できるように httpd_port_t に追加されます。

インストール後のスクリプトは、/var/cache/mod_proxy_cluster のコンテキストマッピングを設定し、httpd プロセスがこの場所に書き込みできるようにします。

2.7.2. Apache HTTP Server アーカイブインストール用の SELinux ポリシーのインストール

このリリースでは、アーカイブパッケージが SELinux ポリシーを提供します。ルートの Apache HTTP Server フォルダーには、.postinstall.selinux ファイルが格納されています。必要に応じて、.postinstall.selinux スクリプトを実行できます。

重要

デフォルトでは、Apache HTTP Server が提供する SELinux ポリシーはアクティブではなく、Apache HTTP Server プロセスは unconfined_t ドメインで実行されます。このドメインは、プロセスを限定するものではありません。提供されている SELinux ポリシーを有効化しないと選択した場合は、apache ユーザーのファイルアクセスを制限して、apache ユーザーが Apache HTTP Server ランタイムに必要なファイルとディレクトリーにのみアクセスできるようにします。

手順

  1. selinux-policy-devel パッケージをインストールします。

    yum install -y selinux-policy-devel
  2. .postinstall.selinux スクリプトを実行します。

    cd <httpd_home>
    sh .postinstall.selinux
  3. SELinux モジュールを作成してインストールします。

    cd <httpd_home>/selinux/
    make -f /usr/share/selinux/devel/Makefile
    semodule -i jbcs-httpd24-httpd.pp
  4. Apache HTTP Server の SELinux コンテキストを適用します。

    restorecon -r <httpd_home>
  5. Apache HTTP Server に必要なポートへのアクセスパーミッションを追加します。

    semanage port -a -t http_port_t -p tcp 6666
    semanage port -a -t http_port_t -p udp 23364
  6. Apache HTTP Server サービスを起動します。

    <httpd_home>/sbin/apachectl start
  7. httpd_t が予想される実行中のプロセスのコンテキストを確認します。

    $ ps -eZ | grep httpd | head -n1
    
    unconfined_u:unconfined_r:httpd_t:s0-s0:c0.c1023 2864 ? 00:00:00 httpd
  8. httpd ディレクトリーのコンテキストを確認します。以下に例を示します。

    ls -lZ <httpd_home>/logs/