WindowsXPでWebサーバを立てる
WindowsXPに標準で付属しているWebサーバIIS5.1(Internet Information Services5.1)をインストールしていきます。尚、IIS5.1は制限がありますので注意してください。
1.IIS5.1の制限項目
| 制限項目 | 内容 |
| 単一のWebサイトのみ作成可能 | Server版付属のIISのように、1つのマシンで複数のWebサイトを構築することはできない。またWebページ・ファイルの保存場所はローカル・ディスクのみを指定可能で、ネットワーク上の共有ディレクトリを指定したり、他のURLにリダイレクトしたりはできない |
| TCPでの同時接続数は最大10個まで | TCPレベルでの同時接続数が最大で10個までに制限される。1人のユーザーが多数のTCP接続を開始している場合には、それだけで10個のTCP接続がいっぱいになってしまう可能性がある |
| HTTP圧縮機能 | HTTP圧縮機能は、これをサポートするWebサーバとWebブラウザ間で、ページを高速に転送するための技術。Server版のIISでは、この機能によりネットワーク・トラフィックを軽減できるようになっている |
| IPアドレスとドメイン名の制限機能 | IPアドレスやドメイン名によって、Webサーバへのアクセスを制限する機能 |
| プロセス調整機能 | ASPなどによる外部アプリケーション・プロセスを高速実行するための調整機能 |
| Webサイト・オペレータの変更機能 | Windows OSの管理者権限とは別に、一部のWebサイト管理機能だけを利用可能なサイト・オペレータに任意のユーザー・グループを指定する機能 |
| ODBC経由でのログ収集機能 | 大量のログを収集・管理するためのデータベース・インターフェイス |
| 帯域幅調整機能 | Webサーバで使用する帯域幅を調整する機能 |
2.IISのインストール
IIS のインストールおよびコンポーネントの追加/削除を実行するには
- [コントロール パネル] 内の[プログラムの追加と削除] をダブルクリックし、[プログラムの追加と削除] ダイアログ ボックスを表示します。
- ダイアログ ボックスの左側の列で、[Windows コンポーネントの追加と削除] をクリックします。
- Windows コンポーネント ウィザードで [次へ] をクリックします。
- Windows コンポーネントのリストで [インターネット インフォメーション サービス (IIS)] を選択します。
- [次へ] をクリックし、その後の指示に従います。
- ダイアログ ボックスのコンポーネントの中のインターネット インフォメーション サービス(IIS)のチェックボックスをオンにする。
- デフォルトで不要なサブコンポーネントがインストールされてしまいセキュリティ的に良くないので詳細ボタンをクリックする。するとサブコンポーネントの一覧が出てくる。

