次の方法で共有


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

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

元の KB 番号: 154596

まとめ

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

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

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

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

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

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

重要

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

次のレジストリ エントリは、Windows NT 4.0 以降に適用されます。 以前のバージョンの Windows NT には適用されません。 クライアントがサーバーと通信するために使用するポートを構成できますが、クライアントは実際の IP アドレスでサーバーに到達できる必要があります。 アドレス変換を行うファイアウォールを介して DCOM を使用することはできません。 たとえば、クライアントは仮想アドレス 192.168.1.2 に接続します。これは、ファイアウォールがサーバーの実際のアドレス (たとえば 192.168.1.3) に透過的にマップされます。 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. インターネット キーで、 Ports (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 個のポートを開く必要があることを示しています。

Note

必要なポートの最小数は、コンピューターによって異なる場合があります。 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.

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