[検証]

WindowsでインターネットWebサーバ
―― セキュリティに不安はないか? Windowsで構築するメリットとは? ――

第1回 Windows Web Server 2008の概要

デジタルアドバンテージ 小川 誉久
2008/09/25


 INDEX (全5回)
Windows Web Server 2008の概要
WindowsでもPHP
Server CoreにPHPをインストールする
Windows Web Server 2008のセキュリティ対策
ASP.NETアプリケーション、DotNetNukeをインストールする

 インターネット上で広く外部に情報公開するためのWebサーバを構築する必要があったとして、読者ならOSに何を選ぶだろうか。

 サイトの規模などにもよるだろうが、現在最も一般的な選択肢はLinux(やUNIX)ベースのOSだろう。第一に、オープンソースのLinuxは、非常に安価に利用することができるし、ライセンス・モデルもシンプルだ。Linux標準のWebサーバ・ソフトウェアであるApacheは実績も高いし、WikiサーバやBlogサーバなどのサーバ・アプリケーションも、オープンソース・ベースのものが多数そろっており、低コストで調達できる。ほかの大勢が使ってうまくいっているからといって、自分もうまくいくという保証はないが、システムの運用管理を担当するものとしては、実績は大きな安心材料である。

 実際問題として、日本国内でインターネット・プロバイダが提供しているレンタル・サーバ・サービスなどでも、Linux OSを採用したものが圧倒的に多い。プロバイダが採用する理由も、安価でライセンスがシンプル、実績も高いという前記と同様の理由だろう。従ってこうしたプロバイダのサービスを使うと決めると、現実的な選択肢はLinuxしかないというケースも多い。

 しかし何らかの理由から、一部に制限のあるレンタル・サーバを利用するのではなく、自分自身でサーバの管理を行わなければならない場合もあるだろう。この際、Linux OSに慣れた管理者なら、得意のLinuxを使えばよい。しかしLinuxにはあまり明るくなく、もっぱらWindowsを使ってきたという管理者なら、勝手知ったるWindows OSでWebサーバを構築してはどうかと一度は考えるに違いない。

 Windowsサーバには、IIS(Internet Information Services)という標準のWebサーバがあるし、最近はPHP(ポピュラーなオープンソースのWeb開発言語)で開発されたオープンソース系のWebアプリケーション(Wikiなど)もWindowsに移植されつつある。単純な比較はできないが、Webサーバを構築するという目的なら、機能面でWindowsが不利になることはあまりない。事実、大手インターネット・ショッピング・サイトなど、WindowsベースOSでサービスを実装した例も増えてきている。

 しかし、「WindowsでWebサーバを公開しようと思うが、どうか?」と周囲に聞けば、「危険だからやめておけ」という声が必ず返ってくる。特に、パソコン経験の長い熟練管理者にこの傾向が強い。これはなぜか? 大きな理由は2つだろう。

理由1:過去のWindowsは、インターネット・サーバを構築する前提で設計されていなかった
  Windows NTやWindows 2000までのWindows OSは、比較的安全性の高いイントラネット内部で使われることを前提としていた。このため各種サービスはデフォルトで組み込まれて有効化されており、アクセス・ポートも多くが開放されていた。これによりデフォルトの状態でも手っ取り早く各種機能を使えて便利だったのだが、逆に安全にサーバを外部公開するには、管理者が必要なサービスを吟味して、不要なものは停止する、使わないポートは閉じるなどの作業が必要だった。実際には、知識不足から正しい制限を加えずにWindowsサーバを外部に向けて公開してしまい、攻撃被害や情報漏えい被害に遭うなどの問題が発生した。

理由2:社会問題にまで発展した過去のセキュリティ事故
  2つ目は、CodeRed(コードレッド)やNimda(ニムダ)など、あまりの被害の大きさに社会問題にまで発展してしまったコンピュータ・ウイルス事件が記憶にあるためだ。CodeRedは2001年8月に急発生したコンピュータ・ワームで、IISのバグ(バッファ・オーバーフロー攻撃)を悪用して、インターネットに公開されたIISに次々と感染を広げた。感染したコンピュータが、さらに別コンピュータに向けて感染パケットを大量に発生させたため、世界各所でネットワークがダウンするなどの重大な問題を引き起こした。一方のNimdaは、Web閲覧やメールのプレビュー、.DOCファイルのオープンなどで感染を広げるコンピュータ・ワームで、CodeRedに劣らず大きな社会問題にまでなった。

