Windows Server 2003 および Windows 2000 Server で DNS サーバー サービスのリモート管理を無効にする方法

文書翻訳 文書翻訳
文書番号: 936263 - 対象製品
重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 Microsoft Windows レジストリの説明
すべて展開する | すべて折りたたむ

目次

はじめに

この資料では、次のいずれかのオペレーティング システムが実行されている DNS サーバーの DNS リモート管理を無効にする方法について説明します。
  • Microsoft Windows Server 2003
  • Microsoft Windows 2000 Server
この資料に記載されている方法を使用すると、組織内で DNS サーバー サービスを実行しているコンピュータのセキュリティを強化できます。

Windows Server 2003 および Windows 2000 Server の DNS サーバー サービスで発生する問題の詳細については、次のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/japan/technet/security/Bulletin/MS07-029.mspx

詳細

概要

DNS サーバー サービスのデフォルトの設定では、さまざまなインターフェイスを使用してリモート管理を行うことが許可されています。DNS サーバー サービスを開始すると、ephemeral ポートの範囲にある動的ポートにバインドされます。このポートは、DNS の Microsoft 管理コンソール (MMC) スナップインおよび DNS の Windows Management Instrumentation (WMI) プロバイダで使用されます。以下のレジストリ エントリを使用して、DNS サーバー サービスのリモート管理を許可するかどうかを制御できます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters


値の名前 : RpcProtocol
値の種類 : REG_DWORD
値のデータ : 0x4
RpcProtocol レジストリ エントリで有効な値は次のとおりです。
  • 0x1
    DNS_RPC_USE_TCPIP の設定に対応します。
  • 0x2
    DNS_RPC_USE_NAMED_PIPE の設定に対応します。
  • 0x4
    DNS_RPC_USE_LPC の設定に対応します。
: 値を 0x4 に設定すると、DNS RPC インターフェイスがローカル プロシージャ コールのみに限定されます。これにより、ローカルでの管理のみが許可されます。

リモート管理を無効にした場合の影響

RpcProtocol レジストリ エントリを 0x4 に設定すると、DNS サーバー サービスのリモート管理が無効になります。そのため、RPC または Windows Management Instrumentation (WMI) を使用して DNS サーバーを管理することができません。この状況では、DNS サーバーの管理ツールをリモートから実行することはできません。ただし、ローカルの管理ツールを使用して DNS サーバーを管理したり、ターミナル サービス接続を使用して DNS サーバーのリモート管理を実行したりすることはできます。

RpcProtocol を 0x4 に設定しても DNS クエリ、DNS 動的更新、DNS ゾーン転送などに影響はありません。

: 以下の条件に該当する場合、DNS サーバー サービスのローカルでの管理および構成ができない場合があります。
  • 管理するサーバーのホスト名が 15 文字である。
  • ホスト名を使用してサーバーを選択している。
この問題を解決するには、DNS サーバーの管理ツールを使用して管理するときに、コンピュータの完全修飾ドメイン名 (FQDN) を指定します。

DNS サーバー サービスのリモート管理を無効にする

警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。

