Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

RPC ALG

リモートプロシージャコール(RPC)ALGは、既知のポートTCP 111およびUDP 111を使用してポートマッピングを行い、RPCサービスのポートを動的に割り当てて開きます。RPC ポートマップ ALG はポート要求を追跡し、要求されたポートのファイアウォールを動的に開きます。RPC ALGは、許可されたプログラム番号を指定することで、RPCプロトコルをさらに制限することができます。

RPC ALG について

Junos OS は、基本的なリモート プロシージャ コール アプリケーション レイヤー ゲートウェイ(RPC ALG)サービスをサポートしています。RPC は、あるアドレス・スペースで実行されるアプリケーションが、リソースが最初のアドレス・スペースにローカルであるかのように、別のアドレス・スペースで実行されているアプリケーションのリソースにアクセスできるようにするプロトコルです。RPC ALG は、RPC パケット処理を担当します。

Junos OS の RPC ALG は、以下のサービスと機能をサポートしています。

  • Sun Microsystems RPC Open Network Computing(ONC)

  • Microsoft RPC 分散コンピューティング環境(DCE)

  • 動的ポートネゴシエーション

  • 特定の RPC サービスを許可または拒否する機能

  • 静的ネットワークアドレス変換(NAT)とソースNAT(ポート変換なし)

  • セキュリティ ポリシーにおける RPC アプリケーション

NFS や Microsoft Outlook などの RPC ベースのアプリケーションを実行する必要がある場合は、RPC ALG を使用します。RPC ALG 機能はデフォルトで有効になっています。

Sun RPC ALG について

Open Network Computing Remote Procedure Call(ONC RPC)とも呼ばれる Sun Microsystems Remote Procedure Call(Sun RPC)は、あるホストで実行されるプログラムが別のホストで実行されているプログラムでプロシージャを呼び出す方法を提供します。RPC サービスの数が多く、ブロードキャストする必要があるため、RPC サービスのトランスポート アドレスはサービスのプログラム番号とバージョン番号に基づいて動的にネゴシエートされます。RPC プログラム番号とバージョン番号をトランスポート アドレスにマッピングするために、いくつかのバインディング プロトコルが定義されています。

Junos OSは、事前定義されたサービスとしてSun RPCをサポートし、設定したセキュリティポリシーに基づいてトラフィックを許可および拒否します。ALG(アプリケーションレイヤーゲートウェイ)は、Sun RPCの動的トランスポートアドレスネゴシエーションメカニズムを処理し、プログラム番号ベースのセキュリティポリシーを確実に適用する機能をジュニパーネットワークスデバイスに提供します。セキュリティポリシーを定義して、すべてのRPC要求を許可または拒否したり、特定のプログラム番号で許可または拒否することができます。ALG は、受信要求と送信要求に対してルート モードと NAT(ネットワーク アドレス変換)モードもサポートしています。

アプリケーションまたは PC クライアントがリモート サービスを呼び出す場合、サービスのトランスポート アドレスを見つける必要があります。TCP/UDP の場合、アドレスはポート番号です。このケースの一般的な手順は次のとおりです。

  1. クライアントは、リモート マシン上の RPCBIND サービスに GETPORT メッセージを送信します。GETPORT メッセージには、呼び出そうとするプログラム番号、および呼び出そうとするリモート・サービスのバージョンおよびプロシージャー番号が含まれています。

  2. RPCBIND サービスは、ポート番号で応答します。

  3. クライアントは、返されたポート番号を使用してリモート サービスを呼び出します。

  4. リモートサービスはクライアントに返信します。

また、クライアントは CALLIT メッセージを使用して、サービスのポート番号を決定せずにリモート・サービスを直接呼び出すことができます。この場合、手順は次のとおりです。

  1. クライアントは、リモート・マシン上の RPCBIND サービスに CALLIT メッセージを送信します。CALLIT メッセージには、呼び出そうとするリモート・サービスのプログラム番号とバージョンおよびプロシージャー番号が入っています。

  2. RPCBIND はそのクライアントのサービスを呼び出します。

  3. RCPBIND は、呼び出しが成功した場合、クライアントに応答します。応答には、呼び出し結果とサービスのポート番号が含まれています。

