Red Hat Training

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

2.2.5. Apache HTTP サーバーのセキュア化

Apache HTTP サーバーは Red Hat Enterprise Linux に同梱されているサービスのなかで最も安定性があり安全なものの一つです。Apache HTTP サーバーを安全にするには多くのオプションとテクニックがあり、ここで詳述するには多すぎるほどです。以下のセクションでは、Apache HTTP サーバー稼働時に実行できる優れた方法を簡単に説明します。
スクリプトを実稼働環境で実行する 前に、常にそのシステムがシステム上で意図したとおりに稼働していることを確認してください。また、スクリプトもしくは CGI を含むディレクトリーに書き込みパーミッションを持っているのは root ユーザーのみであることを確認してください。これを行うには、root ユーザーで以下のコマンドを実行します。
chown root <directory_name>
chmod 755 <directory_name>
以下の設定オプションを (/etc/httpd/conf/httpd.conf 内の設定で) 使用する際は、システム管理者は注意してください。
FollowSymLinks
この指示文はデフォルトで有効となっているので、Web サーバーのドキュメントルートへのシンボリックリンク作成時には注意してください。例えば、/ へのシンボリックリンクを提供することはよい方法ではありません。
Indexes
この指示文はデフォルトで有効となっていますが、これが最適ではない可能性があります。ビジターがサーバー上のファイル閲覧をできないようにするには、この指示文を削除します。
UserDir
UserDir はシステム上でのユーザーアカウントの有無を確認できるので、デフォルトでは無効となっています。サーバー上のユーザーディレクトリーのブラウジングを有効にするには、以下の指示文を使用します。
UserDir enabled
UserDir disabled root
これらの指示文は、/root/ 以外のすべてのユーザーディレクトリーのブラウジングを有効にします。無効アカウントリストにユーザーを追加するには、UserDir disabled 行に空白で区切ったユーザーのリストを追加します。
サーバートークン
サーバートークン 指示文は、クライアントに返信されるサーバー応答ヘッダーフィールドを制御します。これには、以下のパラメーターを使用してカスタマイズできる種々の情報が含まれます。
  • ServerTokens Full (デフォルトのオプション) — (OS の種類や使用されるモジュールなど) 利用可能なすべての情報を提供します。例えば、
    Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
  • ServerTokens Prod または ServerTokens ProductOnly — 以下の情報を提供します。
    Apache
  • ServerTokens Major — 以下の情報を提供します。
    Apache/2
    
  • ServerTokens Minor — 以下の情報を提供します。
    Apache/2.0
  • ServerTokens Min または ServerTokens Minimal — 以下の情報を提供します。
    Apache/2.0.41
  • ServerTokens OS — 以下の情報を提供します。
    Apache/2.0.41 (Unix)
潜在的な攻撃者がユーザーのシステムについて価値ある情報を取得できないないようにするには、ServerTokens Prod の使用が推奨されます。

重要

IncludesNoExec 指示文は削除しないでください。デフォルトでは、Server-Side Includes (SSI) モジュールはコマンドの実行ができません。絶対に必要な場合以外は、この設定を変更しないことが推奨されます。変更すると、攻撃者がシステム上でコマンドを実行できるようになる可能性があります。

httpd モジュールの削除

特定のシナリオでは、特定の httpd モジュールを削除して HTTP サーバーの機能を制限した方がよい場合もあります。これを行うには、/etc/httpd/conf/httpd.conf ファイルで削除したいモジュールを読み込み行全体をコメントアウトするだけです。例えば、プロキシモジュールを削除するには、以下の行の先頭にハッシュ記号を加えてコメントアウトします。
#LoadModule proxy_module modules/mod_proxy.so
/etc/httpd/conf.d/ ディレクトリーにもモジュールの読み込みに使われる設定ファイルが含まれていることに注意してください。

httpd および SELinux

Apache HTTP サーバーおよび SELinux に関する情報は、『Managing Confined Services Guide』 を参照してください。