Administration Pack

公開日: 2009 年 1 月 19 日 (作業者: walterov (英語))

更新日: 2009 年 1 月 19 日 (作業者: walterov (英語))

はじめに

Administration Pack の IIS マネージャー モジュール群を使用して、ホスティング事業者およびその顧客は以下のような作業を実行できます。

  • サーバー構成設定の編集 (管理者のみ)
  • FastCGI 設定の管理
  • ASP.NET 承認の管理
  • カスタム エラーの管理
  • HTTP 要求のフィルタリング規則の編集

この記事の目的は、ホスティング環境で Administration Pack を展開する上で知っておくべき情報をホスティング事業者に提供することです。下の図は、Administration Pack をインストールすると IIS マネージャーに表示される新しいモジュールのアイコンを示しています。

Ff454127.543_ftp1(ja-jp,TechNet.10).jpg

Administration Pack の展開

共有ホスティング環境 <リンク: 共有ホスティングの構成の記事へ> で Administration Pack を展開するには、ファーム内の各 Web サーバーに Administration Pack をインストールする必要があります。あらかじめ構築済みのイメージを使用する場合は、ファーム サーバーの構築に使用するイメージに Administration Pack を組み込んでおく必要があります。この記事で説明されている手順 <リンク: https://technet.microsoft.com/ja-jp/library/ff454096.aspx> に従って Administration Pack をダウンロードし、インストールしてください。

Administration Pack の概要

構成エディター

構成エディターは、構成ファイルを管理するためのモジュールです。このツールは、サーバー管理者のみが使用できます。このツールを使用すると、構成ファイルのすべてのセクション、属性、要素、コレクションを編集できます。これには、system.webServer などの IIS 構成設定や、system.web などの ASP.NET 設定も含まれます。これらの値の編集に加え、値をロックしたり、ロックを解除したりできます。また、操作をスクリプト化したり、ファイル内で値が使用されている場所を検索したりすることもできます。

Ff454127.543_ftp2(ja-jp,TechNet.10).jpg
 
設定に値を入力すると、構成エディターは対応しているデータ型かどうかを検証します。ブール値 (True/False) や列挙値など、指定できる値が限定される型については、指定可能な値がコンボ ボックスに表示されます。さらに、実行する操作をスクリプト化したり、値が使用されている場所をファイル内で検索したりすることも可能です。次のビデオ <リンク: https://blogs.msdn.com/carlosag/archive/2008/03/31/IISAdminPackConfigurationEditor.aspx (英語)> では、以下のさまざまな構成エディターの機能のデモをご覧いただけます。

  • スキーマ駆動 - 構成エディターは、完全な構成スキーマ駆動型のモジュールです (構成スキーマは \windows\system32\inetsrv\config\schema\ にあります)。新たにセクションを作成して構成を拡張すると、そのセクションを構成エディターで管理できます。追加したセクション用に新たに UI を作成する必要はありません。
  • 詳細な情報 - セクションが使用されている場所や、コレクションの要素の継承元といった詳細情報を確認できます。
  • スクリプトの生成 - コードに変更を加えたり、タスクを自動的に実行するコードを生成したりできます。構成エディターは、マネージ コード (Microsoft.Web.Administration を使用)、JavaScript (AHADMIN を使用)、またはコマンド ライン (AppCmd.exe ツールを使用) を生成できます。
  • 検索 - 構成のすべてのセクションとその使用場所を、範囲を指定して高速に検索できます。この機能を活用すると、サーバーの全体像を把握しやすくなります。また、構成のロック違反が発生することを避けられます。さらに、他のさまざまな目的で検索を実行する際にも便利な機能といえます。
  • ロック機能 - 高度なロック機能が備わっており、たとえば、特定の属性をロックしてそれより下位のレベルで使用できないようにしたり、コレクション内の個々のアイテムまたはセクション全体をロックしたりできます。

構成エディターの使用

スクリプトの生成

構成エディターを使用して構成タスクの自動化に役立つスクリプトを生成する方法については、この記事 <リンク: https://technet.microsoft.com/ja-jp/library/ff454097.aspx> を参照してください。サポートされているスクリプトの種類は、C#、Jscript、AppCmd.exe ツールの 3 つです。

構成のコレクション

IIS 7 の一部の構成設定は、コレクション形式で構成されています。出力キャッシュ プロファイル コレクションの編集方法については、この記事 <リンク: https://technet.microsoft.com/ja-jp/library/ee175745.aspx> を参照してください。失敗した要求トレースの規則を新たに追加して、.aspx 要求がステータス コード 401 を返す場合、1 分以内に応答しない場合、ステータス コード 401 を返して 1 分後に応答する場合に要求をトレースする方法については、この記事 <リンク: https://technet.microsoft.com/ja-jp/library/ee175744.aspx> を参照してください。

FastCGI の設定

FastCGI モジュールを使用すると、サーバー上の Web サイトで使用する FastCGI の設定を構成できます。また、ユーザーは FastCGI アプリケーションを追加/削除したり、設定を変更したりできます。下の図は、[FastCGI アプリケーションの追加] ダイアログ ボックスです。

Ff454127.543_ftp3(ja-jp,TechNet.10).jpg
 
FastCGI を使用して PHP アプリケーションをホストする手順の全容については、この記事 <リンク: https://technet.microsoft.com/ja-jp/library/ff454027.aspx#Install_Administration_Pack_for_IIS_7.0> を参照してください。

.NET 承認規則モジュール

.NET 承認規則モジュールは、Administration Pack に含まれる 2 つの ASP.NET モジュールのうちの 1 つです。サイト管理者はこのモジュールを使用して、Web サイトやアプリケーションにアクセスするユーザーの承認規則を指定できます。具体的には、.NET 承認規則モジュールにより、グラフィカル ユーザー インターフェイスを使用して Web コンテンツへのユーザー アクセスを制御する許可規則および拒否規則を作成できます。下の図は、[許可の承認規則の追加] ダイアログ ボックスです。

