The Cable Guy: Windows 7 と Windows Server 2008 R2 の DNS クライアント サービスで行われた変更

Joseph Davies

Windows 7 と Windows Server 2008 R2 のドメイン ネーム システム (DNS) クライアント サービスには、次に示すような、いくつかの新しい重要な要素があります。

  • 名前のデボルブ動作の変更
  • 名前解決ポリシー テーブル (NRPT)
  • DNS セキュリティ (DNSSEC)

これらの各要素の詳細を知ると、DNS をより効果的かつ効率的に使用できるようになります。

名前のデボルブ動作の変更

名前のデボルブは、Windows の DNS クライアント サービスの動作です。これを使用すると、Active Directory ドメイン サービス (AD DS) ユーザーは、リソースの完全修飾ドメイン名 (FQDN) ではなく、リソースに単一ラベルの非修飾名を指定できます。名前のデボルブが有効になっている場合、Windows では、コンピューターのプライマリ ドメイン サフィックスの一部を単一ラベルの名前に追加し、結果として想定される複数の FQDN ごとに、別個の DNS クエリを送信します。

たとえば、corp.contoso.com ドメインに属しているコンピューターのユーザーが server1 という名前を使用すると、ユーザーに代わって、名前のデボルブが server1.corp.contoso.com と server1.contoso.com に自動的にクエリします。

名前のデボルブは、プライマリ ドメイン サフィックスのみで発生します。プライマリ ドメイン サフィックスがない場合、接続固有の DNS サフィックスの場合、またはグローバル サフィックスの検索一覧を構成している場合、名前のデボルブは発生しません。

Windows 7 と Windows Server 2008 R2 以前のバージョンの Windows では、名前のデボルブが、プライマリ ドメイン サフィックスの第 2 レベル ドメインの名前まで継続されました。たとえば、コンピューターが wcoast.corp.contoso.com ドメインに属している場合に、コマンド プロンプトで「ping server1」と入力すると、DNS クライアント サービスが、server1.wcoast.corp.contoso.com、server1.corp.contoso.com、および server1.contoso.com に別個の DNS クエリを送信します。

デボルブ レベルとは、プライマリ ドメイン サフィックスのラベルの数を表し、この数に達すると、名前のデボルブが停止します。Windows 7 と Windows Server 2008 R2 以前のバージョンの Windows で、マイクロソフト セキュリティ アドバイザリ (971888): DNS デボルブ用の更新プログラムがインストールされていない場合は、名前のデボルブ レベルが 2 になります。このレベルは構成することができないので、これは問題になります。

デボルブ レベル 2 に関するセキュリティ上の問題

デボルブ レベルを 2 に設定し、新しい種類のインターネット名を使用すると、ドメインに参加しているコンピューターが、インターネット上で、悪意のある可能性があるコンピューターに接続するおそれがあります。たとえば、コンピューターのプライマリ ドメイン サフィックスが westcoast.corp.contoso.co.us で、ユーザーが server1 に接続しようとする場合に、DNS の名前のデボルブ レベルが 2 に設定されていると、次の名前が試行されます。

  • server1.westcoast.corp.contoso.co.us
  • server1.corp.contoso.co.us
  • server1.contoso.co.us
  • server1.co.us

最後の名前 (server1.co.us) は、Contoso Corporation の制御の範囲外です。server1.co.us が登録されている場合は、DNS 名前解決が成功し、コンピューターが接続を試みます。server1.co.us サーバーの所有者に悪意がある場合、この所有者はイントラネット サーバーになりすますことができます。

新しい名前のデボルブの動作

DNS デボルブの新しい既定の動作では、この可能性が阻止されます。Windows 7、Windows Server 2008、またはマイクロソフト セキュリティ アドバイザリ (971888): DNS デボルブ用の更新プログラムがインストールされている以前のバージョンの Windows を実行しているコンピューターでは、DNS デボルブは次のように動作します。

  1. AD DS フォレスト ルート ドメインのラベルの数が 1 つの場合またはプライマリ DNS サフィックスの末尾にフォレスト ルート ドメインが付加されていない場合、デボルブは無効になります。
  2. プライマリ DNS サフィックスの末尾にフォレスト ルート ドメインが付加されている場合、デボルブ レベルはフォレスト ルート ドメインのラベルの数になります。

