運用
IIS安全対策ガイド

5.IIS5の基本セキュリティ設定

井上孝司
2002/06/08


 基盤となるWindows 2000 Server自身のセキュリティ設定を行ったら、次はIISの各部の設定を行う。このガイドラインについては、やはりマイクロソフトの「IIS5ベースライン・セキュリティ・チェックリスト」という文書が詳しいので、これに沿って各種の設定を行っていくことにする。

 ここでは以下の項目について解説するが、後述する「IIS Lockdown Tool」でも行える設定については、解説を簡略化した部分もある。

  • 適切なアクセス権を仮想ディレクトリに設定する
  • IISのログ・ファイルにアクセス権を設定する
  • ログ収集を有効にする
  • すべてのサンプル・アプリケーションを無効に、または削除する
  • IISADMPWD 仮想ディレクトリを削除する
  • 未使用のスクリプト・マッピングを削除する

■適切なアクセス権を仮想ディレクトリに設定する
 マイクロソフトではおおよその目安として、ファイルの種類ごとに以下のようなアクセス権設定を行うように推奨している。ここでいう「アクセス権設定」とは、ファイルやフォルダ自体に設定するアクセス権のことである。すでに述べたとおり、以下のようなアクセス権を設定するには、ファイル・システムとしてNTFSを使用している必要がある。

ファイルの種類
Everyone
Administrators
SYSTEM
CGI(.exe、.dll、.cmd、.pl)
R/W
F/C
F/C
ASPスクリプト(.asp)
R/O
F/C
F/C
インクルード・ファイル(.inc、.shtm、.shtml)
R/O
F/C
F/C
静的コンテンツ(.txt、.gif、.jpg、.html)
R/O
F/C
F/C
仮想ディレクトリに対する推奨されるアクセス権
コンテンツのファイルが書き換えられたりしないように、各ファイルにこのようなアクセス権を設定しておく。
アクセス権の意味:R/O=「読み取り専用(Read Only)」、R/W=「変更(Read/Write)」、F/C=「フル・コントロール(Full Control)」

 また、ファイルの種類ごとにフォルダを分けて仮想ディレクトリを設定し、フォルダ単位で上記のようにアクセス権を設定するという方法もある。

 なお、FTPを使用する際にデフォルトの公開対象となる「C:\inetpub\ftproot」フォルダについては、初期値ではアクセス権が「Everyone:フルコントロール」に設定されているので、これらについてもアクセス権を強化し、必要なユーザーだけがアクセスできるように設定するよう推奨されている。

 理由は、このフォルダに対しては、ユーザーからの書き込みが可能になる場合があるためで、マイクロソフトでは、ユーザーに書き込みを許可する場合はIISと別のドライブに設定するか、あるいはクォータを用いて書き込み可能な総サイズを制限するように推奨している。

