アクセス制御について
アクセス制御について
Web サーバーを安全に稼働させるためには、Web および FTP のコンテンツに対するユーザー アクセスを適切に制御することが重要です。Windows や IIS のセキュリティ機能を使用することで、Web および FTP のコンテンツに対するユーザー アクセスを効果的に制御でき、Web サイトおよび FTP サイト全体から個々のファイルまで、さまざまなレベルでアクセスを制御することが可能です。
- 匿名アクセス
- WebDAV
- アクセス制御のしくみ
- アクセスの制御に関するガイドライン
匿名アクセス
匿名アクセスは、ほとんどの Web サイトで使用されているアクセス制御方法です。匿名アクセスを使うと、どのユーザーも Web サイトの公開された領域にアクセスできますが、Web サーバーの重要な管理機能やプライベートな情報には、権限のないユーザーはアクセスすることはできません。
Web サーバーを美術館にたとえると、匿名アクセスを許可するということは、一般公開されているギャラリーや展示品を来場者が自由に鑑賞してもよいことを意味します。一方、事務室や学芸員室など、部外者に入られては困る特定の部屋には鍵が掛かっているはずです。同じように、Web サーバーの匿名アクセスを構成する場合、NTFS のアクセス権を適用することで、一般ユーザーがプライベートなファイルやディレクトリにアクセスすることを防ぐことができます。NTFS のアクセス権については、後の「NTFS のアクセス権」を参照してください。
既定の設定では、すべてのユーザーは匿名アカウントを使って Web サーバーにログオンします。インストールの際に、サーバーには、IUSR_computername という名前の特別な匿名ユーザー アカウントが作成されます。たとえば、コンピュータ名が SalesDept1 の場合、匿名アカウント名は IUSR_SalesDept1 になります。サーバーに複数の Web サイトがある場合、すべてのサイトで同じ匿名ユーザー ログオン アカウントを使用することも、サイトごとに異なるアカウントを使用することも可能です。Windows のローカル ユーザーとグループ ユーティリティを使用して、新しい “匿名ログオン;” ユーザー アカウントを作成することもできます。詳細については、「認証について」を参照してください。
WebDAV
WebDAV (Web Distributed Authoring and Versioning) は、ファイル システムなどの格納媒体を HTTP 接続で使用可能にする、HTTP 1.1 規格の拡張機能です。WebDAV は IIS 5.0 に実装されているため、リモートの作成者は、サーバー上のファイルおよびディレクトリとそのプロパティを編集、移動、検索、または削除することができます。WebDAV は、Web サーバーのアクセス権の設定を使用して構成されます。詳細については、「WebDAV の発行」を参照してください。
WebDAV のアクセス権は以下の操作に対して設定できます。
- ディレクトリおよびファイルとそのプロパティの検索
- ディレクトリおよびファイルとそのプロパティの作成、変更、削除、および参照
- ファイルおよびディレクトリのカスタム プロパティの保存および検索
- 共同作業環境でのファイルのロック
WebDAV は、ファイル アロケーション テーブル (FAT) および NTFS の両方で機能します。WebDAV 仕様のドラフトの詳細については、Extensions for Distributed Authoring on the World Wide Web の Web サイト http://www.ics.uci.edu/~ejw/authoring/protocol/draft-ietf-webdav-protocol-06.html、または The Internet Engineering Task Force の Web サイト http://www.ietf.org/ を参照してください。NTFS の詳細については、「NTFS でファイルを保護する」を参照してください。
注 WebDAV は、HTTP 1.1 用に設計されたものです。したがって、FTP サイトなどの非 HTTP サービスでは利用できません。
アクセス制御のしくみ
Windows ファイル システムおよび Web サーバーのセキュリティ機能を適切に構成することで、Web サーバーのコンテンツに対するユーザー アクセスを制御することができます。ユーザーが Web サーバーにアクセスしようとすると、サーバーはいくつかのアクセス制御処理を行ってユーザーを識別し、許可するアクセス レベルを決定します。
次に示すのは、アクセス制御処理の概要です。
- クライアントがサーバーのリソースを要求します。
- サーバーは、認証を行うように構成されている場合、クライアントに認証情報を要求します。ブラウザはユーザーに対してユーザー名とパスワードの入力を求めるか、あるいはこの情報を自動的に提供します。詳細については、「認証について」を参照してください。
- クライアントの IP アドレスを、IIS の IP アドレス制限と照合します。その IP アドレスがアクセスを許可されていない場合は、要求は失敗し、ユーザーに "403 Access Forbidden" というメッセージが返されます。
- IIS は、ユーザーが有効な Windows ユーザー アカウントを持っているかどうかを確認します。有効なアカウントを持っていない場合、要求は失敗し、ユーザーに "403 Access Forbidden" というメッセージが返されます。
- IIS は、要求されたリソースに対する Web のアクセス権をユーザーが持っているかどうかを確認します。アクセス権がない場合は、要求は失敗し、ユーザーに "403 Access Forbidden" というメッセージが返されます。
- Web サイトの管理者が追加したサードパーティのセキュリティ モジュールがある場合は、ここで使用します。
- IIS は、リソースに対する NTFS のアクセス権を確認します。ユーザーがリソースに対する NTFS のアクセス権を持っていない場合は、要求は失敗し、ユーザーに "401 Access Denied" というメッセージが返されます。
- ユーザーに NTFS のアクセス権がある場合は、要求は受け付けられます。
IP アドレスのアクセス制限
特定のコンピュータ、コンピュータのグループ、またはネットワーク全体に対して、Web サーバーのコンテンツへのアクセスを拒否するように Web サーバーを構成できます。ユーザーが Web サーバーのコンテンツに最初にアクセスしようとすると、サーバーは IP アドレス制限の設定と、ユーザーのコンピュータの IP アドレスを照合します。詳細については、「コンピュータに対してアクセスを許可および拒否する」を参照してください。
Web サーバーのアクセス権
特定のサイト、ディレクトリ、およびファイルに対して、Web サーバーの "アクセス権" を構成できます。このアクセス権は、ユーザー固有のアクセス権利に関係なく、すべてのユーザーに適用されます。たとえば、特定の Web サイトのコンテンツを更新しているあいだは、その Web サイトの読み取りアクセス権を無効にして、ユーザーがアクセスできないようにすることができます。ユーザーがその Web サイトにアクセスしようとすると、サーバーから "Access Forbidden" というエラー メッセージが返されます。一方、読み取りアクセス権を有効にすると、サイトを表示できるユーザーを NTFS のアクセス権で制限していない限り、すべてのユーザーに Web サイトの表示を許可することになります。詳細については、「Web サーバーのアクセス権を設定する」を参照してください。
Web サーバーのアクセス権のレベルは、次のとおりです。
- [読み取り] (既定で選択) ファイルのコンテンツおよびプロパティを表示できます。
- [書き込み] ファイルのコンテンツおよびプロパティを変更できます。
- [スクリプト ソース アクセス] ソース ファイルにアクセスできます。[読み取り] チェック ボックスがオンになっている場合はソース コードを読み取ることができ、[書き込み] チェック ボックスがオンになっている場合はソース コードに書き込むことができます。[スクリプト ソース アクセス] チェック ボックスをオンにすると、ユーザーは ASP アプリケーションのスクリプトなどの、ファイルのソース コードにアクセスすることができます。このオプションは、[読み取り] チェック ボックスまたは [書き込み] チェック ボックスのいずれかがオンになっている場合にのみ使用できます。
- [ディレクトリの参照] ファイルの一覧およびコレクションを表示できます。
- [ログ アクセス] Web サイトへのアクセスごとにログ エントリが作成されます。
- [このリソースに索引をつける] インデックス サービスで、このリソースに索引を付けることができます。
NTFS のアクセス権
インターネット インフォメーション サービスは、NTFS のアクセス権を使って、権限のないアクセスから個々のファイルおよびディレクトリを保護します。すべてのユーザーに一律に適用される Web サーバーのアクセス権とは異なり、NTFS のアクセス権では、コンテンツにアクセスできるユーザーと、そのユーザーがコンテンツに対して実行できる操作を、厳密に定義できます。
NTFS のアクセス権のレベルは次のとおりです。
- [フル コントロール] ファイル、ファイルに関連付けられたプロパティ、およびディレクトリに対して、変更、追加、移動、削除を実行できます。また、すべてのファイルおよびサブディレクトリに対するアクセス権の設定を変更できます。
- [変更] ファイルとファイルのプロパティを表示、変更、削除、追加できます。
- [読み取りと実行] スクリプトなどの実行可能ファイルを実行できます。
- [フォルダの内容の一覧表示] フォルダの内容の一覧を表示できます。
- [読み取り] ファイルおよびファイルのプロパティを表示できます。
- [書き込み] ファイルに書き込むことができます。
- [アクセス権なし] すべてのチェック ボックスがオフになっている場合、上位レベルの親ディレクトリにアクセスできる場合でも、このリソースに対するアクセスは一切許可されません。
随意アクセス制御リスト (DACL) とも呼ばれるアクセス権の一覧は、個々のファイルまたはディレクトリに対して定義します。DACL を定義する場合は、Windows の特定のユーザー アカウントまたはユーザー グループを選択し、そのユーザーまたはグループに対するアクセス許可を指定します。
次の表は、架空の Microsoft Word ドキュメント MYSERVER:\Administration\Accounts.doc に対するアクセス制御リストの内容です。
Windows 2000 のユーザー アカウントまたはユーザー グループ | アクセス権 |
---|---|
MYSERVER\Administrators | フル コントロール |
MYSERVER\JeffSmith | 変更 |
MYSERVER\Guests | アクセス権なし |
Administrator グループのメンバを除けば、"JeffSmith" という名前のアカウントだけが、Accounts.doc を変更する権限を持っています。Windows の Guest ユーザー グループのメンバとしてログオンする一般のユーザーは、Accounts.doc に対するアクセスを明示的に禁止されています。
NTFS のアクセス権を設定した場合、制限されたファイルへのアクセスを許可する前に、Web サーバーでユーザーを識別、つまり "認証" する方法が必要になります。有効な Windows アカウントのユーザー名とパスワードの提示をログオンするユーザーに要求するように、サーバーの認証機能を構成できます。詳細については、「認証について」を参照してください。
重要 NTFS の DACL の設定が正しくない場合、ブラウザがユーザーに対してユーザー情報の提示を求める場合があります。たとえば、DACL の設定によってファイルへのアクセスが許可されていないユーザーに対して、IIS はアクセス拒否のエラー メッセージを発行します。この結果、ブラウザはユーザーに対して別のユーザー名とパスワードを入力するように要求します。
注 サーバーの安全を確保するには、不要なユーザーやグループ、または用途に関係のないグループを削除する必要があります。ただし、詳細の変更をせずに Web リソースの DACL から Everyone グループを削除すると、非匿名アクセスも使用できなくなる可能性があります。非匿名アクセスを正常に機能させるには、特定のユーザーまたはユーザー グループに次のアクセス権を指定する必要があります。
- Administrator [フル コントロール]
- Creator/Owner [フル コントロール]
- System [フル コントロール]
手順については、「NTFS でファイルを保護する」と「ディレクトリおよびファイルに対する NTFS のアクセス権を設定する」を参照してください。
アクセスの制御に関するガイドライン
ここで説明するセキュリティのガイドラインに従うことにより、Web サーバーのセキュリティに対する脅威を減らすことができます。適切なアクセス制御のポリシーを実装し、Web サーバーと Windows のセキュリティ機能を正しく設定した場合、確実なセキュリティ構成を実現できます。
注 金融機関のようにセキュリティを特に必要とする業界向けのアプリケーションを開発する場合は、適切なセキュリティの方針と手順の設定について、セキュリティ専門のコンサルティング会社によるサポートを受けることをお勧めします。
Web サーバーのコンテンツを適切に保護するには、セキュリティ ポリシーに以下のガイドラインが必要です。
強固なパスワードのポリシーを維持する
権限を持たないユーザーでも、ユーザー アカウントのパスワードを盗んだり推測したりすることで、Web サーバーにアクセスできる可能性があります。すべてのパスワード、中でも特に管理者権限を保護するためのパスワードは、容易に察知することのできないものにする必要があります。"強固な" パスワードを選択するには、次のガイドラインに従います。
- パスワードには、一般的な言葉を使わないようにします。システムに危害を加えようとする第 3 者は、特殊なディクショナリ参照プログラムを使用して、パスワードの推測を試みることがあります。
- パスワードは、大文字と小文字の両方を含む 8 文字より長い文字列にします。パスワードには数字も使うようにし、可能であれば特殊文字も含めます。
- ユーザーには、パスワードを定期的に変更させるようにします。
Web サーバーの管理者権限へのアクセスを制限する
Web サーバーの "Administrators" グループへのアクセスは制限する必要があります。Administrators グループのメンバは、Web サーバー全体とそのセキュリティ機能を自由に制御できます。次の手順で、Administrators グループのメンバシップを管理します。
- 管理者権限は、信頼できる個人にだけ与えるようにします。
- Administrator アカウントはネットワーク ドメインの管理にのみ使用します。インターネットのコンテンツを参照する場合は、Windows のユーザー グループ Guest と同程度の権限を持つ別のユーザー アカウントを使用します。これにより、インターネット上に公開されるコンピュータのプロセスが制限されます。
- 新しいユーザー グループを作成するときは、内容を自由に操作できるフル コントロールのアクセス権を割り当てないようにします。
- Administrator アカウントのパスワードは定期的に変更します。
- Administrator としてログオンしているあいだは、信頼できないプログラムを実行しないように注意します。
- Web サーバーをリモートで管理する際には、SSL のセキュリティ機能を使用します。
厳格なアカウントのポリシーを維持する
Windows のグループ ポリシーを使用して、Windows のユーザー グループに "ユーザー権限のポリシー" を指定します。ユーザー権限のポリシーによって、ユーザーが実行できる Web サーバーおよび Windows の管理操作が決まります。たとえば、一般ユーザーが Web サーバーをリモートからシャット ダウンする権限を持たないように、権限のポリシーを設定できます。Web サーバーおよびそのリソースを変更できる権利を誤ってユーザーに与えることがないよう、原則としてユーザー権利のポリシーは十分厳しく設定する必要があります。詳細については、Windows のマニュアルまたは『Microsoft Windows 2000 Server リソース キット』を参照してください。
Web サーバーのセキュリティの詳細については、『Microsoft Windows 2000 Server リソース キット』の「IIS リソース ガイド」を参照してください。