ファイアウォールで動作するように RPC 動的ポート割り当てを構成する方法

この記事では、レジストリ内のリモート プロシージャ コール (RPC) パラメーターを変更して、RPC 動的ポート割り当てがファイアウォールで動作することを確認するのに役立ちます。

適用対象: Windows Server 2012 R2
元の KB 番号: 154596

概要

RPC 動的ポート割り当ては、動的ホスト構成プロトコル (DHCP) マネージャー、Windows インターネット ネーム サービス (WINS) マネージャーなど、サーバー アプリケーションとリモート管理アプリケーションによって使用されます。 RPC 動的ポート割り当ては、使用されるオペレーティング システムの実装に基づいて、TCP および UDP 用に構成された範囲内の特定のランダム ポートを使用するように RPC プログラムに指示します。 詳細については、以下のリファレンスを参照してください。

ファイアウォールを使用しているお客様は、RPC が使用しているポートを制御して、これらの伝送制御プロトコル (UDP および TCP) ポートのみを転送するようにファイアウォール ルーターを構成できます。

Windows の多くの RPC サーバーでは、レジストリ エントリなどのカスタム構成項目でサーバー ポートを指定できます。 専用サーバー ポートを指定できる場合は、ファイアウォール経由でホスト間のトラフィック フローがわかります。 また、より直接的な方法で許可されるトラフィックを定義できます。

サーバー ポートとして、以下で指定できる範囲外のポートを選択します。 Windows および主要な Microsoft 製品で使用されるサーバー ポートの包括的な一覧については、「 サービスの概要」および「Windows のネットワーク ポート要件」を参照してください。

この記事では、RPC サーバーと、RPC ランタイムが提供する機能以外のカスタム サーバー ポートを使用するように構成できる RPC サーバーの一覧も示します。

一部のファイアウォールでは、RPC インターフェイス UUID に対する RPC エンドポイント マッパー要求から学習する UUID フィルター処理も可能です。 応答にはサーバー ポート番号があり、このポートで後続の RPC バインドを渡すことができます。

重要

RPC サーバーがサーバー ポートを定義する方法を提供していない場合にのみ、この記事で説明されているメソッドを使用します。

次のレジストリ エントリは、Windows NT 4.0 以降に適用されます。 以前のバージョンのWindows NTには適用されません。 クライアントがサーバーと通信するために使用するポートを構成できますが、クライアントは実際の IP アドレスでサーバーに到達できる必要があります。 アドレス変換を行うファイアウォールを介して DCOM を使用することはできません。 たとえば、クライアントは仮想アドレス 198.252.145.1 に接続します。ファイアウォールはサーバーの実際のアドレス (たとえば、192.100.81.101) に透過的にマップされます。 DCOM は、未加工の IP アドレスをインターフェイス マーシャリング パケットに格納します。 クライアントがパケットで指定されたアドレスに接続できない場合、動作しません。

詳細

以下で説明する値 (およびインターネット キー) はレジストリに表示されません。 レジストリ エディターを使用して手動で追加する必要があります。

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 詳細については、「 Windows でレジストリをバックアップおよび復元する方法」を参照してください。

レジストリ エディターでは、RPC の次のパラメーターを変更できます。 以下で説明する RPC ポート キーの値はすべて、レジストリ内の次のキーにあります。

HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet\Entry name Data Type

  • ポート REG_MULTI_SZ

    インターネットから使用可能なすべてのポートまたはインターネットから利用できないすべてのポートで構成される IP ポート範囲のセットを指定します。 各文字列は、1 つのポートまたはポートの包括的なセットを表します。

    たとえば、1 つのポートを 5984 で表し、ポートのセットを 5000 から 5100 で表します。 エントリが 0 から 65535 の範囲外にある場合、または文字列を解釈できない場合、RPC ランタイムは構成全体を無効として扱います。

  • PortsInternetAvailable REG_SZ Y または N (大文字と小文字は区別されません)

    Y の場合、[ポート] キーに一覧表示されているポートは、そのコンピューター上のすべてのインターネットで使用可能なポートです。 N の場合、[ポート] キーに一覧表示されているポートはすべて、インターネットで使用できないポートです。

  • UseInternetPorts REG_SZ Y または N (大文字と小文字は区別されません)

    システムの既定のポリシーを指定します。

    Y の場合、既定を使用するプロセスには、前に定義した一連のインターネットで使用可能なポートからポートが割り当てられます。 N の場合、既定値を使用するプロセスには、イントラネット専用ポートのセットからポートが割り当てられます。

この例では、ポート 5000 から 6000 までを任意に選択して、新しいレジストリ キーを構成する方法を示しています。 これは、特定のシステムに必要な最小数のポートの推奨ではありません。

  1. の下にインターネット キーを追加する HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc

  2. [インターネット キー] の下に、 ポート (MULTI_SZ)、 PortsInternetAvailable (REG_SZ)、 UseInternetPorts (REG_SZ) の値を追加します。

    たとえば、新しいレジストリ キーは次のように表示されます。

    ポート: REG_MULTI_SZ: 5000-6000
    PortsInternetAvailable: REG_SZ: Y
    UseInternetPorts: REG_SZ: Y

  3. サーバーを再起動します。 RPC 動的ポート割り当てを使用するすべてのアプリケーションでは、ポート 5000 から 6000 が使用されます(包括的)。

ポート 5000 より上の範囲のポートを開く必要があります。 5000 を下回るポート番号は、既に他のアプリケーションで使用されている可能性があり、DCOM アプリケーションと競合する可能性があります。 さらに、以前のエクスペリエンスでは、複数のシステム サービスがこれらの RPC ポートを使用して相互に通信するため、少なくとも 100 ポートを開く必要があることを示しています。

注:

必要なポートの最小数は、コンピューターによって異なる場合があります。 RPC 動的ポートが制限されている場合、トラフィックが多いコンピューターはポート枯渇状態になる可能性があります。 ポート範囲を制限する場合は、これを考慮してください。

警告

ポート構成でエラーが発生した場合、またはプールにポートが不足している場合、Endpoint Mapper Service は RPC サーバーを動的エンドポイントに登録できません。 構成エラーが発生した場合、エラー コードは 87 (0x57) ERROR_INVALID_PARAMETERになります。 これは、Netlogon などの Windows RPC サーバーにも影響する可能性があります。 この場合、イベント 5820 がログに記録されます。

Log Name: System  
Source: NETLOGON  
Event ID: 5820  
Level: Error  
Keywords: Classic  
Description:  
The Netlogon service could not add the AuthZ RPC interface. The service was terminated. The following error occurred: The parameter is incorrect.

詳細については、以下を参照してください: