この記事では、Palo Alto Networks のファイアウォール(PAN-OS 10.1)と Microsoft Azure の VPN Gateway の間で、サイト間 IPsec VPN を構築して動作を確認します。Azure 側の作成から、Palo Alto 側の設定、接続確認、暗号アルゴリズムの変更、運用で使うコマンドまでを順に説明します。
- Azure 側でリソースグループ、仮想ネットワーク、VPN Gateway、接続を作る
- Palo Alto 側でトンネルインタフェース、IKE ゲートウェイ、IPSec トンネル、ルートを設定する
- トンネルの確立と通信を確認する
- 暗号化・認証アルゴリズムと DH グループを変更する
- CLI で IKE SA と IPsec SA を確認する
検証構成
ネットワーク構成は下の図のとおりです。Palo Alto は NAT 環境で使っているため、インターネット側のローカルアドレス(192.168.20.120)は、パブリック IP アドレス(54.249.146.40)に変換されます。Azure 側の VPN Gateway のパブリック IP アドレスは 20.89.59.186 です。
Palo Alto の LAN 側(192.168.10.0/24)と、Azure の仮想ネットワーク内のサブネット(172.16.1.0/24)の間を IPsec VPN でつなぎます。
Microsoft Azure VPN Gatewayの設定
Azure VPN Gateway を使うと、Azure の仮想ネットワークに、リモートユーザーや別の拠点を VPN で接続できます。サイト間 VPN では、次の図のリソースを作ります。
| リソース | 役割 |
|---|---|
| 仮想ネットワーク(VNet) | Azure 側のネットワーク。VPN Gateway を置く GatewaySubnet と、サーバを置くサブネットを作る |
| 仮想ネットワークゲートウェイ | Azure 側の VPN 装置(VPN Gateway)。パブリック IP アドレスを持つ |
| ローカルネットワークゲートウェイ | 対向の Palo Alto を表す設定。Palo Alto のパブリック IP アドレスと、Palo Alto 側のアドレス空間を登録する |
| 接続 | 仮想ネットワークゲートウェイとローカルネットワークゲートウェイを結び付け、事前共有鍵や IKE の設定を決める |
この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
リソースグループの設定
最初に、リソースグループを作ります。リソースグループは、Azure のリソースをまとめて管理するための入れ物です。Azure ポータルにログインし、リソースグループ ›› 作成 を開きます。
| サブスクリプション | Azure サブスクリプション 1 |
| 1リソースグループ | PA-VPN-RG |
| 2リージョン | (Asia Pacific) Japan East |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | リソースグループ | 任意の名前。今回は PA-VPN-RG |
| 2 | リージョン | (Asia Pacific) Japan East |
| 3 | 確認および作成 | クリックし、「検証に成功しました」と表示されたら「作成」をクリック |
仮想ネットワーク(VNet)の設定
次に、仮想ネットワークを作ります。この仮想ネットワークに、VPN Gateway や Azure 側のサーバを置きます。仮想ネットワーク ›› 作成 を開き、「基本」タブと「IP アドレス」タブを設定します。
「IP アドレス」タブでは、既定で入っている IPv4 アドレス空間があれば削除してから、172.16.0.0/16 のアドレス空間を作り、「サブネットの追加」でサーバ用のサブネットを追加します。
| サブスクリプション | Azure サブスクリプション 1 |
| 1リソースグループ | PA-VPN-RG |
| 2仮想ネットワーク名 | PA-VPN-VNet |
| 3地域 | (Asia Pacific) Japan East |
| 4IPv4 アドレス空間 | 172.16.0.0 /16 (65,536 個のアドレス) |
| サブネットの目的 | Default |
| 5名前 | VPN-Subnet |
| IPv4 アドレスの範囲 | 172.16.0.0/16 |
| 6開始アドレス | 172.16.1.0 |
| サイズ | /24 (256 個のアドレス) |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | リソースグループ | STEP 1 で作った PA-VPN-RG |
| 2 | 仮想ネットワーク名 | 任意の名前。今回は PA-VPN-VNet |
| 3 | 地域 | (Asia Pacific) Japan East |
| 4 | IPv4 アドレス空間 | 172.16.0.0/16 |
| 5 | 名前(サブネット) | 任意の名前。今回は VPN-Subnet |
| 6 | 開始アドレス/サイズ | 172.16.1.0//24 (256 個のアドレス) |
| 7 | 追加 | クリック後、「確認+作成」→「作成」をクリック |
ゲートウェイサブネットの設定
VPN Gateway を置くためのゲートウェイサブネットを作ります。作成した仮想ネットワークで サブネット ›› +ゲートウェイサブネット を開き、「サブネットアドレス範囲」を 172.16.0.0/27 にして「保存」をクリックします。名前は GatewaySubnet が自動で入ります。
| 名前 | GatewaySubnet |
| 1サブネットアドレス範囲 | 172.16.0.0/27 172.16.0.0 – 172.16.0.31 (27 + 5 個の Azure 予約アドレス) |
| ⋮ (中略) | |
| 名前 | IPv4 | IPv6 | 使用可能な IP |
|---|---|---|---|
| VPN-Subnet | 172.16.1.0/24 | – | 251 |
| 3GatewaySubnet | 172.16.0.0/27 | – | 動的使用に依存する可用性 |
ゲートウェイサブネットの名前は GatewaySubnet でなければなりません。Microsoft のドキュメントでは、サイズは /27 以上(/27、/26 など)にすることが推奨されています。ゲートウェイサブネットには、VPN Gateway 以外の VM などを置きません。
ローカルネットワークゲートウェイの設定
Palo Alto 側の WAN アドレスとローカルのアドレス空間を登録するため、ローカルネットワークゲートウェイを作ります。ローカルネットワークゲートウェイ ›› 作成 を開きます。
| サブスクリプション | Azure サブスクリプション 1 |
| 1リソースグループ | PA-VPN-RG |
| 地域 | Japan East |
| 2名前 | Paloalto |
| 3エンドポイント | ◉ IP アドレス○ FQDN |
| 4IP アドレス | 54.249.146.40 |
| 5アドレス空間 | 192.168.10.0/24 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | リソースグループ | PA-VPN-RG |
| 2 | 名前 | 任意の名前。今回は Paloalto |
| 3 | エンドポイント | IP アドレス |
| 4 | IP アドレス | Palo Alto 側のパブリック IP アドレス 54.249.146.40。NAT 環境なので、Palo Alto のインタフェースのアドレス(192.168.20.120)ではなく、変換後のアドレスを指定する |
| 5 | アドレス空間 | Palo Alto 側のローカルのアドレス空間 192.168.10.0/24。Azure はこの宛先への通信を VPN に送る |
| 6 | 確認および作成 | クリックし、「検証に成功しました」と表示されたら「作成」をクリック |
仮想ネットワークゲートウェイの設定
このステップで、実際に VPN Gateway を作ります。仮想ネットワークゲートウェイ ›› 作成 を開きます。
| リソースグループ | PA-VPN-RG(仮想ネットワークのリソースグループから派生) |
| 1名前 | VPN_GW_PA |
| 2地域 | Japan East |
| 3ゲートウェイの種類 | ◉ VPN○ ExpressRoute |
| 4SKU | VpnGw1 |
| 世代 | Generation1 |
| 5仮想ネットワーク | PA-VPN-VNet |
| サブネット | GatewaySubnet (172.16.0.0/27) |
| 6パブリック IP アドレス | ◉ 新規作成○ 既存のものを使用 |
| パブリック IP アドレス名 | Azure_Public_IP |
| パブリック IP アドレスの SKU | Standard |
| 7アクティブ/アクティブ モードの有効化 | ○ 有効◉ 無効 |
| BGP の構成 | ○ 有効◉ 無効 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前。今回は VPN_GW_PA |
| 2 | 地域 | Japan East(仮想ネットワークと同じリージョン) |
| 3 | ゲートウェイの種類 | VPN |
| 4 | SKU | ゲートウェイの種類(性能や作れるトンネル数などが異なる)。検証時は VpnGw1 を選択 |
| 5 | 仮想ネットワーク/サブネット | PA-VPN-VNet を選ぶと、ゲートウェイサブネット(/27)が自動で選ばれる |
| 6 | パブリック IP アドレス | 既存のものがないので「新規作成」。名前は任意で、今回は Azure_Public_IP |
| 7 | アクティブ/アクティブ モードの有効化 | 無効 |
| 8 | 確認および作成 | クリックし、「検証に成功しました」と表示されたら「作成」をクリック |
検証時は VpnGw1 を選びましたが、可用性ゾーンに対応しない VpnGw1〜5(名前に AZ が付かない SKU)は、2025年11月1日から新規作成ができなくなり、2026年9月30日が廃止日とされています(既存のゲートウェイは AZ 付きの SKU に移行されます)。これから作る場合は、VpnGw1AZ など名前に AZ が付く SKU を選びます。
VPN Gateway の作成には時間がかかります。今回の検証では 30〜40 分ほどかかりました(Microsoft のドキュメントでは、SKU によって 45 分以上かかることがあるとされています)。作成後、仮想ネットワークゲートウェイの概要で、割り当てられたパブリック IP アドレスを確認します。
| SKU | VpnGw1 |
| ゲートウェイの種類 | VPN |
| VPN の種類 | ルート ベース |
| 仮想ネットワーク | PA-VPN-VNet/GatewaySubnet |
| 1パブリック IP アドレス | 20.89.59.186 (Azure_Public_IP) |
このパブリック IP アドレス(20.89.59.186)を、Palo Alto 側の IKE ゲートウェイでピアアドレスとして指定します。VPN の種類が「ルート ベース」になっている点も確認しておきます。
接続の追加
VPN Gateway とローカルネットワークゲートウェイの間の接続を作ります。仮想ネットワークゲートウェイの画面で 接続 ›› 追加 を開き、「基本」タブを設定してから「次: 設定」で「設定」タブに進みます。
| 1リソースグループ | PA-VPN-RG |
| 2接続の種類 | サイト対サイト (IPsec) |
| 3名前 | PA-VPN-CONNECTION |
| 地域 | Japan East |
| 4仮想ネットワーク ゲートウェイ | VPN_GW_PA |
| ローカル ネットワーク ゲートウェイ | Paloalto |
| 5共有キー (PSK) | ●●●●●●●● |
| 6IKE プロトコル | ○ IKEv1◉ IKEv2 |
| BGP を有効にする | ☐ |
| 7IPsec および IKE ポリシー | ◉ 既定○ カスタム |
| ポリシー ベースのトラフィック セレクターを使用する | ○ 有効化◉ 無効化 |
| DPD タイムアウト (秒) | 45 |
| 接続モード | ◉ Default○ InitiatorOnly○ ResponderOnly |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | リソースグループ | PA-VPN-RG |
| 2 | 接続の種類 | サイト対サイト (IPsec) |
| 3 | 名前 | 任意の名前。今回は PA-VPN-CONNECTION |
| 4 | 仮想ネットワーク ゲートウェイ/ローカル ネットワーク ゲートウェイ | STEP 5 の VPN_GW_PA と、STEP 4 の Paloalto |
| 5 | 共有キー (PSK) | 任意の事前共有鍵。対向の Palo Alto と同じ値にする |
| 6 | IKE プロトコル | IKEv2 |
| 7 | IPsec および IKE ポリシー | 既定(後の章でカスタムに変更する) |
| 8 | 確認および作成 | クリックし、「検証に成功しました」と表示されたら「作成」をクリック。しばらくするとデプロイが完了する |
「ポリシー ベースのトラフィック セレクターを使用する」が無効化のままなので、ルートベースの VPN として、通信の範囲(トラフィックセレクター)は全範囲(0.0.0.0/0)で取り決められます。そのため、Palo Alto 側でプロキシ ID を設定する必要はありません。
PaloaltoのVPN設定
Palo Alto で、Azure VPN Gateway に対するサイト間 VPN を設定します。設定するオブジェクトの関係は次のとおりです。
トンネルインタフェースの作成
VPN のトラフィックは、トンネルインタフェースを通して送受信されます。まず、このトンネルインタフェースを作ります。NETWORK ›› インターフェース ›› トンネル ›› 追加 を開きます。
トンネルインタフェースに割り当てるセキュリティゾーンは、IPsec 用に新しく作ります。「セキュリティゾーン」で「新規ゾーン」を選び、名前(今回は IPSec)を入れて「OK」をクリックします。
| 1インターフェイス名 | tunnel . 1 |
| Netflow プロファイル | None |
| 2仮想ルーター | default |
| 3セキュリティ ゾーン | IPSec |
| インターフェイス | IP アドレス | 仮想ルーター | セキュリティ ゾーン |
|---|---|---|---|
| tunnel | none | none | none |
| tunnel.1 | none | default | IPSec |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | インターフェイス名 | サブインタフェース番号は任意。今回は 1(tunnel.1) |
| 2 | 仮想ルーター | default |
| 3 | セキュリティ ゾーン | 新しく作った IPSec |
| 4 | OK | クリックして登録 |
スタティックルートで VPN に送る構成では、トンネルインタフェースに IP アドレスを付けなくても通信できます。今回も IP アドレスは none のままです。
IKEゲートウェイの作成
IKE ゲートウェイでは、IKE で鍵交換をする相手(ピア)と、その方法を決めます。NETWORK ›› ネットワークプロファイル ›› IKE ゲートウェイ ›› 追加 を開き、「全般」タブと「詳細オプション」タブを設定します。
| 1名前 | azure-ike-gw |
| 2バージョン | IKEv2 preferred mode |
| アドレス タイプ | ◉ IPv4○ IPv6 |
| 3インターフェイス | ethernet1/1 |
| ローカル IP アドレス | 192.168.20.120/24 |
| 4ピア IP アドレス タイプ | ◉ IP○ FQDN○ ダイナミック |
| ピア アドレス | 20.89.59.186 |
| 5認証 | ◉ Pre-Shared Key○ 証明書 |
| 事前共有鍵/再入力 事前共有鍵 | ●●●●●●●● |
| ローカル ID/ピア ID | None |
| パッシブ モードを有効にする | ☐ |
| 6NAT トラバーサルを有効にする | ☑ |
| 7IKEv2 ›› IKE 暗号プロファイル | default |
| ライブネス チェック ›› 間隔 (sec) | ☑ 5 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前。今回は azure-ike-gw |
| 2 | バージョン | IKEv1 only mode/IKEv2 only mode/IKEv2 preferred mode から選ぶ。今回は IKEv2 を優先して使うため IKEv2 preferred mode |
| 3 | インターフェイス/ローカル IP アドレス | インターネットにつながる ethernet1/1 と、そのアドレス 192.168.20.120/24 |
| 4 | ピア IP アドレス タイプ/ピア アドレス | IP。Azure VPN Gateway のパブリック IP アドレス 20.89.59.186 |
| 5 | 認証 | Pre-Shared Key。事前共有鍵には、Azure の接続(STEP 6)で設定した値を入れる |
| 6 | NAT トラバーサルを有効にする | NAT 環境なのでチェックを入れる |
| 7 | IKE 暗号プロファイル(IKEv2) | ここでは default のまま |
| 8 | OK | クリックして登録 |
IPsec の ESP は TCP や UDP のようなポート番号を持たないため、途中の NAT 機器でうまく変換できないことがあります。NAT トラバーサルを有効にすると、IKE で途中に NAT があることを検出した場合に、IKE と ESP を UDP 4500 番でカプセル化して送ります。今回の CLI の確認結果でも、ピアのアドレスが 20.89.59.186:4500 と表示されます。
IPSecトンネルの作成
IPSec トンネルを設定します。NETWORK ›› IPSec トンネル ›› 追加 を開き、「全般」タブを設定します。
| 1名前 | azure-ipsec-tunnel |
| 2トンネル インターフェイス | tunnel.1 |
| 3タイプ | ◉ 自動キー○ 手動キー○ GlobalProtect サテライト |
| アドレス タイプ | ◉ IPv4○ IPv6 |
| 4IKE ゲートウェイ | azure-ike-gw |
| 5IPSec 暗号プロファイル | default |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前。今回は azure-ipsec-tunnel |
| 2 | トンネル インターフェイス | STEP 7 の tunnel.1 |
| 3 | タイプ | 自動キー(IKE で鍵を自動で取り決める) |
| 4 | IKE ゲートウェイ | STEP 8 の azure-ike-gw |
| 5 | IPSec 暗号プロファイル | ここでは default |
| 6 | OK | クリックして登録 |
「OK」をクリックすると、次のように登録されます。まだ Commit していないので、トンネルも IKE も状態は赤(未確立)です。
| 名前 | 状態 | タイプ | インターフェイス | ローカル IP | ピア アドレス | IKE の状態 |
|---|---|---|---|---|---|---|
| azure-ipsec-tunnel | トンネル情報 | 自動キー | ethernet1/1 | 192.168.20.120/24 | 20.89.59.186 | IKE 情報 |
ルーティング設定
最後に、Azure 側のネットワーク(172.16.1.0/24)への通信を VPN トンネルに送るルートを設定します。NETWORK ›› 仮想ルーター ›› default ›› スタティックルート ›› 追加 を開きます。
| 1名前 | Azure-Remote-Network |
| 2宛先 | 172.16.1.0/24 |
| 3インターフェイス | tunnel.1 |
| 4ネクスト ホップ | None |
| メトリック | 10 |
| ルート テーブル | ユニキャスト |
| 名前 | 宛先 | インターフェイス | ネクストホップ | メトリック |
|---|---|---|---|---|
| default-route | 0.0.0.0/0 | ethernet1/1 | ip-address 192.168.20.1 | 10 |
| Azure-Remote-Network | 172.16.1.0/24 | tunnel.1 | 10 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前。今回は Azure-Remote-Network |
| 2 | 宛先 | Azure 側のネットワーク 172.16.1.0/24 |
| 3 | インターフェイス | STEP 7 の tunnel.1 |
| 4 | ネクスト ホップ | None(トンネルインタフェースに送るだけでよいので、ネクストホップのアドレスは指定しない) |
| 5 | OK | クリックすると仮想ルーターの画面に戻るので、もう一度「OK」をクリック |
設定が終わったら、Commit を実行して反映します。
VPN接続確認
NETWORK ›› IPSec トンネル で、トンネルの状態を確認できます。状態のアイコンが緑であれば、トンネルは確立しています。
| 名前 | 状態 | タイプ | IKE の状態 | トンネル インターフェイス | 仮想ルーター | ゾーン |
|---|---|---|---|---|---|---|
| azure-ipsec-tunnel | 1 トンネル情報 | 自動キー | 2 IKE 情報 | tunnel.1 | default | IPSec |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | トンネル情報(緑) | IPsec トンネル(IPsec SA)が確立している。未確立のときは赤 |
| 2 | IKE 情報(緑) | IKE ゲートウェイとの IKE SA が確立している。未確立のときは赤 |
「トンネル情報」と「IKE 情報」をクリックすると、それぞれの詳細を確認できます。
| 名前 | ローカル IP | ローカル ポート | ピア IP | リモート IP | リモート ポート |
|---|---|---|---|---|---|
| azure-ipsec-tunnel | 192.168.20.120 | 0 – 65535 | 20.89.59.186 | 0.0.0.0 – 255.25… | 0 – 65535 |
| 名前 | ゲートウェイ | ロール | モード | アルゴリズム |
|---|---|---|---|---|
| azure-ike-gw | 1 | 1Resp | IKEv2 | 2PSK/DH2/AES128/SHA1 |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | ロール Resp | Palo Alto が応答側(レスポンダ)。このときは Azure 側からネゴシエーションが始まった |
| 2 | PSK/DH2/AES128/SHA1 | 認証は事前共有鍵、DH グループ 2、暗号化 AES128、ハッシュ SHA1 で IKE SA ができた |
Palo Alto の default プロファイルと Azure の既定ポリシーの組み合わせでは、DH グループ 2(1024 ビット)が選ばれました。DH グループ 2 は、IKEv2 の暗号要件をまとめた RFC 8247 で「使うべきではない(SHOULD NOT)」とされている弱いグループです。次の章で、より強いアルゴリズムに変更します。DH グループと鍵長の考え方は Diffie-Hellman 鍵交換をイメージで解説 で説明しています。
暗号化アルゴリズム、認証アルゴリズム、DHグループの変更
ここまでは、暗号化・認証アルゴリズムや DH グループを既定のままで接続しました。実際の環境では、セキュリティ要件に合わせてアルゴリズムを指定することをお勧めします。今回は、暗号化に aes-256-gcm、DH グループに group14(2048 ビット)を使います。Palo Alto では、IKE で AES-GCM を使えるのは IKEv2 だけです。
IKEゲートウェイの変更(Paloalto)
IKE ゲートウェイ azure-ike-gw の「全般」タブで、バージョンを IKEv2 only mode に変更します。
IKE暗号化プロファイル(Paloalto)
NETWORK ›› ネットワークプロファイル ›› IKE 暗号 ›› 追加 を開き、次のように設定します。
| 1名前 | azure-ike |
| 2DH グループ | group14 |
| 3認証 | non-auth |
| 4暗号化 | aes-256-gcm |
| タイマー ›› キーの有効期間 | 時間 8 |
| IKEv2 多重認証 | 0 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前。今回は azure-ike |
| 2 | DH グループ | group14 を追加 |
| 3 | 認証 | non-auth を追加。AES-GCM は暗号化と改ざん検知を一緒に行うため、AES-GCM を選んだときは non-auth にする(ほかを選ぶとコミットに失敗する) |
| 4 | 暗号化 | aes-256-gcm |
| 5 | OK | タイマーは既定(キーの有効期間 8 時間)のまま、クリックして登録 |
作ったプロファイルを IKE ゲートウェイに紐付けます。NETWORK ›› ネットワークプロファイル ›› IKE ゲートウェイ で azure-ike-gw を開き、「詳細オプション」タブの「IKE 暗号プロファイル」を azure-ike にします。
IPSec暗号プロファイル(Paloalto)
NETWORK ›› ネットワークプロファイル ›› IPSec 暗号 ›› 追加 を開き、次のように設定します。
| 1名前 | Azure-IPSec |
| IPSec プロトコル | ESP |
| 2暗号化 | aes-256-gcm |
| 3認証 | none |
| 4DH グループ | no-pfs |
| 5ライフタイム | 秒 8400 |
| ライフサイズ | ☐ 有効化 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前。今回は Azure-IPSec |
| 2 | 暗号化 | aes-256-gcm を追加 |
| 3 | 認証 | none を追加(AES-GCM が改ざん検知も行うため) |
| 4 | DH グループ | no-pfs(IPsec SA を作るときに追加の DH をしない) |
| 5 | ライフタイム | 8400 秒に変更 |
| 6 | OK | クリックして登録 |
作ったプロファイルを IPSec トンネルに紐付けます。NETWORK ›› IPSec トンネル で azure-ipsec-tunnel を開き、「全般」タブの「IPSec 暗号プロファイル」を Azure-IPSec にします。
IPSecおよびIKEポリシー(Azure VPN Gateway)
Azure VPN Gateway 側も、同じアルゴリズムを使うようにポリシーを変更します。仮想ネットワークゲートウェイの 接続 ›› PA-VPN-CONNECTION ›› 構成 を開き、「IPsec および IKE ポリシー」を「既定」から「カスタム」に変更します。
| 1IPsec および IKE ポリシー | ○ 既定◉ カスタム |
| 2暗号化 | GCMAES256 |
| 整合性または PRF | SHA256 |
| DH グループ | DHGroup14 |
| 3IPsec 暗号化 | GCMAES256 |
| IPsec 整合性 | GCMAES256 |
| PFS グループ | None |
Palo Alto と Azure の設定の対応をまとめると、次のようになります。両側で同じアルゴリズムを選ばないと、ネゴシエーションが失敗します。
| 項目 | Palo Alto | Azure(カスタム ポリシー) |
|---|---|---|
| IKE のバージョン | IKE ゲートウェイ:IKEv2 only mode | 接続の IKE プロトコル:IKEv2 |
| IKE の暗号化 | IKE 暗号:aes-256-gcm | IKE フェーズ 1 暗号化:GCMAES256 |
| IKE の認証/整合性 | IKE 暗号 認証:non-auth | 整合性または PRF:SHA256 |
| IKE の DH グループ | IKE 暗号:group14 | DH グループ:DHGroup14 |
| IPsec の暗号化 | IPSec 暗号:aes-256-gcm | IPsec 暗号化:GCMAES256 |
| IPsec の認証/整合性 | IPSec 暗号 認証:none | IPsec 整合性:GCMAES256 |
| PFS | IPSec 暗号 DH グループ:no-pfs | PFS グループ:None |
Palo Alto のドキュメントでは、aes-256-gcm と組み合わせる DH グループとして group20(楕円曲線の 384 ビット)が案内されています。より強い組み合わせにする場合は、Palo Alto 側を group20、Azure 側を対応する ECP384 にそろえます。
アルゴリズム変更後の確認
Palo Alto 側を Commit し、NETWORK ›› IPSec トンネル でトンネルが確立していることを確認します。「IKE 情報」をクリックすると、アルゴリズムが PSK/DH14/AES256-GCM16/COMBINED に変わっていることを確認できます。
| 名前 | ゲートウェイ | ロール | モード | アルゴリズム |
|---|---|---|---|---|
| azure-ike-gw | 1 | Resp | IKEv2 | 1PSK/DH14/AES256-GCM16/COMBINED |
DH14 は DH グループ 14、AES256-GCM16 は 16 バイトの認証タグを使う AES-256-GCM です。COMBINED は、暗号化と改ざん検知を一つのアルゴリズムでまとめて行っていることを表します。
セキュリティポリシー
VPN トンネルを通る通信は、トンネルインタフェースに割り当てたゾーン(今回は IPSec ゾーン)を指定したセキュリティポリシーで制御します。今回は、Trust ゾーンから IPSec ゾーンへのすべての通信を許可するポリシーを追加しました。
| 名前 | 送信元ゾーン | 送信元アドレス | 宛先ゾーン | 宛先アドレス | アプリケーション | サービス | アクション |
|---|---|---|---|---|---|---|---|
| Azure IPSec | Trust | any | 1IPSec | any | any | application-d… | ✓ 許可 |
ポリシーを追加すると、VPN トンネルを通した通信ができるようになります。PC(192.168.10.133)から Azure のサーバ(172.16.1.4)へ ping を送ると、トラフィックログに次のように記録されます。
| タイプ | 送信元ゾーン | 宛先ゾーン | 送信元 | 宛先 | アプリケーション | アクション | ルール | セッション終了理由 |
|---|---|---|---|---|---|---|---|---|
| end | Trust | IPSec | 192.168.10.133 | 172.16.1.4 | ping | allow | Azure IPSec | aged-out |
| end | Trust | IPSec | 192.168.10.133 | 172.16.1.4 | ping | allow | Azure IPSec | aged-out |
| end | Trust | IPSec | 192.168.10.133 | 172.16.1.4 | ping | allow | Azure IPSec | aged-out |
IPSec関連コマンド
IPsec VPN の運用で役に立つ CLI コマンドを紹介します。
VPN接続テスト(test vpn)
test vpn コマンドは、IKE SA や IPsec SA のネゴシエーションを手動で始めるコマンドです。新しく VPN を設定した後の確認や、VPN が予期せず切れたときの切り分けに使います。実行した後は、トンネルの状態を確認します。
test vpn ike-sa gateway ゲートウェイ名
指定した IKE ゲートウェイとの IKE SA のネゴシエーションを始めます。
PA-VM
admin@PA-VM> test vpn ike-sa gateway azure-ike-gw
Start time: Apr.2 07:21:43
Initiate 1 IKE SA.
test vpn ipsec-sa tunnel トンネル名
指定した IPSec トンネルの IPsec SA のネゴシエーションを始めます。
PA-VM
admin@PA-VM> test vpn ipsec-sa tunnel azure-ipsec-tunnel
Start time: Apr.2 07:25:14
Initiate 1 IPSec SA for tunnel azure-ipsec-tunnel.
show コマンド
show コマンドでは、VPN トンネルの現在の状態や SA の情報を確認できます。
show vpn flow
設定されている IPSec トンネルの一覧と状態を表示します。トンネル名、状態、ローカル IP、ピア IP、トンネルインタフェースを確認できます。
PA-VM
admin@PA-VM> show vpn flow
total tunnels configured: 1
filter - type IPSec, state any
total IPSec tunnel configured: 1
total IPSec tunnel shown: 1
id name state monitor local-ip peer-ip tunnel-i/f
-- -------------- ----- ------- -------- ------- ----------
1 azure-ipsec-tunnel active off 192.168.20.120 20.89.59.186 tunnel.1
show vpn ike-sa
IKE SA と、その下の IPsec SA(IKEv2 では Child SA)の一覧を表示します。
PA-VM
admin@PA-VM> show vpn ike-sa There is no IKEv1 phase-1 SA found. There is no IKEv1 phase-2 SA found. IKEv2 SAs Gateway ID Peer-Address Gateway Name Role SN Algorithm Established Expiration Xt Child ST ---------- ------------ ------------ ---- -- --------- ----------- ---------- -- ----- -- 1 20.89.59.186 azure-ike-gw Init 27 PSK/DH14/AES256-GCM16 Apr.2 07:21:43 Apr.2 15:21:43 0 2 Established IKEv2 IPSec Child SAs Gateway Name TnID Tunnel ID Parent Role SPI(in) SPI(out) MsgID ST ------------ ---- ------ -- ------ ---- ------- -------- ----- -- azure-ike-gw 1 azure-ipsec-tunnel 1171 27 Init EE9349AC 13AA3142 00000020 Mature Show IKEv2 SA: Total 1 gateways found. 1 ike sa found.
| 表示 | 意味 |
|---|---|
| There is no IKEv1 … | IKEv1 の SA はない(IKEv2 で接続している) |
| Role Init | Palo Alto がネゴシエーションを始めた側(test vpn を実行したため) |
| Algorithm | IKE SA の認証方式・DH グループ・暗号化 |
| Established / Expiration | IKE SA ができた時刻と、期限の時刻(8 時間後) |
| ST Established | IKE SA が確立している |
| SPI(in) / SPI(out) | Child SA(IPsec SA)の受信用と送信用の SPI |
| ST Mature | Child SA が確立して使える状態 |
show vpn ike-sa detail gateway ゲートウェイ名
指定したゲートウェイの IKE SA と Child SA の詳細を表示します。
PA-VM
admin@PA-VM> show vpn ike-sa detail gateway azure-ike-gw
IKE Gateway azure-ike-gw, ID 1 192.168.20.120 => 20.89.59.186
Current time: Apr.2 07:34:59
IKE SA:
SPI: 64E513471A0DA46E:59E55995B6BE2B00 Init
State: Established
SN: 27
Authentication: PSK, peer PSK
Proposal: AES256-GCM16/COMBINED/DH14
ID local: ipaddr:192.168.20.120
remote: ipaddr:20.89.59.186
ID_i: IPv4_address:192.168.20.120
ID_r: IPv4_address:20.89.59.186
NAT: ME
Message ID: rx 56, tx 118
Liveness check: sending informational packet after idle 5 seconds
Created: Apr.2 07:21:43, 13 minutes 17 seconds ago
Expires: Apr.2 15:21:43, rekey in 6 hours 32 minutes 4 seconds (24321 sec)
Child SA 1171:
Tunnel 1 azure-ipsec-tunnel
Type: ESP Init
State: Mature
Message ID: 00000020
Parent SN: 27
SPI: EE9349AC : 13AA3142
Algorithm: AES256-GCM16/COMBINED/
TS local: Proto:any, 0.0.0.0-255.255.255.255, Ports:any
TS remote: Proto:any, 0.0.0.0-255.255.255.255, Ports:any
Created: Apr.2 07:25:14, 9 minutes 46 seconds ago
Expires: Apr.2 09:45:14, rekey in 1 hour 48 minutes 48 seconds (7114 sec)
Child SA 1256:
Type: INFO
State: Expired
Message ID: 00000075
Parent SN: 27
| 表示 | 意味 |
|---|---|
| Authentication: PSK, peer PSK | 自分も相手も事前共有鍵で認証している |
| Proposal | IKE SA で使っている暗号化・PRF・DH グループ |
| NAT: ME | 自分(Palo Alto)側が NAT の内側にあると検出された |
| Expires … rekey in | 期限と、鍵を更新(リキー)するまでの残り時間 |
| TS local / TS remote | トラフィックセレクター。どちらも全範囲(0.0.0.0-255.255.255.255)で、ルートベースの VPN になっている |
show vpn ipsec-sa
IPsec SA の一覧を表示します。ピアのアドレス、トンネル名、アルゴリズム、SPI、ライフタイムと残り時間を確認できます。
PA-VM
admin@PA-VM> show vpn ipsec-sa GwID/client IP TnID Peer-Address Tunnel(Gateway) Algorithm SPI(in) SPI(out) life(Sec/KB) remain-time(Sec) -------------- ---- ------------ --------------- --------- ------- -------- ------------ ---------------- 1 1 20.89.59.186:4500 azure-ipsec-tunnel(azure-ike-gw) ESP/G256/ EE9349AC 13AA3142 8400/Unlimited 7562 Show IPSec SA: Total 1 tunnels found. 1 ipsec sa found.
| 表示 | 意味 |
|---|---|
| 20.89.59.186:4500 | ピアの UDP 4500 番で通信している(NAT トラバーサル) |
| ESP/G256/ | ESP で AES-256-GCM を使っている |
| 8400/Unlimited | ライフタイムが 8400 秒で、データ量の上限はなし(IPSec 暗号プロファイルの設定どおり) |
| remain-time(Sec) | IPsec SA の残り時間 |
うまくつながらないとき
| 状態 | よくある原因 | 確認すること |
|---|---|---|
| IKE SA ができない | 事前共有鍵の不一致、ピアアドレスの誤り、IKE バージョンやアルゴリズムの不一致 | Palo Alto の IKE ゲートウェイと Azure の接続で、共有キー、IKE バージョン、アルゴリズムが一致しているか。MONITOR ›› ログ ›› システム の IKE のログ |
| Azure 側で Palo Alto を相手として認識しない | ローカルネットワークゲートウェイの IP アドレスが NAT 変換前のアドレスになっている | ローカルネットワークゲートウェイの IP アドレスが、変換後のパブリック IP(今回は 54.249.146.40)か |
| NAT 環境でネゴシエーションが進まない | NAT トラバーサルが無効、または途中の機器で UDP 500/4500 番が通らない | IKE ゲートウェイの「NAT トラバーサルを有効にする」、上位の NAT 機器やファイアウォールの許可設定 |
| トンネルは確立するが通信できない | ルート、セキュリティポリシー、Azure 側のアドレス空間の設定漏れ | Palo Alto のスタティックルート(宛先 172.16.1.0/24 → tunnel.1)、Trust → IPSec のポリシー、トラフィックログ、ローカルネットワークゲートウェイのアドレス空間(192.168.10.0/24) |
| アルゴリズム変更後につながらない | 片側だけ変更した | Palo Alto と Azure のアルゴリズムの対応表どおりになっているか |
まとめ
| 項目 | Palo Alto | Azure |
|---|---|---|
| 自分のパブリック IP | 54.249.146.40(192.168.20.120 を NAT で変換) | 20.89.59.186(仮想ネットワークゲートウェイ) |
| 相手の指定 | IKE ゲートウェイ azure-ike-gw(ピア 20.89.59.186) | ローカルネットワークゲートウェイ Paloalto(54.249.146.40) |
| 相手側のネットワーク | スタティックルート 172.16.1.0/24 → tunnel.1 | ローカルネットワークゲートウェイのアドレス空間 192.168.10.0/24 |
| 事前共有鍵 | IKE ゲートウェイの事前共有鍵 | 接続の共有キー (PSK) |
| 暗号の設定 | IKE 暗号プロファイル/IPSec 暗号プロファイル | 接続の IPsec および IKE ポリシー(カスタム) |
| NAT 環境 | NAT トラバーサルを有効にする | ― |
| 通信の許可 | セキュリティポリシー(Trust → IPSec) | ― |
コメント