Windows Server 2003 Service Pack 1 をインストールした後に FQDN またはその CNAME エイリアスを使用してサーバーにローカルでアクセスしようとすると、エラー メッセージ: アクセスが拒否されたか、ネットワーク プロバイダーが特定のネットワーク パスを受け入れなかった
この記事では、FQDN またはその CNAME エイリアスを使用してサーバーにローカルでアクセスしようとしたときに発生するエラーの解決策について説明します。
元の KB 番号: 926642
注:
この記事では、セキュリティ設定を下げる方法や、コンピューターのセキュリティ機能をオフにする方法について説明します。 これらの変更を行って、特定の問題を回避できます。 これらの変更を行う前に、特定の環境でのこの回避策の実装に関連するリスクを評価することをお勧めします。 この回避策を実装する場合は、システムの保護に役立つ適切な追加の手順を実行します。
現象
次のような状況を想定します。 Microsoft Windows Server 2003 Service Pack 1 (SP1) は、Windows Server 2003 ベースのコンピューターにインストールします。 これを行うと、完全修飾ドメイン名 (FQDN) または汎用名前付け規則 (UNC) パスの CNAME エイリアスを使用してサーバーにローカルでアクセスしようとすると、認証の問題が発生します: \\servername\sharename。
このシナリオでは、次のいずれかの現象が発生します。
- ログオンウィンドウが繰り返し表示されます。
- "アクセスが拒否されました" というエラー メッセージが表示されます。
- "ネットワーク プロバイダーが指定されたネットワーク パスを受け入れていません" というエラー メッセージが表示されます。
- イベント ID 537 は、セキュリティ イベント ログに記録されます。
注:
サーバーには、WINDOWS Server 2003 SP1 をインストールしたこのコンピューター以外のネットワーク内の別のコンピューターから FQDN またはその CNAME エイリアスを使用してアクセスできます。 さらに、次のパスを使用して、ローカル コンピューター上のサーバーにアクセスできます。
- \\ IPaddress-of-local-computer
- \\ Netbiosname または \\ComputerName
原因
この問題は、Windows Server 2003 SP1 にループバック チェック機能という名前の新しいセキュリティ機能が含まれているために発生します。 既定では、Windows Server 2003 SP1 ではループバック チェック機能が有効になり、DisableLoopbackCheck レジストリ エントリの値は 0 (ゼロ) に設定されています。
注:
ループバック チェック機能は、レジストリ サブキー に格納されます。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\DisableLoopbackCheck
解決方法
重要
このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。
注:
この回避策により、コンピューターまたはネットワークが、悪意のあるユーザーや、ウイルスなどの悪意のあるソフトウェアによる攻撃を受けやすくなる可能性があります。 この回避策はお勧めしませんが、この回避策を独自の裁量で実装できるように、この情報を提供しています。 この回避策は、自己の責任において使用してください。
この問題を解決するには、DisableStrictNameChecking レジストリ エントリを 1 に設定します。 その後、状況に応じて、次のいずれかの方法を使用します。
方法 1 (推奨): NTLM 認証要求で参照できるローカル セキュリティ機関のホスト名を作成する
これを行うには、クライアント コンピューター上のすべてのノードに対して次の手順に従います。
[スタート] ボタン、[ファイル名を指定して実行] の順にクリックし、「regedit」と入力して、[OK] をクリックします。
次のレジストリ サブキーを見つけてクリックします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
MSV1_0を右クリックし、[新規] をポイントし、[複数文字列値] をクリックします。
[ 名前 ] 列に 「BackConnectionHostNames」と入力し、Enter キーを押します。
BackConnectionHostNames を右クリックし、[変更] をクリックします。
[ 値 データ] ボックスに、コンピューター上のローカル共有に使用される CNAME または DNS エイリアスを入力し、[OK] をクリック します。
注:
- 各ホスト名を個別の行に入力します。
- BackConnectionHostNames レジストリ エントリがREG_DWORDの種類として存在する場合は、BackConnectionHostNames レジストリ エントリを削除する必要があります。
レジストリ エディターを終了し、コンピューターを再起動します。
方法 2: 認証ループバック チェックを無効にする
サブキーの DisableLoopbackCheck レジストリ エントリを 1 に設定して、Windows Server 2003 に存在する動作を HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa registry
再度有効にします。 DisableLoopbackCheck レジストリ エントリを 1 に設定するには、クライアント コンピューターで次の手順を実行します。
[スタート] ボタン、[ファイル名を指定して実行] の順にクリックし、「regedit」と入力して、[OK] をクリックします。
次のレジストリ サブキーを見つけてクリックします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Lsa を右クリックし、[新規] をポイントし、[DWORD 値] をクリックします。
「DisableLoopbackCheck」と入力し、Enter キーを押します。
DisableLoopbackCheck を右クリックし、[変更] をクリックします。
[値のデータ] ボックスに「 1」と入力し、[OK] をクリックします。
レジストリ エディターを終了します。
コンピューターを再起動します。
注:
この変更を有効にするには、サーバーを再起動する必要があります。 既定では、Windows Server 2003 SP1 ではループバック チェック機能が有効になり、DisableLoopbackCheck レジストリ エントリは 0 (ゼロ) に設定されています。 認証ループバック チェックを無効にし、NTLM に対する man-in-the-middle (MITM) 攻撃用に Windows Server 2003 サーバーを開くと、セキュリティが低下します。
状態
Microsoft は、この記事の冒頭に記載されている Microsoft 製品の問題であることを確認しました。
詳細
セキュリティ更新プログラムの957097をインストールした後、ローカル NTLM 認証要求を行うときに SQL Server やインターネット インフォメーション サービス (IIS) などのアプリケーションが失敗する可能性があります。
この問題を解決する方法の詳細については、 KB 記事 957097の「このセキュリティ更新プログラムに関する既知の問題」セクションを参照してください。