セキュリティ上推奨設定でインストールしてください。
| IISコンポーネント | デフォルト設定 | 推奨設定 |
| インターネット インフォメーション サービス(IIS) | ||
| FrontPage 2000 Server Extentions | ○ |
× |
| FTP(File Transfer Protocol)サーバー | × |
△ |
| SMTP Service | ○ |
× |
| WWW(World Wide Web)サーバー | ○ |
○ |
| インターネット インフォメーション サービス スナップイン | ○ |
○ |
| オンライン ヘルプ | ○ |
× |
| 共通コンポーネント | ○ |
○ |
インストールが完了した後、Admin権限のあるユーザでログインしブラウザのURLに「http://localhost/」を入力しIISのデフォルト画面が表示されれば正常にインストールが完了している。
3.Windows Update
IISをインストールし終わったらWindows Updateを行い、必ずセキュリティパッチを全て適用する。Updateを行わない場合、さまざまなセキュリティホールを突かれ、システムが壊れてしまう可能性があるので十分注意しなければならない。現在セキュリティツールがマイクロソフトから提供されているのでそれらもインストールしておいたほうがよいでしょう。しかし不用意にインストールしてしまうとユーザから見れなくなってしまう設定になる可能性が高いため慎重に導入すること。
監視、監査、侵入検出ツール
IIS Web Server Lockdown Wizard
URLScan セキュリティ ツール
4.IISのセキュリティ構成
・適切なNTFSアクセス権を設定する
IISをインストールするとCドライブ直下にInetpubのフォルダが作られる。
InetpubのデフォルトNTFSアクセス権| ComputerName\Administrators | フル コントロール |
| CREATOR OWNER | なし |
| INTERACTIVE | フォルダの内容の一覧表示 |
| NETWORK | フォルダの内容の一覧表示 |
| System | フル コントロール |
| ComputerName\Users | 読みとりと実行 |
wwrootのアクセス権
| ComputerName\Administrators | フル コントロール |
| Everyone | 読みとりと実行 |
| System | フル コントロール |
Everyoneのアクセス権を削除してしまうと匿名アクセスからも閲覧を失敗してしまうので一般のインターネットユーザに公開する場合は、消さないようにしましょう。
wwwrootフォルダを選択し、プロパティのセキュリティの詳細設定をクリックすると下記ウィンドウが表示されます。3つのアクセス許可を確認し赤枠で囲ってあるところにチェックを入れます。これで、wwwroot配下のフォルダは全て『Administrators』『Everyone』『SYSTEM』に置き換えられます。
・適切なIIS Webサイトアクセス許可を設定する
IISのWebサイトのアクセス許可| Web サイトのアクセス許可 | 与えるアクセス許可 |
| 読み取り | ユーザーは、ディレクトリやファイルのコンテンツとプロパティを参照できます。このアクセス許可は、既定で選択されます。 |
| 書き込み | ユーザーは、ディレクトリやファイルのコンテンツとプロパティを変更できます。 |
| スクリプトソースアクセス | ユーザーはソースファイルにアクセスできます。「読み取り」が許可されている場合にはソースを読み取ることができ、「書き込み」が許可されている場合にはスクリプトソースコードを変更できます。スクリプトソースアクセスには、スクリプトのソースコードが含まれています。「読み取り」と「書き込み」のどちらも許可されていない場合は、このオプションは使用できません。 重要 スクリプトソースアクセスが許可されている場合は、ユーザー名やパスワードなどの重要な情報まで参照できます。また、IIS サーバーで実行されているソースコードを変更したり、サーバーのセキュリティやパフォーマンスに重大な影響を与えることもできます。 |
| ディレクトリの参照 | ユーザーはファイルのリストとコレクションを参照できます。 |
| ログアクセス | Web サイトにアクセスするたびに、ログエントリが作成されます。 |
| このリソースにインデックスを付ける | インデックスサービスでリソースに索引を付けることができます。これにより、リソースに検索を実行することができます。 |
| 実行アクセス権 | 次のオプションで、ユーザーのスクリプト実行レベルを決定します。
|
推奨設定は色分けしてある項目にチェックを入れる(下記参照)

・IISログファイルのアクセス権を設定する
IISが生成するログファイルは(C:\WINDOWS\system32\Logfiles\W3SVC1)です。下記のようなアクセス権に設定してください。不正ユーザがログファイルの改ざんや消去するのを防止するのに役立ちます。
| ComputerName\Administrators | フル コントロール |
| System | フル コントロール |
・IISログの収集を有効にする
IISが"W3C拡張ログファイル形式"でログを取得するように設定します。IISの管理コンソールを起動し、対象のWebサイトを選択してそのプロパティを開きます。W3C拡張ログファイル形式を選択します。

