第 5 章
セキュリティは、自分のワークグループのメンバーだけがアクセスする個人の Web サイトにおいても重要です。コンピュータをイントラネットに接続し、ドキュメントをネットワーク ユーザーが使用できるようにすると、ほかのユーザーが自分のコンピュータにアクセスして偶然または故意に障害を発生させることがあります。
Windows NT オペレーティング システムでは、侵入者から自分のシステムを守ることができます。 Peer Web Services は Windows NT セキュリティ機構に基づいて、監視やセキュリティ機能を提供します。この章では、Windows NT および Peer Web Services の各セキュリティ機構を自分のサイトで効果的に利用するために参考となる情報について説明します。この章には、コンピュータを公共のネットワークに接続する際に必ず理解しておくべき事柄が記述されています。不明な点については、Windows NT のマニュアルを参照するか、Microsoft 公認のソリューション プロバイダなどに問い合わせて問題を解決してから、サイトをインストールしてください。
この章では次の項目について説明します。
Windows NT セキュリティ機能のほかに、インターネット サービス マネージャを使って、読み取り専用あるいは実行専用の仮想ディレクトリを設定することもできます。Peer Web Services では、SSL (Secure Sockets Layer) プロトコルが提供されているので、クライアントとサーバーの間でのデータ転送は安全に行われるように暗号化されます。
Peer Web Services が動作するコンピュータは、ブラウザからデータの要求を受け取ると、その要求が有効かどうかを調べます。各要求に対して適用されるセキュリティ機構の仕組みを示す簡単な概念図を、次の表に示します。
次に、システムを保護するために、Windows NT とインターネット サービスをどのように設定するかについて説明します。
匿名ログオン ユーザー アカウントは、Web サービスを提供しているコンピュータ上で有効な Windows NT ユーザー アカウントである必要があります。また、パスワードはそのコンピュータのユーザー データベースにある、ユーザーのパスワードでなければなりません。ユーザー アカウントおよびパスワードは、Windows NT ユーザー マネージャの [原則] メニューの [ユーザーの権利] で設定します。匿名ログオン ユーザー アカウントは、[ローカル ログオン] の権限を持っている必要があります。
IUSR_computername アカウントは、自分のコンピュータに Peer Web Services をセットアップしている間に、無作為抽出で生成されるパスワードと一緒に自動的に作成されます。たとえば、コンピュータ名が marketing1 の場合には、匿名アクセス アカウント名は IUSR_marketing1 になります。
デフォルトでは、すべての Web クライアントの要求で、このアカウントが使われます。つまり Web のクライアントは、IUSR_computername アカウントを使用してコンピュータにログオンします。IUSR_computername アカウントは、Web サービスを提供しているコンピュータへのローカル ログオンのみ許可されます。
注意 IUSR_computername アカウントは Guests グループにも追加されます。Guests グループの設定を変更した場合、これらの変更は IUSR_computername アカウントにも適用されますので、Guests グループの設定を確認して、それらが IUSR_computername アカウントに正しく対応するようにしてください。
WWW サービスおよび FTP サービスでは、匿名アクセスを許可したり拒否したりできます。Gopher サービスの要求は、すべて匿名です。WWW、FTP、Gopher の各サービスで、匿名要求に使用されるユーザー アカウントおよびそのパスワードを変更できます。
2. WWW サービスの場合は、[匿名を許可] チェック ボックスをオンにします。FTP サービスの場合は、[匿名の接続を許可する] チェック ボックスをオンにします。
3. [OK] をクリックします。
2. [匿名ログオン] の [ユーザー名] ボックスで、新しいユーザー名を入力します。
そのコンピュータ上で認証されるユーザーの権限は、ユーザー マネージャの [原則] メニューで設定することができます。ユーザーの権限は、ユーザーがシステムで特定の活動を行うことを認証します。これには、[ローカル ログオン] 権限が含まれます。この権限は、基本認証が使われている場合に、ユーザーがインターネット サービスを使用するために必要です。
Microsoft 暗号化認証を使用している場合には、インターネット サービスを利用するためには [ネットワーク経由でコンピュータへアクセス] 権限が必要です。デフォルトでは、すべてのユーザーがこの権限を持っています。
セキュリティを強化するには、次のガイドラインに従ってください。
WWW サービスでは、基本認証と Microsoft 暗号化認証 ("NTLM" として参照されることもあります) の 2 つの基本認証が用意されています。
基本認証では、クライアントとサーバーの間の転送は暗号化されません。基本認証では、クライアントの Windows NT ユーザー名とパスワードはそのまま暗号化されずにネットワーク上に送信されるので、侵入者によってユーザー名とパスワードが容易に解読される可能性があります。
Microsoft 暗号化認証を現在サポートしているのは、Microsoft インターネット エクスプローラ 2.0 以降だけですが、これを使用すると、ネットワーク上のログオンの安全性を確保できます。Microsoft 暗号化認証では、クライアントのユーザー アカウントは、クライアントがクライアント コンピュータにログオンするのに使用されます。このアカウントはその Windows NT ドメインを含め、Peer Web Services が動作しているコンピュータで有効なアカウントでなければなりません。このため Microsoft 暗号化認証は、クライアント コンピュータとサーバー コンピュータが同じドメインまたは信頼関係にあるドメインにあるイントラネット環境で役に立ちます。セキュリティを強化するためには、パスワード認証に Microsoft 暗号化認証を使用してください。
デフォルトでは、基本認証と Microsoft 暗号化認証はどちらも利用できます。ブラウザが Microsoft 暗号化認証をサポートしている場合には、Microsoft 暗号化認証が使用されますが、サポートしていない場合には、基本認証が使用されます。現在 Microsoft 暗号化認証をサポートしているのは、インターネット エクスプローラ 2.0 以降だけです。
クライアントの認証を要求できるのは、すべての FTP サービスの要求、または失敗した匿名要求だけです。FTP サービスは基本認証しかサポートしていないので、匿名 FTP 接続を許可するとよりサイトの安全性が確保されます。
2. [基本 (クリアテキスト)] と [Microsoft 暗号化認証] のどちらか一方あるいは両方を選択します。
3. [OK] をクリックします。
2. 失敗した匿名接続に対して認証を行うようにするには、[匿名の接続を許可する] チェック ボックスをオフにします。
3. すべてのクライアント要求に対して認証を行うようにするには、[匿名の接続を許可する] チェック ボックスをオフにします。
クライアント認証が許可されず、匿名接続が許可されている場合、ユーザー名とパスワードを含むクライアント要求は匿名接続と同じように処理され、サーバーはそのユーザー名とパスワードを無視することに注意してください。
"匿名ログオン" ユーザー アカウントが要求しているリソースに対するアクセス権を持っていないために匿名要求が失敗すると、クライアントへの応答で、WWW サービスがサポートしている認証機構が示されます。応答でクライアントにサービスが HTTP 基本認証をサポートするように設定されていることが示された場合、ほとんどの Web ブラウザはユーザー名とパスワードを表示し、匿名要求をユーザーが入力したユーザー名とパスワードを含む身分証明による要求として再度送信します。
Web ブラウザが Microsoft 暗号化認証プロトコルをサポートしていて、WWW サービスがそのプロトコルをサポートするように設定されている場合、権限が適切でないために失敗した匿名 WWW 要求は Microsoft 暗号化認証プロトコルを自動的に使用します。ブラウザはユーザー名と暗号化されたパスワードをクライアントからサービスに送信します。クライアント要求は、クライアントのユーザー情報を使って再処理されます。
WWW サービスが基本認証と Microsoft 暗号化認証の両方をサポートするように設定されている場合、Web サーバーは Web ブラウザにヘッダで両方の認証方法を返します。Web ブラウザは使用する認証方法を選択します。Microsoft 暗号化認証プロトコルはヘッダの最初に表示されるので、Microsoft 暗号化認証プロトコルをサポートしているブラウザはそれを使用します。Microsoft 暗号化認証プロトコルをサポートしていないブラウザは、基本認証を使用します。現在 Microsoft 暗号化認証をサポートしているのは、インターネット エクスプローラ 2.0 以降だけです。
"匿名ログオン" ユーザー アカウントが要求しているリソースに対するアクセス権を持っていないために匿名要求が失敗すると、サーバーはエラー メッセージで応答します。ほとんどの Web ブラウザはユーザー名とパスワードを表示し、匿名要求をユーザーが入力したユーザー名とパスワードを含む身分証明による要求として再度送信します。
ACL は、特定の Windows NT ユーザー アカウントやユーザー グループに、ファイルやフォルダへのアクセスの許可/拒否を行います。インターネット サービスが、クライアント要求に代わってファイルの読み込みや実行を行う場合、サービスが使用するユーザー アカウントは、権限を持っている必要があります。この権限は、ファイルに関連付けられた ACL によって、ファイルの読み込みや実行を行うように適切に決められています。ユーザー アカウントがファイルへのアクセス権を持たない場合、要求は失敗し、クライアントにアクセスが拒否されたことを示します。
ファイルおよびフォルダの ACL は、Windows NT エクスプローラを使って設定します。NTFS ファイルシステムによって、アクセス権を持つユーザーおよびグループを指定してファイルを管理したり、特定のファイルおよびディレクトリに対してユーザーやグループが持つ権限の種類を制御したりできます。たとえば、 あるユーザーには読み取りのみの権限を与え、別のユーザーには読み取り、変更、書き込みの権限を与えることができます。 IUSR_computername や認証されたアカウントが、特定のリソースに対してアクセスを適切に許可あるいは拒否されるようにしてください。
Everyone グループには、IUSR_computername アカウントや Guests グループを含めたすべてのユーザーおよびグループが含まれることに注意してください。デフォルトでは、[Everyone] グループには、NTFS ドライブ上で作成されたすべてのファイルを完全に制御できるだけの権限が与えられています。
NTFS の設定と Microsoft Peer Web Services の設定に、矛盾がある場合には、制約の厳しい設定が優先して適用されます。
Web サイト内のすべてのフォルダのセキュリティ設定について確認を行い、必要に応じて調整してください。通常は、次の表に示す設定を行ってください。
ディレクトリの種類 | 推奨されるアクセス |
コンテンツ | 読み取りアクセス |
プログラム | 読み取りおよび実行アクセス |
データベース | 読み取りおよび書き込みアクセス |
2. Windows NT のエクスプローラで、保護するフォルダ (ディレクトリ) を右クリックし、[プロパティ] を選択します (サイト全体を保護するにはサイトのルートを選択します)。
3. [プロパティ] ダイアログ ボックスで、[セキュリティ] タブをクリックします。
4. [セキュリティ] ダイアログ ボックスで、[アクセス権] を選択します。
5. [ディレクトリのアクセス権] ダイアログ ボックスで、[追加] をクリックし、ユーザーおよびグループを追加します。
6. [ユーザーとグループの追加] ダイアログ ボックスで、アクセスするユーザーを追加します。
7. [OK] をクリックします。
8. [ディレクトリのアクセス権] ダイアログ ボックスで、権限を持つユーザーおよびグループを選択します。
9. [アクセス権の種類] リスト ボックスで、選択したユーザーやグループに与える権限のレベルを選択します。
10. [OK] をクリックします。
ファイルおよびフォルダの監査原則の設定の詳細については、Windows NT のマニュアルを参照してください。
[読み取り] 読み取り権限によって、Web クライアントは、ホーム ディレクトリや仮想ディレクトリに保存されているファイルの読み込みやダウンロードができます。読み取り権限を持たないクライアントがディレクトリ内のファイルの要求を送信すると、Web サーバーはエラーを返します。通常、HTML などパブリッシュする情報を含むディレクトリに読み込み権限を与えます。CGI (Common Gateway Interface) アプリケーションと ISAPI (Internet Server Application Program Interface) DDL を含むディレクトリのに対する読み取り権限を無効にして、クライアントがアプリケーション ファイルをダウンロードできないようにしてください。
[実行] 実行権限によって、Web クライアントは、ホーム ディレクトリや仮想ディレクトリに保存されているプログラムやスクリプトを実行できます。実行権限を持たないクライアントがフォルダ内のプログラムやスクリプトを実行する要求を送信すると、Web サーバーはエラーを返します。セキュリティ上の理由から、コンテンツ フォルダに対する実行権限を与えないようにしてください。
クライアント要求は、CGI アプリケーションや ISAPI (Internet Server Application Program Interface) アプリケーションを実行することができます。次の 2 つの方法があります。
この要求が有効であれば、Httpodbc.dll ファイルは、Web の "パブリッシュ ツリー" (Scripts フォルダなどにある、コンテンツ ファイルを含むディレクトリ構造) 内のどこかに保存されていることになり、保存されているフォルダに実行権限を選択している必要があります。 この方法で、CGI や ISAPI などのアプリケーションが実行されるときに、 管理者がディレクトリを監視する労力を減少させることができます。
この例では、スクリプト ファイル (Pubs.idc) は実行権限を持つ Web パブリッシュ ツリーのフォルダ内に保存されています。サービスは要求の受信中にファイル名の拡張子をマップし、アプリケーションを検索します。このアプリケーションは任意の場所に保存できます。この技術によって、ユーザーは URL にパラメータを付けて CGI や ISAPI アプリケーションを直接実行することができなくなります。これはより安全な仕組みで、すべての Web アプリケーションに使用できます。 詳細については、「第 10 章 レジストリ エントリの設定」の「アプリケーションとインタプリタの関連付け (スクリプト マッピング)」を参照してください。
2. 権限を設定するフォルダを選択します。
3. [プロパティの編集] をクリックします。
4. Web クライアントにフォルダのコンテンツの読み込みおよびダウンロードを許可するには、[読み取り] チェック ボックスを選択します。
5. Web クライアントにフォルダのプログラムやスクリプトの実行を許可するには、[実行] チェック ボックスを選択します。
6. [OK] をクリックし、もう一度 [OK] をクリックします。
注意 フォルダには、実行アクセスと読み取りアクセスを、両方ではなくどちらか一方を設定することを推奨します。スクリプトとプログラムは、静的 Web コンテンツとは別の仮想ルートに置くようにしてください。
このように、Server サービスを、プライベートなネットワーク上でだけ使用する場合は、インターネットに接続しているすべてのネットワーク アダプタ カードにバインドされている Server サービスを、使用できないようにしてください。インターネット経由で Windows NT Server サービスを利用することもできますが、その場合にはセキュリティの実装について十分理解し、Windows NT Server のライセンスの必要条件に従ってください。
Windows NT Server のサービスの使用中は、Microsoft ネットワーク (HTTP プロトコルではなく サーバー メッセージ ブロック (SMB) プロトコル) が使用され、すべての Windows NT Server のライセンスの必要条件が適用されます。HTTP 接続は Windows NT Server のライセンスの必要条件に適用されません。
Microsoft Peer Web Services は、サービス プロトコルの HTTP と TCP/IP との間に介在するデータを保護するプロトコルを提供しています。この SSL (Secure Sockets Layer) と呼ばれるセキュリティ プロトコルは、データの暗号化、サーバー認証、TCP/IP 接続のメッセージ完全化を実現しています。
SSL は標準セキュリティがインターネット上の Web ブラウザおよびサーバーにアプローチするように考慮された W3C ワークグループに属するセキュリティ プロトコルです。SSL では、TCP/IP 接続を導入するために使われるセキュリティ "ハンドシェイク" を用意しています。 クライアントとサーバーのセキュリティ レベルを一致させたハンドシェイクの結果は、 クライアントとサーバーの接続のためのすべての認証要求に使用され履行されます。 SSL の唯一の役割は、HTTP などで使用されているアプリケーション プロトコルのデータ ストリームの暗号化および解読です。HTTP 要求および HTTP 応答の情報はすべて完全に暗号化されます。その中には、クライアントが要求している URL や、クレジットカード番号など形式が決まっているコンテンツ、ユーザー名やパスワードなどすべての HTTP アクセス認証情報、およびサーバーからクライアントに返されるすべてのデータが含まれます。
SSL 対応のサーバーは、Microsoft インターネット エクスプローラ 2.0 以降などの SSL 対応のクライアント (ブラウザ) に対して、インターネット経由で私的な情報の送受信を行うことができます。
SSL の暗号化を使用した転送は、暗号化していない場合に比べると、速度が遅くなります。サイト全体のパフォーマンスを下げないようにするには、クレジットカード情報を含む、フォームのやり取りなど高度な機密情報を扱う仮想フォルダにだけ SSL を使用するようにしてください。
Web サーバーで SSL セキュリティを有効にするには、次の手順に従ってください。
2. 認証機関に認証書を要求します。
3. 認証書をサーバーにインストールします。
4. WWW サービス フォルダで SSL セキュリティを動作させます。
2. [キー] メニューから、[新しいキーの作成] をクリックします。
3. [新しいキーの作成と認証要求] ダイアログ ボックスで、必要な情報を入力します。次のような情報が必要です。
5. パスワードの再入力が指示されたら、再入力して、[OK] をクリックします。
7. 新しいキーを保存するには、[サーバー] メニューから [今すぐ変更を反映] を選択します。
8. 変更をすぐに行うかどうかを確認するダイアログ ボックスが表示されたら、[OK] をクリックします。
作成したキーは、キーを作成したコンピュータの名前の下にある [キー マネージャ] ウィンドウに表示されます。デフォルトでは、キーはローカル コンピュータ上に生成されます。
注意 フィールドではカンマを使わないでください。カンマはそのままフィールドの終端とみなされ、警告を出すことなく間違った要求書を生成してしまいます。
キー ペアを生成したら、認証書を取得してキー ペアでインストールしてください。認証書の取得の詳細については、「認証書の取得」および「キー ペアによる認証書のインストール」を参照してください。
-----BEGIN CERTIFICATE-----
JIEBSDSCEXoCHQEwLQMJSoZILvoNVQECSQAwcSETMRkOAMUTBhMuVrM
mIoAnBdNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMRwwGgYDVQ
QLExNQZXJzb25hIENlcnRpZmljYXRlMSQwIgYDVQQDExtPcGVuIE1hc
mtldCBUZXN0IFNlcnZlciAxMTAwHhcNOTUwNzE5MjAyNzMwWhcNOTYw
NTE0MjAyOTEwWjBzMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIER
hdGEgU2VjdXJpdHksIEluYy4xHDAaBgNVBAsTE1BlcnNvbmEgQ2VydG
lmaWNhdGUxJDAiBgNVBAMTG09wZW4gTWFya2V0IFRlc3QgU2VydmVyI
DExMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDU/7lrgR6vkVNX40BA
q1poGdSmGkD1iN3sEPfSTGxNJXY58XH3JoZ4nrF7mIfvpghNi1taYim
vhbBPNqYe4yLPAgMBAAEwDQYJKoZIhvcNAQECBQADQQBqyCpws9EaAj
KKAefuNP+z+8NY8khckgyHN2LLpfhv+iP8m+bF66HNDUlFz8ZrVOu3W
QapgLPV90kIskNKXX3a
------END CERTIFICATE-----
2. [キー マネージャ] ウィンドウでは、署名入りの認証書に対応するキー ペアを選択します。
4. リストから Certif.txt などの認証書ファイルを選択し、[開く] をクリックします。
5. パスワードを入力するように指示されたら、キーペアの作成時に使用したパスワードを入力します。
7. 変更をすぐに行うかどうかを確認するダイアログ ボックスが表示されたら、[OK] をクリックします。
キーと認証書のバックアップを作成できます。前述の「キーのバックアップ」の手順を参照してください。
2. SSL セキュリティを要求するフォルダを選択し、[プロパティの編集] をクリックします。
3. [SSLチャネル (安全) を要求] オプションをオンにし、[OK] をクリックします。
3. [編集] メニューで、[切り取り] をクリックします。
4. キー ペアの移動先のサーバーを選択します。
5. [編集] メニューで、[貼り付け] をクリックします。
[切り取り] の代わりに [コピー] コマンドを使うと、同じ手順で、別のコンピュータにキー ペアをコピーできます。
2. ハードディスクに注意が必要なデータがダウンロードされることを警告するメッセージを読んだら、[OK] をクリックします。
3. [ファイル名] ボックスにキー名を入力し、[保存] をクリックします。
2. リストからファイル名を選択し、[開く] をクリックします。
2. [プライベート キー ペア ファイル] ボックスで、キー ペアのファイル名を入力するか、[参照] ボタンをクリックしてファイルを選択します。
3. [認証ファイル] ボックスで、認証書のファイル名を入力するか、[参照] ボタンをクリックしてファイルを選択します。
4. [OK] をクリックします。
5. [プライベート キー パスワード] ボックスでプライベート キーのパスワードを入力し、[OK] をクリックします。
キー ファイルは、必要になったときのために、安全な場所に保存してください。キー ファイルをフロッピー ディスクに保存し、セットアップ完了後にローカル システムからキー ファイルを削除する方法を推奨します。キー ファイルに割り当てたパスワードを忘れないようにしてください。
(C) 1996 by Microsoft Corporation. All rights reserved.