今回から、IIS(Internet Information Service)に話を進めることにする。Windows 2000 Serverは初期状態でIISを組み込まれていたが、セキュリティ上のリスクを軽減する目的から、Windows Server 2003からは仕様が変更された。セットアップ直後はIISが組み込まれておらず、必要に応じて追加する形がとられている。

まず、Windows Server 2003のIIS 6.xを対象として、[サーバーの役割管理]ツールを使ったIISの追加について解説する。

IISの機能追加

Windows Server 2003には、各種のサーバ機能を追加あるいは削除する手段として、[サーバーの役割管理]がある。IISも、これを使って追加・削除できる。

ただし、静的なWebコンテンツとASP.NETを使用する場合は[サーバーの役割管理]ツールで追加作業を行うだけで済むが、ASP(Active Server Pages)・CGI(Common Gateway Interface)・SSI(Server Side Include)などを使用する場合は、後から個別に機能の動作を許可する作業が必要になる。

  1. [サーバーの役割管理]ツールを実行して[役割を追加または削除する]をクリックする。

  2. [サーバーの役割管理]ツールの3画面目で、一覧にある中の[Webアプリケーションサーバー(IIS、ASP.NET)]を選択して続行する。

[サーバーの役割管理]ツールで、[アプリケーション サーバー (IIS、ASP.NET)]を選択して続行する

  1. 次の画面で、インストールする追加機能の選択を求める画面を表示する。対象となるのは[FrontPageサーバー拡張]と[ASP.NETの有効化]だ。前者は、Microsoft FrontPageでコンテンツ管理を行う際にFrontPage Server Extentionを利用する時にオンにする。後者はASP.NETを使用する際にオンにする。使用しないもののチェックボックスはオフのままでよい。

  2. ウィザード最終画面で確認画面を表示するので続行し、必要なコンポーネントの組み込みを行う。組み込みが完了すると、[このサーバーはアプリケーション サーバーになりました]という画面が表示される。

このような手順でIISを組み込むと、コンテンツフォルダもできているはずだ。場所は過去のバージョンと同じ「C:\Inetpub\wwwroot」(C: ドライブにWindows Server 2003をセットアップした場合)だ。ここにHTML文書や画像などの関連ファイルを配置すればWebコンテンツとして公開できるし、ASPやASP.NETのファイルを配置することもできる。

このフォルダの下にサブフォルダを作成すると、Webブラウザからアクセスする際のURLでも同名のサブフォルダとして扱われる(ファイル名についても同様)。例えば、「C:\Inetpub\wwwroot\images」というサブフォルダを作成すると、そのサブフォルダのURLは「http://<サーバのホスト名>/images/」となる。

IIS 6.xにおける個別機能の有効化

IIS 6.xではセキュリティや堅牢性を踏まえ、初期状態で利用可能な機能を制限している。初期状態で動作していない機能を利用するには、個別に有効化しなければならない。

例えば、サーバ側で各種のプログラムやスクリプトを実行する手段はさまざまだが、前述したように、IIS 6.xではASP.NETに限って追加に合わせて有効化できる。その他の手段、つまりASPやCGIを利用するには、これらの機能を有効化しなければならない。

このほか、Webサーバと同じHTTPを介してファイル共有を行うWebDAV(これについてはいずれ取り上げる)、データベースにアクセスする機能を提供するIDC(Internet Data Connector)、サーバ側で特定の環境変数の内容をHTML文書中に埋め込んでクライアントに送信するSSIといった機能も同様だ。

これらの機能を有効にするには、IIS管理ツール左側にあるツリー画面で[Webサービス拡張]を選択すると表示される設定画面を利用する。この画面で有効・無効の切り替えを行える機能には、以下のものがある。

  • ASP
  • ASP.NET
  • WebDAV
  • IDC
  • SSI

なお、IISではSSIに「サーバ側インクルード」という訳語を付けている。

画面右側の一覧には、サーバ機能名称の一覧が並んでいる。その中から「有効化」あるいは「無効化」したい機能を選択してから、左側にある[許可][禁止]ボタンをクリックする仕組みだ。また、[プロパティ]をクリックして設定を変更することもできる。

[Webサービス拡張]は、ASP、WebDAV、CGIなどの機能について、実行の可否を指定する際に用いる

IISのサーバ機能と資格情報

他のサーバ機能と同様に、IISの各種機能も「サービス」と呼ばれる表に姿を見せない形で動作するプログラムによって実現されている。サービスを動作させるには資格情報が必要で、多くのサービスは「SYSTEM」または「LocalSystem」の権限で動作している。

しかし、これらのユーザー資格情報はシステムに対し強力な権限を持っているため、サービスが不正侵入者に乗っ取られると、Windowsサーバに対して好き勝手な操作を許してしまうリスクにつながると考えられた。特に、インターネットに接続してWebサーバを設置する機会が多いIISにおいてこの問題は深刻と言える。

そこでIIS 6.xでは、新たに「Network Service」という名前を持つ資格情報を用意している。このユーザーは一般ユーザー相当の権限しか持たず、その資格情報を使ってIISを動作させている。そのため、IISが不正侵入者に乗っ取られるような事態が発生しても、それが原因でシステム全体が危険にさらされるリスクは小さくなった。

逆に言えば、IISを使って何かしようとした場合に、この資格情報が原因で権限不足になる場面があるかもしれないので、頭に入れておきたいポイントだろう。