DNS サーバー サービスを実行しているコンピュータの RPC 機能を使用したリモート管理を無効にするには、次の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に regedit と入力し、[OK] をクリックします。
  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
  3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックします。
  4. [新しい値 #1] (Windows 2000 Server の場合は [New Value #1]) が表示されているボックスに、RpcProtocol と入力し、Enter キーを押します。
  5. [RpcProtocol] を右クリックし、[修正] (または [変更]) をクリックします。
  6. [値のデータ] ボックスに 4 と入力し、[OK] をクリックします。
  7. レジストリ エディタを終了し、DNS サーバー サービスを再起動します。DNS サーバー サービスを再起動するには、次の手順を実行します。
    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに cmd と入力し、[OK] をクリックします。
    2. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。
      net stop dns && net start dns

RpcProtocol レジストリ値を複数のコンピュータに展開する

スクリプトを使用して RpcProtocol レジストリ値を展開することができます。これにより、複数のコンピュータ上で、DNS サーバー サービスのリモート管理を簡単に無効にすることができます。これを行うには、次の手順を実行します。
  1. DNS サーバーを変更する権限を持つアカウントを使用して、ドメインにログオンします。たとえば、ドメイン管理者としてログオンします
  2. すべての DNS サーバーのリストを作成します。これを行うには、コマンド プロンプトで次のコマンドを実行します。
    dsquery * -filter "(servicePrincipalName=DNS*)" -attr dNSHostName -l > dns_servers.txt
    必要に応じて、すべての DNS サーバーを指定するように、作成された dns_servers.txt ファイルを手動で編集してください。たとえば、このコマンドでは、DNS サーバーとして構成されているドメイン コントローラのみが取得されるため、メンバ サーバーとして構成されている DNS サーバーを手動で追加する必要があります。

    : DNS スナップインの各ゾーンの [DNS zone のプロパティ] ダイアログ ボックスの [ネーム サーバー] タブを使用して、このリストに追加する DNS サーバーの名前を確認することができます。
  3. 必要に応じて、コマンド プロンプトで cd コマンドを使用して、dns_servers.txt ファイルを保存したディレクトリに移動します。
  4. 以下のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do reg add \\%i\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters /v RpcProtocol /t REG_DWORD /d 4 /f
    このコマンドにより、値が 0x4 に設定された RpcProtocol レジストリ エントリが追加されます。
  5. すべてのコンピュータ上で DNS サーバー サービスを停止します。これを行うには、次のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do sc \\%i stop DNS
  6. すべてのコンピュータ上で DNS サーバー サービスを開始します。これを行うには、次のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do sc \\%i start DNS

RpcProtocol レジストリ エントリが複数のコンピュータで設定されていることを確認する

サーバーを照会して、RpcProtocol レジストリ エントリが設定されているかどうかを確認するには、次の手順を実行します。
  1. RpcProtocol レジストリ エントリが設定されている DNS サーバーにログオンします。
  2. 以下のスクリプトをテキスト ファイルにコピーし、Dnsquery.cmd という名前を付けます。
    Echo Comparing registry value for: > dns_errors.txt echo HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters >> dns_errors.txt 
    echo Data Value for "RpcProtocol" >> dns_errors.txt echo. >> dns_errors.txt echo. >> dns_errors.txt 
    Echo Errorlevel 1 - Failed to compare registry values >> dns_errors.txt 
    Echo Errorlevel 2 - Reg values compared are different >> dns_errors.txt echo. >> dns_errors.txt 
    echo. >> dns_errors.txt echo ===================================================== >> dns_errors.txt 
    set _MachineName= 
    for /f %%i in (dns_servers.txt) do ( call :TEST %%i )
    :TEST
    Set _MachineName=%1
    echo %_MachineName%
    reg.exe compare "HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters" "\\%_MachineName%\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters" /v RpcProtocol
    if %_MachineName% == "" echo 0 > nul
    if %errorlevel% == 0 echo 0 > nul
    if %errorlevel% == 1 Echo Computername: %_MachineName% Errorlevel returned: 1 - Failed >> dns_errors.txt
    if %errorlevel% == 2 Echo Computername: %_MachineName% Errorlevel returned: 2 - Different >> dns_errors.txt
    :End
    rem exit
    : このスクリプトを実行すると、リモート コンピュータの Parameters レジストリ サブキーと、スクリプトを実行しているコンピュータの Parameters レジストリ サブキーが比較されます。

    重要 : このスクリプトでは、末尾にスペースを含めないでください。
  3. Dnsquery.cmd ファイルをダブルクリックして実行します。

複数のコンピュータから RpcProtocol レジストリ値を削除する

RpcProtocol レジストリ値の設定を解除するには、次の手順を実行します。
  1. DNS サーバーを変更する権限を持つアカウントを使用して、ドメインにログオンします。たとえば、ドメイン管理者としてログオンします
  2. コマンド プロンプトを起動し、cd コマンドを使用して、Dns_servers.txt ファイルを保存したディレクトリに移動します。
  3. 以下のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do reg delete \\%i\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters /v RpcProtocol /f
  4. すべてのコンピュータ上で DNS サーバー サービスを停止します。これを行うには、次のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do sc \\%i stop DNS
  5. すべてのコンピュータ上で DNS サーバー サービスを開始します。これを行うには、次のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do sc \\%i start DNS

プロパティ

文書番号: 936263 - 最終更新日: 2007年5月11日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
キーワード:?
kberrmsg kbhowto kbinfo kbtshoot kbregistry KB936263
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com