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

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

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

概要

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

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

多くの RPC サーバー Windowsレジストリ エントリなどのカスタム構成項目でサーバー ポートを指定できます。 専用のサーバー ポートを指定できる場合は、ファイアウォールを越えてホスト間で流れるトラフィックを確認できます。 また、許可されるトラフィックを、より指示された方法で定義できます。

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

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

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

重要

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

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

詳細については、「ファイアウォールで DCOM/COM+ を使用する」を参照してください

詳細

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

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 詳細については、「レジストリをバックアップおよび復元する方法」を参照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 の場合、Ports キーに一覧表示されているポートは、そのコンピューター上のすべてのインターネットで利用可能なポートになります。 N の場合、Ports キーに一覧表示されているポートはすべて、インターネットに接続できないポートです。

  • 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 動的ポートが制限されている場合、トラフィックが多いコンピューターはポートの枯渇状況に見合う可能性があります。 ポート範囲を制限する場合は、この点を考慮してください。

警告

ポート構成にエラーが発生した場合、またはプール内にポートが不足している場合、エンドポイント マッパー サービスは 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.

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