Ff454127.543_ftp4(ja-jp,TechNet.10).jpg
 
ASP.NET の承認規則をロックする方法については、この記事 <リンク: https://msdn.microsoft.com/ja-jp/library/ms178693.aspx> を参照してください。

ASP.NET URL 承認と IIS 7 URL 承認の違いについては、この記事 <リンク: https://technet.microsoft.com/ja-jp/library/dd939092.aspx#Differences> で説明しています。

.NET のエラー ページ

.NET のエラー ページでは、グラフィカル ユーザー インターフェイスを使用して HTTP エラー応答を構成できます。これには、カスタム エラー ページおよび既定の設定の構成が含まれます。下の図は、[カスタム エラー ページの追加] ダイアログ ボックスです。

Ff454127.543_ftp5(ja-jp,TechNet.10).jpg

HTTP 要求フィルター

HTTP 要求フィルター モジュールは、悪意のある要求から Web サーバーを保護するゲートキーパー コンポーネントです。フィルタリング規則には、次のようなものがあります。

  • 特定のファイル拡張子を持つファイルに対する要求のブロック/ブロック解除
  • "非表示セグメント" リストへの構成セグメントの追加/削除
  • "拒否する URL シーケンス" リストへの URL の追加/削除
  • HTTP 動詞のブロック/ブロック解除
  • サイズ制限付きのヘッダーの追加

この機能は、Windows Server 2008 の付属機能としてリリースされた IIS 7 にも含まれていました。しかし、この IIS 7 にはこの機能を管理する IIS マネージャー モジュールが含まれていなかったため、グラフィカル ユーザー インターフェイスを使って簡単に要求フィルターを構成することはできませんでした。Web.config ファイルに新しい構成を追加して要求フィルターを使用する方法の例については、この記事 <リンク: https://technet.microsoft.com/ja-jp/library/dd939071.aspx> を参照してください。

このブログ記事 <リンク: https://blogs.iis.net/bills/archive/2008/03/23/how-to-un-block-directories-.aspx (英語)> では、要求フィルターを使用してサイトのセクションへのアクセスをブロック/ブロック解除する方法を紹介しています。また、このブログ記事 <リンク: https://blogs.msdn.com/carlosag/archive/2008/03/24/IISAdminPackRequestFiltering.aspx (英語)> では、同様の処理を Administration Pack の IIS マネージャー モジュールを使用して実行する方法を解説しています。

以降のセクションでは、HTTP 要求フィルターの最新の機能について説明します。

要求に含まれる特定の文字列パターンを禁止する規則を作成する

この新しい機能を使って、規則リストを作成できます。規則を指定して、文字列のパターンを HTTP 要求の特定の部分と比較し、その結果に応じて要求を拒否できます。この機能の主な構成は、ApplicationHost.config ファイルまたは Web.config ファイルの system.webServer/security/requestFiltering セクションにある filteringRules セクションにあります。この規則に従って要求が拒否されると、IIS ログには HTTP ステータス コード 404.19 が記録されます。

URL またはクエリ文字列のセーフ リストを作成する

この新しい機能を使用すると、定義されている拒否規則をすべてバイパスできる安全な URL やクエリ文字列を指定できます。たとえば、"/my.login.page.asp" という URL をセーフ リストに含めると、定義されている拒否規則がこの URL によってトリガーされる場合も、常にこの URL を許可することができます。この機能の基本的な構成には、alwaysAllowedUrls 属性と alwaysAllowedQueryStrings 属性が含まれます。これらの属性は、ApplicationHost.config ファイルまたは Web.config ファイルの system.webServer/security/requestFiltering セクションにあります。

クエリ文字列の拒否リストを作成する

SQL インジェクション攻撃は、クエリ文字列の操作によるものが最も一般的です。この新しい機能により、クエリ文字列を検証して、悪意のある要求をフィルタリングできます。

すべての要求に適用される URL シーケンスの拒否リストを作成するには、ApplicationHost.config ファイルまたは Web.config ファイルに denyQueryStringSequences セクションを作成し、拒否したい要求の URL 文字列のリストを追加します。この規則に従って要求が拒否されると、IIS ログには HTTP ステータス コード 404.18 が記録されます。

エスケープされたクエリ文字とエスケープされていないクエリ文字を両方ともチェックする

この新しい機能を使用すると、エスケープされたクエリ文字とエスケープされていないクエリ文字を両方ともスキャンできます。この機能を実行するには、ApplicationHost.config ファイルまたは Web.config ファイルの system.webServer/security/requestFiltering セクションにある unescapeQueryString 属性を使用します。この規則に従って要求が拒否されると、IIS ログには HTTP ステータス コード 404.18 が記録されます。

下の図に、ブロックされるファイル拡張子のリストを示します。

Ff454127.543_ftp6(ja-jp,TechNet.10).jpg
 
HTTP 要求フィルターは、特にセキュリティ シナリオ用に設計および最適化されています。一方、URL 書き換え <リンク: https://technet.microsoft.com/ja-jp/library/ff454115.aspx> は幅広いシナリオに対応しており、セキュリティ シナリオはその 1 つにすぎません。これら 2 つのモジュールの違いの詳細については、この記事 <リンク: https://technet.microsoft.com/ja-jp/library/dd939073.aspx> を参照してください。

まとめ

この記事では、Administration Pack の概要について説明し、共有ホスティング環境で Administration Pack を展開および構成するにあたって、ホスティング事業者が利用できるリソースを紹介しました。