これまで2回にわたり、IIS 6.xとIIS 7.xの導入手順を解説してきた。続いて、IIS管理ツールの話に進むことにする。ただし、IIS 6.xとIIS 7.xでは管理ツールの体裁がまったく異なるので、まずはIIS 6.x、続いてIIS 7.xについて解説していくことしよう。

普通なら新しいバージョンを先に取り上げるほうが理に適っているかもしれないが、Windows Server 2008ではFTPサーバだけがIIS 6.x用の管理ツールを用いているため、先にIIS 6.xから紹介する。

IIS 6.x用管理ツールの基本

IISの設定を確認・変更するには、[インターネット インフォメーション サービス(IIS)マネージャ]管理ツールを使用する。これは、[スタート]-[管理ツール]以下から呼び出すことができる。

IISで提供するWebサーバには「Webサイト」という概念がある。コンテンツやアプリケーションをひっくるめた1つのまとまりと考えればよいだろう。1台のWebサーバで複数のWebサイトを設置することもできるが、2番目以降のWebサイトは宛先ポート番号をそれぞれ違える必要があるので、ウェルノウンポート(TCP80番)を使用できるWebサイトは1つだけだ。

そのWebサイトは、初期状態で「C:\Inetpub\wwwroot」に対応する[既定のWebサイト]だけが存在する。これも(もしも追加した場合は)、その他のWebサイトでもIISマネージャでWebサイトをクリックして[操作]-[プロパティ]、あるいは右クリックメニューで[プロパティ]を選択することで、設定画面を表示させられる。

[既定のWebサイト]のプロパティを表示させる

表示するダイアログには複数のタブがあり、分野別になっている。以下では、タブごとに解説していこう。

[Webサイト]タブ

このタブは、Webサーバに関する設定を行う際に使用する。設定項目は以下の通り。

説明...管理ツールに表示するWebサイトの名称を指定する。
IPアドレス...複数のネットワークインタフェースを持つコンピュータで意味を持つ項目。特定のインタフェースにだけWebサーバ機能を提供したい場合に、対象となるインタフェースをIPアドレスで指定する。既定値ではすべてのインタフェースが対象になる。
TCPポート...Webサーバで使用するプロトコル/HTTP(Hypertext Transfer Protocol)が使用する宛先ポート番号を指定する。既定値はHTTPのウェルノウンポート「80」だが、前述したように同じコンピュータで複数のWebサイトを設置する場合、2番目以降はそれぞれ異なる宛先ポート番号を割り当てる必要がある。その際にこの項目を使用する。
接続...接続可能なクライアントの数や接続を強制切断するまでのタイムリミットなどを指定できる。
ログ収集を有効にする...[アクティブログ型式]リストボックスで指定した形式で、Webサーバに対するアクセスログを記録する。ログファイルの保存場所や変更頻度も指定可能。既定の保存場所は、「%SystemrRoot%\SYSTEM32\LogFiles\W3SVC1」。なお、[W3C拡張ログファイル形式]を選択した場合に限って、[プロパティ]をクリックすると表示するダイアログで、ログに記録する項目を指定できる(その他の形式では内容は固定)。

[既定のWebサイト]のプロパティを表示させる

[Webサイト]タブでは、Webサーバを公開する対象となるインタフェースの指定や、ログの設定を行える

W3C拡張ログ ファイル形式を使用する場合に限って、ログに記録する項目を指定できる

[パフォーマンス]タブ

ネットワークの帯域幅や、許容する最大接続数を指定する際に使用する。例えば、Webサーバだけでネットワークの帯域を使い尽くしてしまっては困るという時に、ここで上限を設定することで、他の用途で使用するための余力を確保しておける。通常は設定を変更しなくてもよいだろう。

[パフォーマンス]タブでは、帯域制限の設定を行う

[ISAPIフィルタ]タブ

ISAPI(Internet Service Application Programming Interface)とは、CGIよりも効率的にサーバ上でプログラムを実行するための仕様で、IISでのみ利用できる。このISAPIを使用したフィルタプログラムを作成・登録する際、[ISAPIフィルタ]タブで所要の設定を行う。

ISAPIフィルタの例としては、マイクロソフトがIIS 5.0用に提供したセキュリティ強化ツール「IIS Lockdown Tool」に含まれている「URLscan」がある。URLscanは、セキュリティホールを突く目的で送られてくる異常に長いHTTPリクエストを、検出・遮断するものだった。

[ホームディレクトリ]タブ

既定以外の場所にWebサーバのコンテンツを配置する場所を指定するほか、実行可能な権限を指定することもできる。

コンテンツの場所...コンテンツの配置場所を指定する。既定値は「C:\Inetpub\wwwroot」だが、同じコンピュータの別のドライブやフォルダ、ネットワーク経由で別のサーバの共有フォルダや別のWebサーバを指定することもできる。
アクセス権...[ローカル パス]の下にあるチェックボックスを使って、[読み取り][書き込み]について有効/無効を指定できる。普通にWebサーバを運用する場合は読み取りだけ許可すればよいが、WebDAVサーバ機能を使って書き込み可能な形で共有設定を行う時は書き込みも許可する必要がある。ファイルの一覧がユーザーに見えてしまうと危険なので、WebDAVを利用する場合は別として、[ディレクトリの参照]はオフにする。

・スクリプトの実行許可設定...CGI・ASP・ASP.NETなどはサーバ側でプログラムの実行を伴うため、実行の可否を指定しなければならない。選択肢としては、[なし][スクリプトのみ][スクリプトおよび実行可能ファイル]があるが、ASPやASP.NETは[スクリプトのみ]、CGIは[スクリプトおよび実行可能ファイル]を選択する。また、それと合わせてアプリケーションプールの指定を行えるが、それについては追って取り上げる。

[ホーム ディレクトリ]タブでは、コンテンツの配置場所・アクセス許可・実行可能なプログラムの設定を行う

なお、Webサイトや上位のフォルダに設定した内容は、その下のサブフォルダでも継承されるが、下位のサブフォルダで独自に設定を変更することもできる。このことは、特にアプリケーションの実行許可では留意すべきポイントではないかと考えられる。

基本的な考え方として、CGI・ASP・ASP.NETといったプログラム類は特定のフォルダに集約しておいて、そのフォルダにだけ実行許可を与えるのが賢明だろう。バラバラに配置して、フォルダごとに実行許可を与えると、プログラムを実行できるフォルダが増えてしまうからだ。実行許可を与えるフォルダを局限するほうがリスクが低くなるし、監視の目が行き届きやすい。