※この記事は以下の記事の日本語訳です。
Tips & Tricks: Why Use a VPN Proxy ID?
https://live.paloaltonetworks.com/t5/Featured-Articles/Tips-amp-Tricks-Why-Use-a-VPN-Proxy-ID/ta-p/6...
DotW: 重複するIPを持つIPSec プロキシ IDに関するヘルプでサブネットが重複している場合の問題を取り上げました。私たちは特定の条件下でピアネットワーク同士が通信する方法を模索していました。Palo Alto Networks ファイアウォールでポリシーベースのVPNをサポートするピアと連携する場合はプロキシIDの設定が必要です。
上記のディスカッション・オブ・ザ・ウィーク(DotW)はプロキシIDについてのヘルプですが、VPN プロキシ IDと、それを設定する重要な理由について詳しく説明しましょう。
IPSec VPNトンネルについての話で触れたように、Palo Alto Networks ファイアウォールでポリシーベースのVPNをサポートするピアと連携する場合は、プロキシ IDを定義する必要があります。ポリシーベース VPNをサポートするデバイスは、IPSecトンネルを介するトラフィックを許可するための特定のセキュリティルール/ポリシーまたはアクセスリスト(送信元アドレス、宛先アドレス、およびポート)を使用します。 これらのルールは、クイック モード / IKE フェーズ 2のネゴシエーション中に参照され、ネゴシエーション プロセスの最初または2番目のメッセージでプロキシ IDとして交換されます。
そのため、Palo Alto Networks ファイアウォールでポリシーベースのVPNをサポートするピアと連携するように設定する場合は、フェーズ 2のネゴシエーションを成功させるために両方のピアの設定が同一になるようにプロキシ IDを定義する必要があります。プロキシ IDが設定されていない場合、Palo Alto Networks ファイアウォールはルート ベースのVPNをサポートしているため、プロキシ IDとして使用されるデフォルト値は、"source ip: 0.0.0.0/0, destination ip: 0.0.0.0/0 and application: any"となり、これらの値がネゴシエーション中にピアと交換されると、結果としてVPN接続のセットアップに失敗します。
それでは、プロキシ IDの設定内容とオプションを見てみましょう:
プロキシ ID セクションの中(Network > IPSec トンネル (IPSec Tunnels) > トンネス名を選択 > プロキシ ID (Proxy IDs)タブ)に、いくつかのオプションを見ることができます:
注: 各プロキシ IDはVPN トンネルとしてカウントされるので、ファイアウォールのIPSec VPN トンネルの容量に影響します。(訳注: 各プラットフォームの上限数についてはデータシートをご参照ください)
プロキシ IDの利点は、特定のトラフィックだけがVPN トンネルを通過するようにしたい場合、プロトコル番号またはTCP / UDP ポート番号で細かく設定を容易にすることができる点です。
IKEには2つのバージョンがあり、プロキシ IDの動作は異なります。
- IKEv1では、Palo Alto Networks ファイアウォールはプロキシ IDの完全一致のみをサポートします。ピアのプロキシ IDが一致しない場合、VPNの動作に問題が発生します。
- IKEv2では、2つのVPN ゲートウェイ間でプロキシ IDの設定が異なっている場合に、トラフィック セレクタの絞り込みが行われます。実装されている選択肢について以下で説明します。
多くのIPSec VPN セットアップを説明するのに役立つIPSecとIKEv2の使用例のリスト、及びプロキシ IDを正しく使用する方法については、以下を参照してください。
例: 2つのVPN ゲートウェイ AとBがあります。IKE ネゴシエーションはVPN GW-aにより開始されます。i=イニシエータ、r=レスポンダ
VPN GW-aをトラフィック セレクタ TSi-a/TSr-aと定義し、VPN GW-bをトラフィック セレクタ TSi-b/TSr-bの設定を有していると仮定します。TSr-aはTSr-bと同様なので無視することができます。TSi-aはTSi-bとは異なる可能性があります。
A. TSi-aがTSi-bと同じ場合。 例:両方とも5.10.11.0/24:
期待値:動作は既存のIKEv1 プロキシ IDの場合と同じであり、トラフィックは通過できません。この例では適切な通信を可能にするためにNATが必要となります。
VPN GW-a: 送信: TSi: 5.10.11.0 - 5.10.11.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [最終結果]
このソリューションについては、DotWの記事で詳しく説明しています。
DotW: Help with IPSec Proxy IDs with overlapping IPs
DotW: 重複するIPを持つIPSec プロキシ IDに関するヘルプ(日本語翻訳)
B. TSi-aがTSi-bを含む上位ネットワークの場合:
b1. VPN GW-aはTSi-a = 5.10.0.0/16を、VPN GW-bはTSi-b = 5.10.11.0/24を提案する場合:
i. トンネルはトラフィックなしで起動します。(たとえば、初期化中やテストコマンドによって)
期待値: レスポンダとしてVPN GW-bはVPN GW-aに5.10.11.0/24で応答します。VPN GW-aはそれを受け入れてchild-saを作成します。
VPN GW-a: 送信: TSi: 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [共通サブセットに絞り込まれます]
ii. VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.10.11.2)がトンネルを起動しようとします。
期待値: レスポンダとしてVPN GW-bはVPN GW-aに5.10.11.0/24で応答します。VPN GW-aはそれを受け入れてchild-saを作成し、トラフィックは通過します。
VPN GW-a: 送信: TSi: 5.10.11.2; 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [共通サブセットに絞り込まれます]
Palo Alto Networks ファイアウォールがイニシエータの場合、IKE ペイロードの最初の特定トラフィック セレクタ (5.10.11.2)を送信しません。
レスポンダとして特定のトラフィック セレクタを送信するピアに対応することができます。トラフィック セレクタを共通サブセットに絞り込みます。
iii. VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.10.6.2)がトンネルを起動しようとします。
期待値: レスポンダとしてVPN GW-bはVPN GW-aに5.10.11.0/24で応答します。VPN GW-aはそれを受け入れてchild-saを作成します。
VPN GW-a: 送信: TSi: 5.10.6.2; 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [共通サブセットに絞り込まれます]
Palo Alto Networks ファイアウォールがイニシエータの場合、IKE ペイロードの最初の特定トラフィック セレクタ (5.10.6.2)を送信しません。
レスポンダとしてトラフィック セレクタを共通サブセットに絞り込みます。受信したTS ペイロードに特定のトラフィック セレクタが含まれている場合、ローカル ポリシーから外れていても引き続きトラフィック セレクタの絞り込みは行いますが、RFC 5996に従って特定のトラフィック セレクタは無視されます。
b2. VPN GW-aはTSi-a = 5.10.0.0/16を、VPN GW-bは2つ以上の定義エントリ TSi-b = 5.10.11.0/24と5.10.12.0/24を提案する場合:
i. トンネルはトラフィックなしで起動します。
トラフィック セレクタごとの複数エントリはstrongswanによってサポートされています。したがって、strongswanはVPN GW-bとして設定することができます。PAN-OSがGW-bの場合、複数のプロキシ IDを設定する必要があります。
VPN GW-a: 送信: TSi: 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [PANOS: 最初に一致したエントリから共通サブセットを使用します]
上記はレスポンダ (VPN GW-b)としてのPAN-OSの結果を示しています。VPN GW-aに5.10.11.0/24または5.10.12.0/24のいずれかのエントリで応答します("show vpn tunnel"で表示されるフル トンネル名のアルファベット順に基づく最初のエントリ)。
他社製品がVPN GW-bとして両方のエントリ (5.10.11.0 - 5.10.11.255 + 5.10.12.0-5.10.12.255)をトラフィック セレクタとして返答しても、Palo Alto Networks ファイアウォールは最初のエントリのみをインストールします。
ii. VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.10.11.2)がトンネルを起動しようとします。
期待値: レスポンダとしてVPN GW-bはVPN GW-aに5.10.11.0/24で応答し、トラフィックは通過します。
VPN GW-a: 送信: TSi: 5.10.11.2; 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [PAN-OS: 5.10.11.2をカバーできるポリシーを優先し、最初に一致したエントリから共通サブセットを取得します。]
Palo Alto Networks ファイアウォールがイニシエータの場合、IKE ペイロードの最初の特定トラフィック セレクタ ( 5.10.11.2)を送信しません。
レスポンダの場合、絞り込みまたは完全一致により特定のトラフィック セレクタを1つのエントリでカバーできるまで、設定されたすべてのプロキシIDを検索します。 特定のトラフィック セレクタを共通サブセットでカバーできない場合は、引き続き絞り込みを試みます。
iii. ステップ iiのあと、VPN GW-aの背後にある別のホスト(たとえば、ホスト IP 5.10.12.2)がVPNの対向側に通信しようとする。
期待値: このトラフィックは先に作成されたVPN トンネルに一致しないので、別のIPSec SAがネゴシエートされます。
VPN GW-a: 送信: TSi: 5.10.12.2; 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.12.0 - 5.10.12.255 [PANOS: 5.10.12.2をカバーできるポリシーを優先し、最初に一致したエントリから共通サブセットを取得します]
この時点で両方のプロキシ IDのVPN トンネルが起動し、トラフィックが通過します。
他社製品の中には別のIKE ネゴシエーションを開始しないものもあります。5.10.12.2と一致しませんが、ステップ iiで確立した既存のトンネルを使用してパケットを送信します。 この種の動作を分析するためには、トンネル ネゴシエーション プロセス全体を確認する必要があります。
iv. VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.10.6.2)がVPNの対向側に通信しようとする。(ステップ iiおよびiiiが実行されていない場合)
期待値: VPN GW-aに一致するSAが無いので、VPN GW-bとのネゴシエートを試行します。応答は実装に依存します。
VPN GW-a: 送信: TSi: 5.10.6.2; 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.12.0 - 5.10.12.255 [PANOS: 最初に一致したエントリから共通サブセットを使用します]
v. ステップ iiiのあとで、VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.10.6.2)がVPNの対向側に通信しようとする。
イニシエータはピアへトラフィックを転送するために以前に確立したトンネルを使うことができます。トンネルの選択はベンダーの実装に依存します。
b3. VPN GW-bがトラフィック セレクタの絞り込みをサポートしていない場合:
VPN デバイスの中にはトラフィック セレクタの絞り込みをサポートしていないものがあります。たとえば、このような場合にCisco IOS 15.0はNO_PROPOSAL_CHOSENと応答します。
トンネルを確立できず、設定を変更する必要があります。
C. TSi-aがTSr-bのサブセットの場合:
VPN GW-aはTSi-a = 5.10.11.0/24を、VPN GW-bはTSr-b = 5.10.0.0/16を提案する。
i. トンネルはトラフィックなしで起動します。
期待値: VPN GW-bは5.10.11.0/24で応答し、トンネルはトラフィック セレクタの共通部分(5.10.11.0/24)を使用して確立されます。
VPN GW-a: 送信: TSi: 5.10.11.0 - 5.10.11.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [最終結果 - 共通サブセット]
ii. VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.10.11.2)がトンネルを起動しようとします。
期待値: トラフィック セレクタ 5.10.11.0/24でトンネルが確立され、トラフィックは通過します。
VPN GW-a: 送信: TSi: 5.10.11.2; 5.10.11.0 - 5.10.11.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [最終結果]
Palo Alto Networks ファイアウォールがイニシエータの場合、IKE ペイロードの最初の特定トラフィック セレクタ (5.10.11.2)を送信しません。
レスポンダとして特定のトラフィック セレクタを送信するピアに対応することができます。イニシエータ側が小さいためトラフィック セレクタはイニシエータから選択されます。
iii. VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.10.6.2)がトンネルを起動しようとします。
期待値:
VPN GW-a: 送信: TSi: 5.10.6.2; 5.10.11.0 - 5.10.11.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [最終結果]
PAN-OSがイニシエータの場合、プロキシ IDが設定されていないか、単一のプロキシ IDが同じトンネル インターフェイス上に定義されている場合、トンネルは上記のようにネゴシエートされ、トラフィックはトンネルを介して送信されます。
複数のプロキシ IDがある場合、一致するものがあるかどうか他のプロキシ ID(トンネル ID)を確認します。一致するものがなければ、最後のプロキシ IDを使用してトンネルをネゴシエートし、トラフィックを送信します。これはIPSec Multiple Phase 2 Associationsとして定義されている動作です。
PAN-OSがレスポンダで、ポリシー VPNが動作している別のベンダー機器がイニシエータである場合、パケットがローカル ポリシーの範囲外であるため、トンネル ネゴシエーションを開始しない可能性があります。トンネル ネゴシエーションを開始する場合は、イニシエータのトラフィック セレクタを狭くして使用します。
D. TSi-aとTSr-bの間で重複がある場合:
VPN GW-aはTSi-a = 5.10.0.0/16を、VPN GW-bはTSr-b = 5.10.11.0/24と5.9.0.0/24を提案する。
i. トンネルはトラフィックなしで起動します。
期待値: VPN GW-bは5.10.11.0/24で応答し、トンネルはトラフィック セレクタの共通部分(5.10.11.0/24)を使用して確立されます。
VPN GW-a: 送信: TSi: 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [最終結果 - 重複したサブセット]
ii. VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.10.11.2)がトンネルを起動しようとします。
期待値: トラフィック セレクタ 5.10.11.0/24でトンネルが確立され、トラフィックは通過します。
VPN GW-a: 送信: TSi: 5.10.11.2, 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [共通サブセット]
Palo Alto Networks ファイアウォールがイニシエータの場合、IKE ペイロードの最初の特定トラフィック セレクタ (5.10.11.2)を送信しません。
レスポンダとして特定のトラフィック セレクタを送信するピアに対応することができます。トラフィック セレクタを共通サブセットに絞り込みます。
iii. VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.10.12.2 - VPN GW-aのポリシー内だが、VPN GW-bのポリシー外)がトンネルを起動しようとします。
期待値:
VPN GW-a: 送信: TSi: 5.10.12.2, 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [共通サブセット]
PAN-OSがイニシエータの場合、レスポンダは5.10.12.2で使用可能な範囲を見つけることができないため、共通サブセット(5.10.11.0/24)を返します。トンネルを確立することができますが、特定のトラフィック セレクタは送信しません。
IPsec Multiple Phase 2 Associationsで定義されている既存の動作に基づいて、パケットはこのトンネルを介して送信されますが、レスポンダによって廃棄される可能性があります。送信側のVPN トンネルはパケットが廃棄されたことに気が付かないかもしれません。
iv. VPN GW-aの背後にあるホスト(たとえば、ホスト IP 5.9.0.2 - PN GW-bのポリシー内だが、VPN GW-aのポリシー外)がトンネルを起動しようとします。
期待値:
VPN GW-a: 送信: TSi: 5.9.0.2, 5.10.0.0 - 5.10.255.255
VPN GW-b: 応答: TSi: 5.10.11.0 - 5.10.11.255 [共通サブセット]
PAN-OSがイニシエータの場合、プロキシ id 0.0.0.0/0(プロキシ IDが定義されていない場合)または最後のプロキシ ID(トンネル インターフェース上に複数のプロキシ IDが定義されている場合)がTSiで使用されます。
トラフィックはトラフィック セレクタの絞り込みに違反するため、レスポンダ(ポリシー ベース VPNの機器)で廃棄される可能性があります。
イニシエータ(PAN-OS以外の機器)が厳格なVPN ポリシー チェックを行っている場合、VPN ポリシーに違反するため、IKE ネゴシエーションがトリガーされないことがあります。
これでこのTips & Tricksは終わりです。この記事が参考になれば幸いです。
著者: Joe Delio