Apacheの安全を確保するための10の対策

文:Jack Wallen 翻訳校正:石橋啓一郎
2009-01-23 08:00:00
  • このエントリーをはてなブックマークに追加

 あなたは自分の会社のウェブサイトをサービスするApacheをインストールしたところだとしよう。Apacheはスムーズに動作しており、万が一の場合にもLinuxのセーフティネットが助けになるはずだと思う。ところが、2週間ほど経ったところで、いろいろとおかしなことが起こり始める。なぜだろう。ApacheとLinuxを使っているのに・・・おかしくなることなどあるだろうか?

 もちろん、注意を払わなければ、おかしくなることはいくらでもあり得る。Apacheを安全にする方法はあるが、もちろん何もしなければ安全にはならない。以下に示すのは、Apacheをより安全なウェブサーバにするための簡単な10の方法だ。

#1: とにかくアップデート

 LinuxでApacheを動かしているからと言って、アップデートが不要だということにはならない。常に新しいセキュリティホールやリスクが登場している。あなたは、最新のパッチを適用した状態を維持できる、健全なアップデート方針を持たなくてはならない。もしApacheを自分のディストリビューションのパッケージマネージャからインストールしたのであれば、そのままそこでアップデートも行うことができる。ソースからインストールした場合には、アップグレードすることによって、モジュールやそのサーバが持つ依存関係を壊してしまわないよう注意を払う必要がある。また、Apacheをアップデートしたら、PHPもアップデートされていることを確認して欲しい(もしPHPを使っていれば)。

#2: 正しいuserとgroupを設定する

 私は、様々なgroupやuserでインストールされたApacheを目撃したことがある。最悪なのは、rootユーザーでインストールされている場合だ。これは、いくつかの深刻な問題を引き起こす可能性がある。また、ApacheとMySQLが同じuser/groupで実行されている場合も問題だ。もし一方にセキュリティホールがあれば、もう一方への攻撃につながってしまう。最善のシナリオは、Apacheのuserとgroupを「apache」にすることだ。これを行うためには、まずhttpd.confファイルを開き、次のように書かれている行を調べる。

User

Group

 そして、これらのエントリを次のように変更する。

User apache

Group apache

 groupやuserが存在しないことを示すエラーが出る場合、新たに作成する必要がある。

#3: 不要なサービスを無効にする

 無効にした方がいいサービスや機能がいくつかある。これらのサービスはすべて、httpd.confファイルで無効にすることができる。そのような、問題を起こしやすいサービス・機能には、以下のようなものがある。

  • ディレクトリの閲覧。この機能を無効にするには、Directoryタグの中で(ドキュメントルートに指定するのがよいだろう)、Optionsディレクティブに「-Indexes」を設定する。
  • SSI(サーバサイドインクルード)の使用。これも、無効にするには、Directoryタグの中で(Optionsディレクティブを使い)「-Include」と設定する。
  • CGIの実行。あなたのサイトでCGIを必要としないのであれば、これを無効にする。この機能も、Directoryタグの中でOptionsディレクティブを使い、「-ExecCGI」と設定する。
  • シンボリックリンク。この機能を無効にするには、(やはり)Directoryタグの中で、「-FollowSymLinks」と設定する。
  • すべて無効にする。(上記と同じ方法で)Optionsディレクティブに「None」と設定すれば、すべてのオプションを無効にすることができる。

#4: 使用しないモジュールを無効にする

 Apacheには大量のモジュールがある。自分のシステムにインストールされているApacheにいくつのモジュールがあるかを知りたければ、(rootユーザーとして)grep -n LoadModule httpd.confというコマンドをApacheの設定ディレクトリで実行すればよい。このコマンドで、自分のApacheが読み込んでいるすべてのモジュールを行番号付きで表示することができる。不必要なモジュールを無効にするには、そのモジュールについて記述している行の先頭に「#」を挿入してコメントアウトするだけでよい。

#5: アクセスの制限

 重要な企業情報が置かれているイントラネットがあるとしよう。そのような場合、プライベートネットワークの外部からは、その情報を見られないようにしたいだろう。httpd.confファイルの中のDirectoryタグの中に次の行を加えることで、外部から社内ネットワークへのアクセスを制限することができる。

Order Deny, Allow

Deny from all

Allow from 192.168.1.0/16

 ただし、上記の192.168.1.0/16の部分はあなたの社内ネットワークの設定に合わせる必要がある。httpd.confを修正した場合、Apacheを再起動してその変更を確実に反映すること。

  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]