Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

13.4. 設定例

以下の例は、SELinux が Apache HTTP サーバーを補完する方法と、Apache HTTP サーバーの完全な機能を維持する方法の実例を紹介します。

13.4.1. 静的サイトの実行

静的 Web サイトを作成するには、その Web サイトの .html ファイルに httpd_sys_content_t タイプのラベルを付けます。デフォルトでは、Apache HTTP サーバーは httpd_sys_content_t タイプのラベルが付けられたファイルに書き込みできません。以下の例では、読み取り専用の Web サイトのファイルを保存する新しいディレクトリーを作成します。
  1. root で mkdir ユーティリティーを使用して、最上位のディレクトリーを作成します。
    ~]# mkdir /mywebsite
  2. root として /mywebsite/index.html ファイルを作成します。以下の内容を /mywebsite/index.html にコピーアンドペーストします。
    <html>
    <h2>index.html from /mywebsite/</h2>
    </html>
    
  3. Apache HTTP サーバーが、/mywebsite/、およびその下のファイルとサブディレクトリーに読み取り専用でアクセスできるようにするには、ディレクトリーに httpd_sys_content_t タイプのラベルを付けます。root で以下のコマンドを入力し、ラベルの変更を file-context 設定に追加します。
    ~]# semanage fcontext -a -t httpd_sys_content_t "/mywebsite(/.*)?"
  4. restorecon ユーティリティーを root として使用し、ラベルを変更します。
    ~]# restorecon -R -v /mywebsite
    restorecon reset /mywebsite context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
    restorecon reset /mywebsite/index.html context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
    
  5. この例では、root として /etc/httpd/conf/httpd.conf ファイルを編集します。既存の DocumentRoot オプションをコメントアウトします。DocumentRoot "/mywebsite" オプションを追加します。編集後、これらのオプションは以下のようになります。
    #DocumentRoot "/var/www/html"
    DocumentRoot "/mywebsite"
    
  6. root で以下のコマンドを入力して、Apache HTTP Server のステータスを確認します。サーバーが停止している場合は、起動します。
    ~]# systemctl status httpd.service
    httpd.service - The Apache HTTP Server
       Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
       Active: inactive (dead)
    
    ~]# systemctl start httpd.service
    サーバーが実行している場合は、root で以下のコマンドを実行してサービスを再起動します(httpd.confに加えた変更も適用されます)。
    ~]# systemctl status httpd.service
    httpd.service - The Apache HTTP Server
       Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
       Active: active (running) since Wed 2014-02-05 13:16:46 CET; 2s ago
    
    ~]# systemctl restart httpd.service
  7. Web ブラウザーを使用して http://localhost/index.html に移動します。以下が表示されます。
    index.html from /mywebsite/