この記事では、Palo Alto NetworksのファイアウォールとMicrosoft Azure VPN Gatewayを用いて、サイト間VPN接続を構築する方法について確認します。
ネットワーク環境は、下記の構成図のとおりです。
Paloaltoは、NAT環境で使用しているため、ローカルアドレス(192.168.20.120)は、パブリックIPアドレス(54.249.146.40)に変換されます。
Microsoft Azure VPN Gatewayの設定
Microsoft Azure VPN Gatewayを使用することで、Azureの仮想ネットワークにリモートユーザーや異なるサイトをVPNで接続することができます。
リソースグループの設定
最初のステップとして、リソースグループを設定します。リソースグループは、Azureリソースを整理し管理するためのコンテナです。
>> 参考記事 :【Azure】リソースグループの概要と追加・削除Azureポータルにログイン後、「リソースグループ」を選択し、「作成」をクリックします。
リソースグループに名前を付け、リージョンを選択し、「確認および作成」をクリックします。
「検証に成功しました」を確認後、「作成」をクリックします。
仮想ネットワーク(VNet)の設定
次に、仮想ネットワークを作成します。この仮想ネットワークは、Azure内でVPNゲートウェイや他のリソースをホストするためのものです。
>> 参考記事 :【Azure】仮想ネットワーク(VNet)の概要「仮想ネットワーク」を選択し、「作成」をクリックします。
「基本」タブが表示されます。
- リソースグループ名:「PA-VPN-RG」を選択
- 仮想ネットワーク名:任意の名前。今回は、「PA-VPN-VNet」とします。
- リージョン:Japan East を選択
「IPアドレス」タブへ移動します。
デフォルトで設定されているIPv4アドレス空間があれば削除したあと、下記のとおり、172.16.0.0/16 のアドレス空間を作成し、「サブネットの追加」をクリックします。
「サブネット追加」画面が出力されます。
- 名前:任意の名前。今回は、「VPN-Subnet」とします。
- 開始アドレス:サブネットの開始アドレスとして、「172.16.1.0」を入力
- サイズ:サブネットマスクを選択。今回は、「/24(256個のアドレス)」を選択
「追加」をクリックします。
「確認+作成」をクリックします。
「作成」をクリックします。
ゲートウェイサブネットの設定
VPN Gatewayを配置するためのゲートウェイサブネットを作成します。
作成した仮想ネットワーク内で「サブネット」オプションを選択し、「+ゲートウェイサブネット」をクリックします。
「サブネットアドレスの範囲」を172.16.0.0/27 にして、「保存」をクリックします。
下記のとおり登録されます。
ローカルネットワークゲートウェイの設定
Paloalto側ののWANアドレスやローカルサブネットを定義するため、ローカルネットワークゲートウェイを作成します。
「ローカルネットワークゲートウェイ」へ移動し、「作成」をクリックします。
下記の作成画面が表示されます。Paloalto側のパブリックIPアドレスやアドレス空間を指定します。
- リソースグループ:「PA-VPN-RG」を指定
- 名前:任意の名前。今回は「Paloalto」
- エンドポイント:「IPアドレス」を選択
- IPアドレス:Paloalto側のパブリックアドレスを設定
- アドレス空間:Paloalto側のローカルのアドレス空間「192.168.10.0/24」を設定
「確認および作成」をクリックします。
「検証に成功しました」を確認後、「作成」をクリックします。
仮想ネットワークゲートウェイの設定
このステップでは、実際に VPN Gateway を作成します。
「仮想ネットワークゲートウェイ」へ移動し、「作成」をクリックします。
「仮想ネットワークゲートウェイ」の作成画面が表示されます。
- 名前:任意の名前。今回は「VPN_GW_PA」とします。
- 地域:「Japan East」を選択
- ゲートウェイの種類:「VPN」を選択
- SKU:ゲートウェイの種別。パフオーマンスなどトンネル数などが異なります。今回は「VpnGw1」を選択。
- 仮想ネットワーク:「PA-VPN-VNet」を選択。
- サブネット:上の仮想ネットワークに応じたゲートウェイサブネット(/27)を自動的に選択。
- パブリックIPアドレス:既存のものはないので、「新規作成」を選択。
- パブリックIPアドレス名:任意の名前。今回は「Azure_Public_IP」とします。
- アクティブ/アクティブモードの有効化:「無効」を選択します。
完了後、「確認および作成」をクリックします。
「検証に成功しました」を確認後、「作成」をクリックします。
作成完了までには、30~40分程度の時間がかかります。
仮想ネットワークゲートウェイの詳細を確認すると、割り当てられたパブリックIPアドレスを確認することができます。
仮想ネットワークの詳細画面に移動し、「接続デバイス」をクリックすることで、仮想ネットワークからも仮想ネットワークゲートウェイが作成されていることが確認できます。
接続の追加
Azure VPN Gatewayとオンプレミスのローカルネットワークゲートウェイの間の接続を作成します。
仮想ネットワークゲートウェイの詳細画面より、「接続」をクリックします。
「追加」をクリックします。
「接続の構成」画面が表示されます。
- リソースグループ:「PA-VPN-RG」を選択
- 接続の種類:「サイト対サイト(IPSec)」を選択
- 名前:任意の名前。今回は「PA-VPN-CONNECTION」とします。
設定後、「次:設定」をクリックし、「設定」タブへ移動します。ここでは、仮想ネットワークゲートウェイやローカルネットワークゲートウェイを選択します。
- 仮想ネットワークゲートウェイ:「VPN_GW_PA」を選択
- ローカルネットワークゲートウェイ:「Paloalto」を選択
- 共有キー(PSK):任意の共有キーを入力。対向のPaloaltoと同じ値に合わせる必要があります。
- IPSecおよびIKEポリシー:「既定」を選択。
「確認および作成」をクリックします。
「検証に成功しました」を確認後、「作成」をクリックします。
しばらくすると、デプロイが完了します。
PaloaltoのVPN設定
Palo Alto上でのAzure VPN Gatewayに対するサイト間VPNを設定します。
トンネルインタフェースの作成
VPNトンネルはトンネルインタフェースを介して接続されます。まず、このトンネルインタフェースを作成します。
「NETWORK」タブを選択し、「インターフェース」から「トンネル」を選び、「追加」をクリックします。
トンネルインタフェースに割り当てる仮想ルータとゾーンを設定します。
- サブインタフェース番号:任意の番号。今回は「1」とします。
- 仮想ルータ:「default」を選択
ゾーンはIPSec用に新規作成するため、「新規ゾーン」をクリックします。
名前に任意の名前(今回は「IPSec」とします。)を入力し、「OK」をクリックします。
ゾーンに「IPSec」が登録されていることを確認し、「OK」をクリックします。
下記のように登録されます。
IKEゲートウェイの作成
IKE(Internet Key Exchange)ゲートウェイは、VPN接続のためのセキュアなキーの交換に使用します。
「NETWORK」タブから「ネットワークプロファイル」を選択し、「IKEゲートウェイ」を選んで「追加」をクリックします。
「全般」タブで、IKEゲートウェイの設定をします。
- 名前:任意の名前。今回は「azure-ike-gw」とします。
- バージョン:「IKEv1 only mode」「IKEv2 only mode」「IKEv2 preferred mode」の3つのうち、いずれかを選択します。今回は、IKEv2を優先的にしようするため、「IKEv2 preferred mode」を選択します。
- インタフェース:VPN対向向けのインタフェースを指定します。今回は、インターネットへ接続されている「ethernet1/1」を選択します。
- ローカルIPアドレス:上記インタフェースにおけるPAのIPアドレスを選択します。今回は「192.168.20.120/24」を選択します。
- ピアIPアドレスタイプ:「IP」を選択
- ピアアドレス:対向のAzure VPN GatewayのIPアドレスを指定します。今回の環境では、「20.89.59.186」と入力します。
- 認証:事前共有キーである「Pre-shaed Key」を選択
- 事前共有鍵、再入力事前共有鍵:Azure VPN Gatewayの構築で設定した事前共有鍵を入力します。
設定後、「詳細オプション」タブへ移動します。今回はNAT環境でのVPN接続のため、「NATトラバーサルを有効にする」にチェックを入れます。「IKEv2」タブの「IKE暗号プロファイル」は 「default」 のままとします。
完了後、「OK」をクリックします。
下記のように登録されます。
IPSecトンネルの作成
IPSecトンネルを設定します。
「NETWORK」タブから「IPSecトンネル」を選択し、「追加」をクリックします。
「全般」タブにて、IPSecトンネルを設定します。
- 名前:任意の名前。今回は「azure-ipsec-tunnel」とします。
- トンネルインタフェース:「tunnel.1」を選択
- タイプ:「自動キー」を選択
- IKEゲートウェイ:「azure-ike-gw」を選択
- IPSec暗号プロファイル:「default」を選択
設定後、「OK」をクリックします。すると、下記のように登録されます。
ルーティング設定
最後にVPNトンネル経由でAzure VPN Gatewayのローカルにあるネットワークにルーティングするための設定をします。
「NETWORK」タブから「仮想ルーター」を選択し、使用中のルーターである「default」をクリックします。
「スタティックルート」を選択し、「追加」をクリックします。
「スタティックルート」を追加し、トンネルインタフェースを指定し、Azureネットワークへのルート(172.16.1.0/24)を設定します。
- 名前:任意の名前。今回は「Azure-Remote-Network」とします。
- 宛先:Azureのリモートネットワーク側である「172.16.1.0/24」を設定。
- インタフェース:作成したトンネルインタフェース「tunnel.1」を選択
- ネクストホップ:「None」を選択
設定後、「OK」をクリックします。下記画面に推移しますので、再度「OK」をクリックします。
Commit を実行し、設定を反映させます。
VPN接続確認
「NETWORK」タブから「IPSecトンネル」を移動すると、トンネルの状態が確認できます。状態のアイコンが色が緑であれば、トンネル接続されています。
「トンネル情報」、および「IKE情報」をそれぞれクリックすると、詳細を確認することができます。
暗号化アルゴリズム、認証アルゴリズム、DHグループの変更
上の例では、暗号化・認証アルゴリズムやDHグループはデフォルトで接続をしました。実環境ではセキュリティ要件によりカスタム設定でアルゴリズムを追加することをお勧めします。
IKE情報を見ると、アルゴリズムは、「PSK/DH2/AES128/SHA1」です。今回は、暗号化方式で、「aes-256-gcm」を使用してみようと思います。これは、IKEv2のみで使用できます。
IKEゲートウェイの変更(Paloato)
IKEゲートのバージョンを「IKEv2 Only mode」に変更します。
IKE暗号化プロファイル(Paloato)
「NETWORK」タブから「ネットワークプロファイル」>> 「IKE暗号」へ移動し、「追加」をクリックします。
下記のように設定します。
- 名前:任意の名前。今回は「azure-ike」とします。
- DHグループ:「group14」 を追加
- 認証:「non-auth」 を追加
- 暗号化:「aes-256-gcm」 を選択
- タイマー:デフォルトのまま
設定後、「OK」 をクリックします。
この新しいプロファイルをIKEゲートウェイに紐づけます。
「NETWORK」タブから「ネットワークプロファイル」>> 「IKEゲートウェイ」へ移動し、作成済みの「azure-ike-gw」の「詳細オプション」タブより「IKE暗号プロファイル」を紐づけます。
IPSec暗号プロファイル(Paloato)
「NETWORK」タブから「ネットワークプロファイル」>> 「IPSec暗号」へ移動し、「追加」をクリックします。
下記のように設定します。
- 名前:任意の名前。今回は「Azure-IPSec」とします。
- 暗号化:「aes-256-gcm」を追加
- 認証:「none」を追加
- DHグループ:「no-pfs」 を選択
- ライフタイム:8400 秒 に変更
設定後、「OK」 をクリックします。
この新しいプロファイルをIPSecトンネルに紐づけます。
「NETWORK」タブから「IPSecトンネル」へ移動し、作成済みの「azure-ipsec-tunnel」の「全般」タブより「IPSec暗号プロファイル」を紐づけます。
IPSecおよびIKEポリシー(Azure VPN Gateway)
Azure VPN Gateway側も、「aes-256-gcm」を使用できるよう、ポリシーを変更します。
仮想ネットワークゲートウェイから「接続」へ移動し、作成した「PA-VPN-CONNECTION」をクリックします。
「構成」をクリックします。
「IPSecおよびIKEポリシー」を「既定」から「カスタム」へ変更し、方式を下記のとおり選択します。
- IKEフェーズ1
- 暗号化:GCMAES256 を選択
- 整合性またはPRF:SHA256 を選択
- DHグループ:DHGroup14 を選択
- IKEフェーズ2(IPSec)
- IPSec暗号化:GCMAES256 を選択
- IPSec整合性:GCMAES256 を選択
- PFSグループ:None を選択
設定変更後、「保存」をクリックします。
アルゴリズム変更後の確認
「NETWORK」タブから「IPSecトンネル」を移動すると、トンネルが確立されていることが確認できます。
「IKE情報」をクリックし、詳細を確認すると、アルゴリズムが「PSK/DH14/AES256-GCM16/COMBINED」であること確認できます。
セキュリティポリシー
VPNトンネルを介した通信は、トンネルインタフェースに割り当てたゾーン(今回は「IPSec」ゾーン)へのセキュリティポリシーを設定することで、制御します。
今回は、下記のように、TrustゾーンからIPSecゾーンに対してのすべての通信を許可するポリシーを追加しました。
実際にVPNトンネルを介した通信も可能となります。
IPSec関連コマンド
IPSec VPNを運用する際に役立つコマンドを紹介します。
VPN接続テスト(test vpn)
test vpn コマンドは、VPNの接続テストとトラブルシューティングに使用されます。このコマンドは、特定のVPNトンネルが正しく機能しているかどうかを確認する際に非常に便利です。
test vpn ike-sa gateway <ゲートウェイ名>
指定されたIKEゲートウェイに対するIKE SA(Security Association)の状態をテストします。
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トンネルのSAをテストします。
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.
これらのコマンドは、VPN接続が予期せずダウンした場合や、新しいVPN接続を設定した後の検証に特に役立ちます。コマンド実行後、VPNトンネル状態を確認してください。
show コマンド
show コマンドは、VPNトンネルの現在の状態や統計情報を表示するのに使用されます。このコマンドは、VPNのパフォーマンス監視やトラブルシューティングに役に立ちます。
show vpn flow
すべてのアクティブなVPNフローの詳細を表示します。これには、セッションごとの詳細、トンネル名、ソースと宛先のIPアドレス、使用されているプロトコルなどの情報が含まれます。
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に関する詳細情報が表示されます。これには、接続の状態、ピアのID、暗号化および認証の詳細、SAのライフタイムなどが含まれます。
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.
show vpn ike-sa detail gateway <ゲートウェイ名>
指定されたゲートウェイに関連するIKE SAの詳細な情報を表示します。これには、SAのライフタイム、使用されている暗号化方法、認証情報、およびフェーズ1のネゴシエーションの詳細が含まれます。
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
show vpn ipsec-sa
IPSec SAの情報が表示されます。トンネル名、セキュリティプロトコル、暗号化方式、認証方式、SAのライフタイム、およびトラフィック統計などの詳細が含まれます。
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.
コメント