Sun RPC ALG は、デフォルト サイズ(512 エントリー)を使用する代わりに、新しいマッピング エントリーを動的に割り当てます。また、制御セッションとデータ セッションの両方を含む、関連するアクティブな RPC セッションに影響を与えることなく、マッピング エントリ(自動クリーン)を削除する柔軟な時間ベースの RPC マッピング エントリも提供します。

Junos OS 15.1X49-D10 および Junos OS リリース 17.3R1 以降では、Sun RPC マッピング エントリーのエージングアウト値を定義できます。コマンドを set security alg sunrpc map-entry-timeout value 使用します。エージアウト値の範囲は 1 時間から 72 時間で、デフォルト値は 32 時間です。Sun RPC ALG サービスが 72 時間後でも制御ネゴシエーションをトリガーしない場合、最大 RPC ALG マッピングエントリ値がタイムアウトし、サービスへの新しいデータ接続が失敗します。

Sun RPC ALG の有効化

Sun RPC ALG はデフォルトで有効になっており、設定は必要ありません。

Sun RPC ALG の有効化(CLI 手順)

Sun RPC ALG を無効にするには、次のコマンドを入力します。

Sun RPC ALG を再び有効にするには、次のコマンドを入力します。

Sun RPC アプリケーションのカスタマイズ(CLI 手順)

すべての Sun RPC アプリケーションは、事前定義されたアプリケーション・セットを使用してカスタマイズできます。

例えば、アプリケーションをカスタマイズして制御セッションのみを開き、データセッションを許可しないことができます。

次の例では、事前定義されたアプリケーション・セットによってデータ・セッションのみが許可されています。制御セッションがなければ機能しません。

事前定義されたアプリケーション・セットですべての Sun RPC アプリケーションをカスタマイズするには、ポリシーで両方のアプリケーション・セットを使用します。

メモ:

MS RPC アプリケーションは、Sun RPC アプリケーションと同じ方法でカスタマイズされています。

Sun RPC サービスについて

Open Network computing リモート プロシージャ コール(ONC RPC)とも呼ばれる Sun RPC は、あるホスト上で実行されているプログラムが別のホスト上で実行されているプログラムでプロシージャを呼び出す方法を提供します。Sun RPC サービスは、プログラム識別子によって定義されます。プログラム識別子はトランスポート アドレスに依存しません。ほとんどの Sun RPC セッションは TCP または UDP ポート 111 を介して開始されます。各ホストは、必要な RPC サービスを、ポート 111 制御チャネルでネゴシエートされた動的 TCP または UDP ポートにリンクし、クライアントが TCP ポートまたは UDP ポート 111 のいずれかに接続できるようにします。

事前定義された Sun Microsystems リモート プロシージャ コール(Sun RPC)サービスには、以下が含まれます。

  • junos-sun-rpc-tcp

  • junos-sun-rpc-udp

