Apacheの安全を確保するための10の対策
翻訳校正:石橋啓一郎
ただApacheとLinuxを使えば安全になるというわけではない。この記事で説明するように、Apacheを安全にするためには、多くの手順が必要となる。
あなたは自分の会社のウェブサイトをサービスする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を再起動してその変更を確実に反映すること。
- 5人の推薦記事
- 0人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(1)
- ホワイトペーパー
- 企画特集
- 話題のタグ
SQLite対応アプリのデータベースファイルを閲覧する
グーグル、「Google Buzz」を発表--Gmailのソーシャル機能を強化
「H.264」ストリーミングのロイヤリティ無料期間が延長
マイクロソフト、「Office 2010」のRC版をリリース
御社はまだフリーの転送サービスですか?
利用者の理想を追求した最新レンタルサーバ
仮想化をダメにするストレージの実態
経営統合後の事業損益構造の見える化を実現
アンケートから見るセキュリティ対策の実態
Xbox Live インディーズゲーム開発の軌跡
DBのパフォーマンスに困ってませんか?
アプリケーション仮想化 3つの課題
身近な業務をCRMが変革!
レガシーアプリケーションの稼働どうしてる?
仮想環境のバックアップは難しいのか
通販サイトのアクセス集中からの危機を救う
新しい視点のレンタルサーバが誕生!
事例 VMwareでデータセンターをクラウド化