たとえば、コンピューターが westcoast.corp.contoso.co.us ドメインに属していて、フォレスト ルート ドメイン名が corp.contoso.co.us の場合、デボルブ レベル (corp.contoso.co.us のラベルの数) は 4 になります。コンピューターが westcoast.corp.contoso.com ドメインに属していて、フォレスト ルート ドメイン名が corp.contoso.co.us の場合、デボルブは無効になります (westcoast.corp.contoso.com の末尾に corp.contoso.co.us が付加されていないため)。この既定の動作によって、デボルブ レベルでは、組織の制御の範囲外で名前の解決が試行されなくなります。

また、プライマリ DNS サフィックスのデボルブ レベルのグループ ポリシー設定を使用して、デボルブ レベルを手動で設定することもできます。ただし、デボルブ レベルを手動で指定する場合は、このデボルブ レベルの値を変更すると、ドメイン内で、クライアント コンピューターがリソース名を解決する機能に影響を及ぼす可能性があることに留意してください。デボルブ レベルを高く設定しすぎると、名前のデボルブの機能が損なわれるおそれがあります。

たとえば、コンピューターが wcoast.corp.contoso.com ドメインに属している場合に、デボルブ レベルを 4 に設定すると、ユーザーが server1 に接続しようとするとき接続が試行される FQDN は、server1.wcoast.corp.contoso.com だけになります。server1 サーバーの FQDN が server1.corp.contoso.com の場合、ユーザーは server1 ではなく、server1.corp.contoso.com という FQDN を使用する必要があります。

名前のデボルブの動作を構成する

IPv4 または IPv6 の [TCP/IP 詳細設定] ダイアログ ボックスの [DNS] タブから、名前のデボルブを有効にできます。図 1 に例を示します。

[DNS] タブの DNS デボルブの設定

図 1 [DNS] タブの DNS デボルブの設定

[プライマリおよび接続専用の DNS サフィックスを追加する] をクリックして、[プライマリ DNS サフィックスの親サフィックスを追加する] チェック ボックスをオンにすると、名前のデボルブが有効になります。

また、[コンピューターの構成]、[ポリシー]、[管理用テンプレート]、[ネットワーク]、[DNS クライアント] の各ノードを順に展開し、次のグループ ポリシー設定を使用して、名前のデボルブを構成することもできます。

  • プライマリ DNS サフィックスのデボルブ レベル

[未構成] に設定されていますが、デボルブ レベルの既定値は 2 です。この設定は、HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\UseDomainNameDevolution (REG_DWORD) のレジストリ値を使用して設定することもできます (有効にするには 1 を、無効にするには 0 を設定します)。

  • プライマリ DNS サフィックスのデボルブ

既定では、[未構成] に設定されています。この設定は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\DomainNameDevolutionLevel (REG_DWORD) のレジストリ値を使用して設定することもできます。

グループ ポリシー設定が構成されている場合、ローカル レジストリの設定は無視されます。Windows 7 または Windows Server 2008 R2 以前のバージョンの Windows では、マイクロソフト セキュリティ アドバイザリ (971888): DNS デボルブ用の更新プログラムがインストールされているコンピューターに、プライマリ DNS サフィックスのデボルブ レベルとプライマリ DNS サフィックスのデボルブの設定が適用されます。

名前解決ポリシー テーブル

DNS 名前空間の特定の部分についての名前クエリで特殊な処理が必要なテクノロジのために、Windows 7 と Windows Server 2008 R2 には名前解決ポリシー テーブル (NRPT) が含まれています。DirectAccess と DNSSEC では、次のような場合に NRPT を使用します。

  • インターネット上で、DirectAccess クライアントが、DirectAccess サーバーへの暗号化接続を経由して、イントラネット名の DNS クエリをイントラネット DNS サーバーに送信する場合。NRPT の規則により、イントラネットの名前空間とイントラネット DNS サーバーが指定されます。
  • Windows 7 ベースのコンピューターでは、DNS サーバーを承認するために、指定された名前空間内の名前に対する DNSSEC ベースの DNS クエリを送信し、DNS リゾルバーを検証することにより、DNSSEC 検証が確実に実行されるようにします。NRPT の規則により、DNSSEC ベースのクエリの名前空間と、DNSSEC 検証が必要かどうかが指定されます。