Sun RPC ALG は、次の方法を使用して適用できます。

  • ALG デフォルト アプリケーション — ポリシー内の制御およびデータ接続には、以下の事前定義されたアプリケーションのいずれかを使用します。

    • junos-sun-rpc-any-tcp

    • junos-sun-rpc-any-udp

    • junos-sun-rpc-mountd-tcp

    • junos-sun-rpc-mountd-udp

    • junos-sun-rpc-nfs-tcp

    • junos-sun-rpc-nfs-udp

    • junos-sun-rpc-nlockmgr-tcp

    • junos-sun-rpc-nlockmgr-udp

    • junos-sun-rpc-portmap-tcp

    • junos-sun-rpc-portmap-udp

    • junos-sun-rpc-rquotad-tcp

    • junos-sun-rpc-rquotad-udp

    • junos-sun-rpc-ruserd-tcp

    • junos-sun-rpc-ruserd-udp

    • junos-sun-rpc-sadmind-tcp

    • junos-sun-rpc-sadmind-udp

    • junos-sun-rpc-sprayd-tcp

    • junos-sun-rpc-sprayd-udp

    • junos-sun-rpc-status-tcp

    • junos-sun-rpc-status-udp

    • junos-sun-rpc-walld-tcp

    • junos-sun-rpc-walld-udp

    • junos-sun-rpc-ypbind-tcp

    • junos-sun-rpc-ypbind-udp

    • junos-sun-rpc-ypserv-tcp

    • junos-sun-rpc-ypserv-udp

  • デフォルトの制御アプリケーション — 以下を通して事前定義された制御を junos-sun-rpc使用します。

    • データ用アプリケーションを作成します(USER_DEFINED_DATA)。独自のデータのセットを作成し(例えば)、 my_rpc_application_setポリシーで使用することができます。

    • ALG デフォルト アプリケーション セット - ポリシーで制御およびカスタマイズされたデータ アプリケーションに、事前定義されたアプリケーション セットを使用します。

      • junos-sun-rpc (制御セッション用)

      • junos-sun-rpc-any

      • junos-sun-rpc-mountd

      • junos-sun-rpc-nfs

      • junos-sun-rpc-nfs-access

      • junos-sun-rpc-nlockmgr

      • junos-sun-rpc-portmap (データ セッション用)

      • junos-sun-rpc-rquotad

      • junos-sun-rpc-ruserd

      • junos-sun-rpc-sadmind

      • junos-sun-rpc-sprayd

      • junos-sun-rpc-status

      • junos-sun-rpc-walld

      • junos-sun-rpc-ypbind

      • junos-sun-rpc-ypserv

  • カスタムコントロールとカスタムデータアプリケーション - カスタマイズされたアプリケーションを使用します。

    • 制御()とデータUSER_DEFINED_DATA(USER_DEFINED_CONTROL)のアプリケーションを作成します。

    • ポリシーでは、制御およびカスタマイズされたデータ アプリケーションにユーザー定義アプリケーション セットを使用します。

      • USER_DEFINED_CONTROL

      • USER_DEFINED_DATA

表 1 は、事前定義された Sun RPC サービス、各サービスに関連付けられたプログラム識別子、および各サービスの説明を示しています。

表 1:事前定義された Sun RPC サービス

サービス

プログラムID

説明

Portmap

100000

Sun RPC ポートマッパー プロトコルは、TCP または UDP ポート 111 を含む TCP または UDP ポートベースのサービスです。

Nfs

100003

Sun RPC ネットワーク ファイル システム

マウント

100005

Sun RPC マウント プロセス。

ファイルビント

100007

Sun RPC イエロー ページ バインド サービスです。

ステータス

100024

Sun RPC ステータス。

Microsoft RPC ALG について

Microsoft リモート プロシージャ コール(MS-RPC)は、Microsoft による分散コンピューティング環境(DCE)RPC の実装です。Sun RPC と同様に、MS-RPC は、あるホスト上で実行されているプログラムが別のホスト上で実行されているプログラムのプロシージャを呼び出す方法を提供します。RPC サービスの数が多く、ブロードキャストする必要があるため、RPC サービスのトランスポート アドレスは、サービス プログラムの UUID(ユニバーサル一意識別子)に基づいて動的にネゴシエートされます。特定の UUID はトランスポート アドレスにマッピングされます。

Junos OSを実行するJunos OSデバイスは、事前に定義されたサービスとしてMS-RPCをサポートし、設定したポリシーに基づいてトラフィックを許可および拒否します。ALG(アプリケーションレイヤーゲートウェイ)は、MS-RPCの動的トランスポートアドレスネゴシエーションメカニズムを処理し、UUIDベースのセキュリティポリシーを確実に適用する機能をジュニパーネットワークスデバイスに提供します。セキュリティ ポリシーを定義して、RPC のすべての要求を許可または拒否したり、特定の UUID 番号で許可または拒否することができます。ALG は、受信要求と送信要求に対してルート モードと NAT(ネットワーク アドレス変換)モードもサポートしています。