プロパティを開き、その中の拡張プロパティのタブから以下に示すフィールドにチェックを入れます。
| クライアントIPアドレス(C-IP) | アクセスしてきたクライアント・マシンのIPアドレス |
| ユーザー名(cs-username) | アクセスしてきたユーザーの名前 |
| メソッド(cs-method) | GETやPOST、HEAD、PUTなど |
| URI Stem(cs-uri-stem) | アクセスされたURI(例:/index.htmlなど) |
| URIクエリ(cs-uri-query) | 検索文字列(URI中の'?'以降の部分) |
| プロトコルの状態(sc-status) | 200とか404といった、HTTPのステータス(正常終了とかページが見つからないなどのエラーを表わす) |
| Win32 の状態(sc-win32-status) | Windows関数のステータス |
| ユーザー・エージェント(cs(User-Agent)) | ブラウザ識別用文字列 |
| サーバIPアドレス(s-ip) | WebサーバのIPアドレス |
| サーバー・ポート(s-port) | Webサーバのポート番号 |
・サンプルアプリケーションの削除
IISをインストールすると既定でいくつかのサンプルがインストールされますが全て削除してください。
| 削除する仮想フォルダ |
| IISHelp |
| IISSamples |
| MSADC |
| Printers |
削除の方法は管理コンソールで削除したい仮想フォルダを右クリックし削除を選択してください。
・未使用のスクリプトマッピングを削除する
これらの拡張子や機能を使用しないのであれば、次の手順に従って、このマッピングを削除する必要があります。 サイトのプロパティを開きホームディレクトリの構成をクリックします。

アプリケーションの構成が表示されたら不要な拡張子の項目を削除していきます。

マイクロソフトでは以下の拡張子の削除を推奨しています。
| 使用しない機能 | 削除するエントリ |
|---|---|
| Web ベースのパスワード リセット | .htr |
| Internet Database Connector (すべての IIS 5 Web サイトは ADO または同様の技術を使用する必要があります) |
.idc |
| サーバー サイド インクルード | .stm, .shtm および .shtml |
| インターネット印刷 | .printer |
| Index Server | .htw, .ida および .idq |
5.IIS Lockdown ToolとURLScanの導入
「IIS Lockdown Tool」と「URLScan」を導入する。これらのツールを使用すると簡単にセキュリティを高めることができます。また不要なサンプルやスクリプトマッピングを削除してくれるツールです。注意しなければならないのが、設定を間違えてウィザードを進めていくと今まで機能していたWebアプリなどが動作しなくなる可能性があります。テスト環境で十分に動作を確認しながら設定を行ってください。
また『URLScan』は『IIS Lockdown Tool』と同時にインストールされるツールで、特定の HTTP リクエストをブロックすることにより、不正なリクエストがサーバーに渡され、障害が起きるのを防ぎます。
・IIS Lockdown Toolのインストール
マイクロソフトかここよりダウンロードします。
任意の場所に保存したら『iislockd.exe』をダブルクリックします。ウィザードが起動したら『次へ』。
『I agree(同意します)』をチェックし『次へ』。

各自の環境に適応したテンプレートを選択し、『View template settings』にチェックを入れて『次へ』。

自動的にIISでインストールしてあるサービスを判別してくれるのでそのまま『次へ』。

不要なスクリプトマッピングを選択する。
仮想ディレクトリも自動判別して削除していないものにチェックが入る。
●アクセス権の設定を行うための指定。匿名アクセス用アカウントによる、これらの機能へのアクセスを禁止するために使用する。
◆HTTPプロトコル経由でファイルをやりとりするWebDAV機能を無効にするためにはこのチェック・ボックスをオンにする。

URLScanをインストールする場合にチェックを入れる。このツールのインストールをお勧めします。
変更項目が表示されます。
『View Report』をクリックすると変更された項目のログが表示される。何が変更されたか確認するためにこのログを保存しておく。
これで完了です。
完了後は、ホームページを確認して表示されないページが無いか、cgiなどの動作確認を徹底しなければいけない。もし動作しないようであれば、設定を元通りに戻すことができます。
IIS Lockdown Toolの設定を元に戻す方法
任意の場所に保存してある『iislockd.exe』をダブルクリックする。すると、既にLockdown Tool が設定されていますと表示されます。

元に戻ってしまうがいいですかと聞かれるので『はい』をクリックする。

復元が実行されます。

これで元の状態に戻すことができます。