■ISのログ・ファイルに適切なアクセス権を設定する
■ログ収集を有効にする
 IISは、ログを記録する方法として、ODBCデータベースに格納する方法と、テキスト形式(W3C拡張ログ形式―W3Cによって決められた、ログ・ファイルの標準的なフォーマット)のログ・ファイルに記録する方法を選択できる。後者の場合、出力先のフォルダは「%systemroot%\system32\LogFiles」となっている。

 このフォルダに対して以下のアクセス権を設定し、管理者以外のユーザーにはアクセス許可を与えないようにする。

  • Administrators―フル・コントロール
  • System―フル・コントロール
  • これ以外のアクセス権は削除する

 なお、ログの形式として[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サーバのポート番号
記録される項目の例

 ログの形式を選択するには、[コントロールパネル]−[管理ツール]−[インターネット サービス マネージャ]を起動する。ここで、ツリーを展開してから設定対象となる[既定のWebサイト]上で右クリックし、[プロパティ]を選択する。

 表示されたダイアログで[Web サイト]タブに移動し、[ログ収集を有効にする]をチェックした上で、[アクティブ ログ形式]で[W3C拡張ログファイル形式]を選択すればよい。

ログの収集の設定
ログの種類は「W3C拡張ログファイル形式」を選択し、出力先のフォルダに適切なアクセス権を設定する。
  アクセス・ログを記録するにはこのタブを選択する。
  ログを有効にするにはこのチェック・ボックスを有効にする。
  ログをテキスト形式で記録するには、この[W3C拡張ログファイル形式]を選択する。
  記録する項目を選択するにはこれをクリックする。

 さらに、[プロパティ]をクリックして[拡張プロパティ]タブに移動すると、ログに記録する項目を選択できる。

ログのプロパティ設定
ログ・ファイルに記録する内容は、ユーザーが選択、設定することができる。
  ログに記録する項目を選択するには、このタブをクリックする。
  記録する項目の一覧。記録したい項目をチェックする。

■すべてのサンプル アプリケーションを無効にするか削除する
 IISをインストールしたときには、以下のようなサンプル・ファイルがインストールされる。これらは実際のサーバ運用には必要ないものであり、セキュリティ・ホールとなる可能性もあるので、削除する必要がある。なお、これらのファイルの削除は、次ページで紹介する「IIS Lockdown Tool」でも行える。

  • IISサンプル:C:\inetpub\iissamples
  • IISドキュメント:C:\winnt\help\iishelp
  • データ・アクセス:C:\program files\common files\system\msadc

■未使用のスクリプト マッピングを削除する
 IISでは、Webサーバで使用されるファイルに付けられるいくつかの拡張子に対して「スクリプト・マッピング」が設定されている。これは、スクリプト・マッピングが登録されている拡張子を持つファイルに対するリクエストがあると、IISがDLLを使ってその要求を処理するというものである。例えば「.shtml」という拡張子を持つファイルを要求すると、それはSSI(Server Side Include―サーバ側でファイルをインクルードする機能)として処理するために、SSINC.DLLというDLLファイルが呼び出される。だが、使用していないファイル形式の拡張子に対するスクリプト・マッピングが有効になっていた場合、攻撃手段として使われる可能性がある。

 そこで、使用していないファイル形式については、拡張子をスクリプト・マッピングの登録から削除する。特に、パスワードのリセットに使われる「.htr」については、必ずマッピングを削除する必要がある。

削除できる機能 対応する拡張子
パスワードのリセット .htr
インターネット・データベース・コネクタ(IDC) .idc
SSI .stm、.shtm、.shtml
インターネット印刷 .printer
インデックス・サービス .htw、.ida、.idq
不要なら削除する必要があるスクリプト・マッピングの一覧
これらのスクリプト・マッピングはセキュリティ・ホールとなるため(これらを狙うウイルス・プログラムも多い)、必要でないマッピングは削除しておくこと。

 この作業は、次項で紹介する「IIS Lockdown Tool」でも行えるが、手作業で削除することもできる。

 まず[コントロールパネル]の[管理ツール]−[インターネット サービス マネージャ]を起動する。ここで、ツリーを展開してから設定対象となる[既定のWebサイト]上で右クリックし、[プロパティ]を選択する。

スクリプト・マッピングの削除(1)
不要なスクリプト・マッピングを削除するには、[既定のWebサイト]の[プロパティ]を選択し、[ホーム ディレクトリ]タブに移動する。
  スクリプト・マッピングの設定は、この[ホーム ディレクトリ]タブで行う。
  スクリプト・マッピングを設定するには、これをクリックする。

 表示されたダイアログで[ホーム ディレクトリ]タブに移動し、[アプリケーションの設定]グループの中にある[構成]をクリックすると、スクリプト・マッピングの一覧が表示される。ここで、不要なものをクリックして選択してから[削除]をクリックすればよい。

スクリプト・マッピングの削除(2)
IISで取り扱うファイルは静的な.htmlファイルだけではない。デフォルトではさまざまな拡張子に対して特別な処理を行う設定になっているが、これがセキュリティ・ホールとなることがある。そのため、不要なスクリプト・マッピングはすべて削除しておく。
  ファイルの拡張子。デフォルトではこのような多くのマッピングが設定されている。
  拡張子に対応するDLLファイル名。例えば.idaというファイルを処理するためには、idq.dllというDLLファイルが呼び出される。
  いずれかの行を選択して、この[削除]をクリックすると、マッピングが削除(解除)される。

■IISADMPWD 仮想ディレクトリを削除する
 Windows NTでIIS4を使用していたマシンをWindows 2000に上書きアップグレードした場合、パスワードのリセットを可能にする「IISADMPWD」という仮想ディレクトリが残る。これはパスワード管理に危険を及ぼす可能性があるので、削除する。Windows 2000 Serverを新規にセットアップした場合は、この仮想ディレクトリは存在しない。

関連リンク
Microsoftセキュリティ
Microsoft TechNet セキュリティ情報一覧
マイクロソフト プロダクト・セキュリティ警告サービス
セキュリティ・ツールとチェックリスト
IIS Lockdown Tool
 

 INDEX
  [運用]IIS安全対策ガイド
    1.Windows 2000とIISのインストール
    2.最新のService PackとSRPの適用
    3.必要な修正プログラムの確認と組み込み
    4.Windows 2000 Serverシステムの基本セキュリティ設定
  5.IIS5の基本セキュリティ設定
    6.IIS Lockdown ToolとURLScanの導入
 
 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間