MS-RPC クライアントと MS-RPC サーバーの両方が 64 ビット対応(MS Exchange 2008 など)の場合、ネットワーク通信中に NDR64 転送構文を使用するようにネゴシエートします。NDR64を使用する場合、NDR64のパケット形式はNDR20のパケット形式(32ビットバージョン)とは異なるため、インターフェイスパラメータはNDR64構文に従ってエンコードする必要があります。

MS-RPC には、ISystemActivator(IRemoteSCMActivator とも呼ばれる)と呼ばれる DCOM リモート プロトコルのリモート アクティブ化インターフェイスがあります。Windows 管理インスツルメンテーションコマンド ライン (WMIC)、インターネット インフォメーション サービス (IIS)、および広範囲に使用されるその他の多くのアプリケーションで使用されます。

MS-RPC ALG は、デフォルト サイズ(512 エントリー)を使用する代わりに、新しいマッピング エントリーを動的に割り当てます。また、制御セッションとデータ セッションの両方を含む、関連するアクティブな RPC セッションに影響を与えることなく、マッピング エントリ(自動クリーン)を削除する柔軟な時間ベースの RPC マッピング エントリも提供します。

Junos OS リリース 15.1X49-D10 および Junos OS リリース 17.3R1 以降では、MS-RPC マッピング エントリーのエージングアウト値を定義できます。コマンドを set security alg msrpc map-entry-timeout value 使用します。エージアウト値の範囲は 1 時間から 72 時間で、デフォルト値は 32 時間です。MS-RPC ALG サービスが 72 時間後でも制御ネゴシエーションをトリガーしない場合、最大 MS-RPC ALG マッピングエントリ値はタイムアウトし、サービスへの新しいデータ接続は失敗します。

Microsoft RPC ALG の有効化

MS-RPC ALGはデフォルトで有効になっており、設定は必要ありません。

Microsoft RPC ALG の有効化(CLI 手順)

Microsoft RPC ALG を無効にするには、次のコマンドを入力します。

Microsoft RPC ALG を再びイネーブルにするには、次のコマンドを入力します。

Microsoft RPC ALG の設定

Microsoft RPC ALG は、次の 3 つの方法で構成できます。

事前定義済みのMicrosoftアプリケーションを使用したMS-RPC ALGの設定

事前定義された MS アプリケーションがいくつかあります。CLIから定義済みのMicrosoftアプリケーションを表示するには、 コマンドを show configuration groups junos-defaults 入力します。

設定をコミットした後、CLIから コマンドを show security alg msrpc object-id-map 入力して出力を表示します。

出力では、UUID がポリシーに適用されたことを示しています。

ワイルドカード UUID を使用した MS-RPC ALG の設定

MS RPC アプリケーションの設定を許可するには、 ステートメントを application junos-ms-rpc-any Permit 設定に追加します。

設定をコミットした後、CLIから コマンドを show security alg msrpc object-id-map 入力して出力を表示します。

特定の UUID を持つ MS-RPC ALG の設定

事前定義済みでないアプリケーションの場合は、特定の UUID を手動で構成する必要があります。例えば、事前定義されていない NETLOGON アプリケーションを許可するには、許可設定に ステートメントを追加 application msrpc-netlogon します。

Junos OSリリース15.1X49-D90以前では、 すべての SRX シリーズ デバイスでは、Microsoft リモート プロシージャ コール(MS-RPC)のカスタム アプリケーションユニバーサル一意識別子(UUID)に、先行ゼロと nil UUID(00000-0000-0000-0000-000000000-00000000)はすべての TCP トラフィックと参照されているポリシーに一致する場合があります。これにより、MS-RPC ALG チェックに入る代わりに、すべての TCP トラフィックを許可できます。

Junos OS リリース 15.1X49-D100 および Junos OS リリース 17.3R1 以降、先行ゼロのカスタム アプリケーション UUID は、すべての TCP トラフィックと参照ポリシーに一致せず、MS-RPC ALG チェックに入ります。この新しいアプリケーションでは nil UUID は許可されません。