Code Redワームの正体とその対策
ネットを震撼させたコンピュータ・ワーム、Nimdaを検証する

 理由1に対しマイクロソフトは、Windowsのデフォルト設定の脇の甘さを反省し、Windows Server 2003からは、セキュリティ設定の方針を180度変更した。Windows 2000までは、「デフォルトでは機能制限なし。不要な機能やネットワーク・ポートは後から管理者が制限する」という方針だったが、これがWindows Server 2003からは、「デフォルトでは強力に機能制限。必要な機能やポートは管理者が後から明示的に開く」という方針に変わった。初期設定が煩雑になるが、マイクロソフトは、サーバの役割(ファイル・サーバ、Webサーバなど)に応じて、必要な機能やポートなどを自動設定できるツールを追加してこの問題を回避した。

Windows Server 2003オーバービュー

 理由2に対しマイクロソフトは、Windows OSなど自社製品のソース・コードの脆弱性を一斉点検して問題を洗い出すとともに、発見された脆弱性を早期かつ確実に修正するためにWindows Update/Microsoft Update/WSUS(Windows Update Service)などのサービスを大幅に拡充し、修正プログラムの開発・提供体制も強化した。

「信頼できるコンピューティング」への長い道のり

 こうした過去の悪い記憶は簡単に洗い流せるわけではない。しかし客観的に見れば、Windows OSを取り巻くセキュリティ・アセスメントは従来から大幅に向上しているように思える。前述のとおり、一部の大手ECサイトなどでは、Windows OSを採用したものも登場し、実績も増えつつある。果たして「WindowsでインターネットWebサーバ」というのは本当に無謀なのか? それとも熟練管理者がアドバイスするように、やはり避けた方が無難なのか? 本稿の目的の1つは、こうしたシステム管理者の疑問に応えることである。

 もう1つ。仮にWindowsが安全だったとしても、それでLinuxと同じことができるだけ、というのでは意味がない。インターネットWebサーバをWindowsで構築すると、Linuxにはない、どんな利点があるのか。本稿ではこの点も明らかにしたい。具体的には、マイクロソフトが開発を続ける.NET Frameworkを利用したASP.NET Webアプリケーション・サーバを構築してみることで、それを実際に体験してみようと思う。

 今回の連載では、Windows Server 2008ファミリの1製品であるWindows Web Server 2008をベースに話を進める。これはWebサーバ/Webアプリケーション・サーバ向けに特化された安価なエディションで、Windows Server 2003の時代には、“Windows Server 2003, Web Edition”と呼ばれていたものだ。名前が変わっただけでなく、最新のWindows Web Server 2008では、従来は制限されていたデータベースの使用が可能になるなど(ただし、ローカル・アプリケーションのみ)機能強化が図られている(詳細は後述)。

Windows Web Server 2008
Windows Web Server 2008は主にインターネット向けのWebサーバ用途に特化したサーバOSである。Windows Server 2008の機能を限定し、Webサーバとしての機能とパフォーマンス、信頼性を実現している。


 INDEX
  [検証]WindowsでインターネットWebサーバ
第1回 Windows Web Server 2008の概要
    1.Windows Web Server 2008とは?
    2.Web Server 2008の機能とライセンス

 「検証」

@IT Special

- PR -

TechTargetジャパン

Windows Server Insider フォーラム 新着記事
  • 第538話 がんばれエーアイくん5 (2017/2/21)
     エーアイくんの画像認識装置は、見た目で物体の体積や重さも判別可能。切手の額面も料理の温め時間もバッチリ。他にも……
  • 第537話 おすすめ商品 (2017/2/14)
     ショッピングサイトのおすすめ商品、最近は気になるものばっかり出るのよね〜。なんだか気味が悪いわ……
  • Thunderbirdで証明書がエラーになる場合の対策方法 (2017/2/9)
     Thunderbirdは、独立して証明書を保存・格納している。そのため、証明書に起因するエラーが発生することがある。正しく証明書を扱えるようにする方法を紹介する
  • AzureのWeb AppでPHPのエラーログを記録・保存する (2017/2/8)
     AzureのWeb AppでPHPのエラーログを記録・保存する方法を紹介する。PHPで何らかのエラーや警告が生じると、php_errors.logファイルに記録されるようになる
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間
ソリューションFLASH