NRPT には、名前または名前空間の規則と、必要な特殊処理の設定が含まれています。DNS 名前解決を実行する際には、DNS 名のクエリを送信する前と応答を処理するときに、DNS クライアント サービスによって NRPT が確認されます。NRPT のエントリと一致するクエリと応答には、指定の特殊処理が適用されます。NRPT のエントリと一致しないクエリと応答は、通常どおりに処理されます。

グループ ポリシー ([コンピューターの構成]、[ポリシー]、[Windows の設定]、[名前解決ポリシー] の各ノードを順に展開します)、Windows レジストリ、または DirectAccess のセットアップ ウィザード (DirectAccess ベースのエントリの場合) によって、NRPT を構成できます。DNSSEC ベースのエントリについては、グループ ポリシーを使用して構成することをお勧めします。また、DirectAccess ベースのエントリについては、DirectAccess のセットアップ ウィザードを使用して構成することをお勧めします。

図 2 に、グループ ポリシー ベースの NRPT の構成を示します。

グループ ポリシー ベースの NRPT の構成

図 2 グループ ポリシー ベースの NRPT の構成

詳細については、2010 年 2 月号の The Cable Guy コラム「名前解決ポリシー テーブル」を参照してください。

DNS セキュリティ

DNS プロトコルは、信頼できる名前解決応答の認証や検証を行うようには設計されていません。従来は、このようなセキュリティの欠如が、インターネット リソースになりすまそうとするさまざまな攻撃によって悪用されていました。

DNSSEC は、インターネット技術標準化委員会 (IETF) が策定した一連の標準 (RFC 4033、4034、および 4035) で、ネットワーク トラフィックとして送信される DNS データやキャッシュされる DNS データに対して、次のような機能を提供します。

  • 送信元の認証: 応答が予期される DNS サーバーから、ネットワーク トラフィックとして送信されたものであることを確認します。
  • 不在認証: "名前が見つかりません" という応答が返され、これは権限のある DNS サーバーによって認証されています。
  • データの整合性: 転送中に応答が変更されていないことを保証します。

DNSSEC では、公開キー暗号化を使用して、これらのセキュリティ サービスを提供します。DNS クライアントが、DNSSEC 固有の DNS 名のクエリを送信する場合、応答には付属のデジタル署名が含まれます。DNS リゾルバー (Windows Server 2008 R2 ベースの DNS サーバー) を検証すると、あらかじめ構成されたトラスト アンカー (権限のある DNS サーバーへの認証チェーンの開始の公開キーを保持しているコンピューター) を使用して署名が検証されます。

DNSSEC のしくみの詳細については、「付録 A: DNSSEC の主要な概念を確認する (英語)」を参照してください。

Windows Server 2008 R2 を実行している DNS サーバーに DNSSEC を展開する方法の詳細については、「安全な DNS 展開のためのガイド (英語)」を参照してください。

DNSSEC を使用するように DNS クライアント サービスを構成する

Windows 7 と Windows Server 2008 R2 における DNS クライアント サービスの DNSSEC の動作は、NRPT を使用して構成できます。詳細については、このコラムの NRPT に関するセクションを参照してください。

図 3 に、NRPT の規則に含まれる DNSSEC の構成設定を示します。

NRPT の規則で DNSSEC を有効にする

図 3 **NRPT の規則で DNSSEC を有効にする  **

NRPT の規則で定義される DNS 名前空間の指定された部分では、[この規則で DNSSEC を有効にする] チェック ボックスをオンにして、DNSSEC を有効にできます。その後、[DNS クライアントに、DNS サーバーで名前とアドレス データが検証されたことを確認するよう要求する] チェック ボックスをオンにして、検証を必須条件として指定できます。

また、[DNS クライアントと DNS サーバー間の通信で IPsec を使用する] チェック ボックスをオンにして、DNS クライアントが、DNS クライアントと DNS サーバー間のトラフィックをセキュリティで保護するように指定できます。[証明機関] ボックスで、IPsec 認証を実行するときに DNS クライアントが証明書を受け取る証明機関 (CA) を指定することもできます (図 2 参照)。

Joseph Davies は、マイクロソフトの Windows ネットワーク ライティング チームのプリンシパル テクニカル ライターです。『Windows Server 2008 Networking and Network Access Protection (NAP)』、『Understanding IPv6, Second Edition』、『Windows Server 2008 TCP/IP Protocols and Services』など、Microsoft Press 発行の多数の書籍の著者または共著者です。

関連コンテンツ