設定をコミットした後、CLI から コマンドを show security alg msrpc object-id-map 入力して、オブジェクト ID(UUID-to-OID)マッピング テーブルに対する Microsoft ユニバーサル一意識別子を確認します。Microsoft RPC ALG は、TCP ポート 135 上のパケットを監視します。

メモ:

show security alg msrpc object-id-map CLIコマンドには、出力を特定のノードに制限したり、クラスタ全体にクエリーを実行したりするためのシャーシクラスタノードオプションがあります。show security alg msrpc object-id-map node CLI コマンド オプションは.<node-id | all | local | primary>

Microsoft RPCサービスについて

MS-RPC は、Microsoft による分散コンピューティング環境(DCE)RPC の実装です。Sun RPC と同様に、MS-RPC は、あるホスト上で実行されているプログラムが別のホストで実行されているプログラムのプロシージャを呼び出す方法を提供します。MS-RPC は、サービス プログラムの UUID(ユニバーサル一意識別子)に基づいて動的にネゴシエートされます。特定の UUID はトランスポート アドレスにマッピングされます。

Junos OSリリース15.1X49-D90以前では、 すべての SRX シリーズ デバイスでは、Microsoft リモート プロシージャ コール(MS-RPC)のカスタム アプリケーションユニバーサル一意識別子(UUID)に、先行ゼロと nil UUID(00000-0000-0000-0000-000000000-00000000)はすべての TCP トラフィックと参照されているポリシーに一致する場合があります。これにより、MS-RPC ALG チェックに入る代わりに、すべての TCP トラフィックを許可できます。

Junos OS リリース 15.1X49-D100 および Junos OS リリース 17.3R1 以降、先行ゼロのカスタム アプリケーション UUID は、すべての TCP トラフィックと参照ポリシーに一致せず、MS-RPC ALG チェックに入ります。この新しいアプリケーションでは nil UUID は許可されません。

事前定義されたMicrosoftリモートプロシージャコール(MS-RPC)サービスには、以下が含まれます。

  • junos-ms-rpc-epm

  • junos-ms-rpc-tcp

  • junos-ms-rpc-udp

MS-RPC アプリケーションのデフォルトには、以下が含まれます。

  • junos-ms-rpc-iis-com-1

  • junos-ms-rpc-iis-com-adminbase

  • junos-ms-rpc-msexchange-directory-nsp

  • junos-ms-rpc-msexchange-directory-rfr

  • junos-ms-rpc-msexchange-info-store

  • junos-ms-rpc-uuid-any-tcp

  • junos-ms-rpc-uuid-any-udp

  • junos-ms-rpc-wmic-admin

  • junos-ms-rpc-wmic-admin2

  • junos-ms-rpc-wmic-mgmt

  • junos-ms-rpc-wmic-webm-callresult

  • junos-ms-rpc-wmic-webm-classobject

  • junos-ms-rpc-wmic-webm-level1login

  • junos-ms-rpc-wmic-webm-login-clientid

  • junos-ms-rpc-wmic-webm-login-helper

  • junos-ms-rpc-wmic-webm-objectsink

  • junos-ms-rpc-wmic-webm-refreshing-services

  • junos-ms-rpc-wmic-webm-remote-refresher

  • junos-ms-rpc-wmic-webm-services

  • junos-ms-rpc-wmic-webm-shutdown

MS-RPC アプリケーション セットのデフォルトには、以下が含まれます。

  • junos-ms-rpc

  • junos-ms-rpc-any

  • junos-ms-rpc-iis-com

  • junos-ms-rpc-msexchange

  • junos-ms-rpc-wmic

表 2 に、事前定義された MS-RPC サービス、各サービスに関連付けられた UUID 値、および各サービスの説明を示します。

表 2:事前定義された MS-RPC サービス

サービス

Uuid

説明

Epm

e1af8308-5d1f-11c9-91a4-08002b14a0fa

MS-RPC エンドポイント マッパー(EPM)プロトコルは、TCP/UDP ポート 135 を含む TCP/UDP ポートベースのサービスです。

EXCHANGE データベース

1a190310-bb9c-11cd-90f8-00aa00466520

Microsoft Exchange Database サービスです。

EXCHANGE-DIRECTORY

f5cc5a18-4264-101a-8c59-08002b2f8426

f5cc5a7c-4264-101a-8c59-08002b2f8426

f5cc59b4-4264-101a-8c59-08002b2f8426

Microsoft Exchange Directory サービス。

WIN-DNS

50abc2a4-574d-40b3-9d66-ee4fd5fba076

マイクロソフト Windows DNS サーバーです。

Wins

5f52c28-7f9f-101a-b52b-08002b2efabe

811109bf-a4e1-11d1-ab54-00a0c91e9b45

Microsoft WINS サービス。

WMIC-Webm-Level1Login

f309ad18-d86a-11d0-a075-00c04fb68820

このサービスにより、ユーザーは特定の名前空間の管理サービスインターフェイスに接続できます。

Microsoft RPC アプリケーションのカスタマイズ(CLI 手順)

MS-RPC アプリケーションは、SUN RPC アプリケーションと同じ方法でカスタマイズされます。

セキュリティ ポリシーの MS-RPC サービスは次のとおりです。

  • 0e4a0156-dd5d-11d2-8c2f-00c04fb6bcde

  • 1453c42c-0fa6-11d2-a910-00c04f990f3b

  • 10f24e8e-0fa6-11d2-a910-00c04f990f3b

  • 1544f5e0-613c-11d1-93df-00c04fd7bd09

対応する TCP/UDP ポートは動的です。これを許可するには、番号ごとに以下のステートメントを使用します。

ALGは、これらの4つのUIDに基づいてプログラム番号を動的にネゴシエートされたTCP/UDPポートにマッピングし、設定したポリシーに基づいてサービスを許可または拒否します。

リリース履歴テーブル
リリース
説明
15.1X49-D90
Junos OSリリース15.1X49-D90以前では、 すべての SRX シリーズ デバイスでは、Microsoft リモート プロシージャ コール(MS-RPC)のカスタム アプリケーションユニバーサル一意識別子(UUID)に、先行ゼロと nil UUID(00000-0000-0000-0000-000000000-00000000)はすべての TCP トラフィックと参照されているポリシーに一致する場合があります。これにより、MS-RPC ALG チェックに入る代わりに、すべての TCP トラフィックを許可できます。
15.1X49-D90
Junos OSリリース15.1X49-D90以前では、 すべての SRX シリーズ デバイスでは、Microsoft リモート プロシージャ コール(MS-RPC)のカスタム アプリケーションユニバーサル一意識別子(UUID)に、先行ゼロと nil UUID(00000-0000-0000-0000-000000000-00000000)はすべての TCP トラフィックと参照されているポリシーに一致する場合があります。これにより、MS-RPC ALG チェックに入る代わりに、すべての TCP トラフィックを許可できます。
49-D100 x 15.1
Junos OS リリース 15.1X49-D100 および Junos OS リリース 17.3R1 以降、先行ゼロのカスタム アプリケーション UUID は、すべての TCP トラフィックと参照ポリシーに一致せず、MS-RPC ALG チェックに入ります。この新しいアプリケーションでは nil UUID は許可されません。
49-D100 x 15.1
Junos OS リリース 15.1X49-D100 および Junos OS リリース 17.3R1 以降、先行ゼロのカスタム アプリケーション UUID は、すべての TCP トラフィックと参照ポリシーに一致せず、MS-RPC ALG チェックに入ります。この新しいアプリケーションでは nil UUID は許可されません。
49-D10 x 15.1
Junos OS 15.1X49-D10 および Junos OS リリース 17.3R1 以降では、Sun RPC マッピング エントリーのエージングアウト値を定義できます。
49-D10 x 15.1
Junos OS リリース 15.1X49-D10 および Junos OS リリース 17.3R1 以降では、MS-RPC マッピング エントリーのエージングアウト値を定義できます。