サイト間 VPN 接続の IPsec/IKE ポリシーを構成する
この記事では、Azure Stack Hub でサイト間 (S2S) VPN 接続の IPsec/IKE ポリシーを構成する手順について説明します。
VPN ゲートウェイの IPsec および IKE ポリシー パラメーター
IPsec および IKE プロトコル標準では、さまざまな組み合わせで幅広い暗号アルゴリズムがサポートされています。 コンプライアンスまたはセキュリティの要件を満たすために Azure Stack Hub でサポートされているパラメーターを確認するには、IPsec/IKE パラメーター
この記事では、IPsec/IKE ポリシーを作成して構成し、新規または既存の接続に適用する方法について説明します。
考慮 事項
これらのポリシーを使用する場合は、次の重要な考慮事項に注意してください。
- IPsec/IKE ポリシーは、
Standard と HighPerformance (ルートベース) ゲートウェイ SKUでのみ機能します。 - 指定できるポリシーの組み合わせは、特定の接続に対して 1 つだけです。
- IKE (メイン モード) と IPsec (クイック モード) の両方のすべてのアルゴリズムとパラメーターを指定する必要があります。 部分的なポリシー指定は許可されていません。
- オンプレミスの VPN デバイスでポリシーがサポートされていることを確認するには、VPN デバイス ベンダーの仕様に問い合わせてください。 ポリシーに互換性がない場合、サイト間接続を確立できません。
前提 条件
開始する前に、次の前提条件があることを確認してください。
- Azure サブスクリプション。 Azure サブスクリプションをまだお持ちでない場合は、無料アカウントにサインアップできます。
- Azure Resource Manager PowerShell コマンドレット。 PowerShell コマンドレットのインストールの詳細については、「Install PowerShell for Azure Stack Hub」を参照してください。
パート 1 - IPsec/IKE ポリシーの作成と設定
このセクションでは、サイト間 VPN 接続で IPsec/IKE ポリシーを作成および更新するために必要な手順について説明します。
- 仮想ネットワークと VPN ゲートウェイを作成します。
- クロスプレミス接続用のローカル ネットワーク ゲートウェイを作成します。
- 選択したアルゴリズムとパラメーターを使用して IPsec/IKE ポリシーを作成します。
- IPsec/IKE ポリシーを使用して IPSec 接続を作成します。
- 既存の接続の IPsec/IKE ポリシーを追加/更新/削除します。
この記事の手順は、次の図に示すように、IPsec/IKE ポリシーの設定と構成に役立ちます。
パート 2 - サポートされている暗号アルゴリズムとキーの強み
次の表に、Azure Stack Hub で構成可能な、サポートされている暗号化アルゴリズムとキーの強度を示します。
IPsec/IKEv2 | オプション |
---|---|
IKEv2 暗号化 | AES256、AES192、AES128、DES3、DES |
IKEv2 整合性 | SHA384、SHA256、SHA1、MD5 |
DH グループ | ECP384、DHGroup14、DHGroup2、DHGroup1、ECP256、DHGroup24 |
IPsec 暗号化 | GCMAES256、GCMAES192、GCMAES128、AES256、AES192、AES128、DES3、DES、None |
IPsec インテグリティ | GCMAES256、GCMAES192、GCMAES128、SHA256 |
PFS グループ | PFS24、ECP384、ECP256、PFS2048、PFS2、PFS1、PFSMM、None |
QM SA の有効期間 | (省略可能: 既定値は指定されていない場合に使用されます) 秒 (整数、最小 300/既定値 27,000 秒) KBytes (整数、最小 1024/既定値 102400000 KB) |
トラフィック セレクター | ポリシー ベースのトラフィック セレクターは、Azure Stack Hub ではサポートされていません。 |
手記
QM SA の有効期間を低く設定すると、不要なキーの再キー処理が必要になり、パフォーマンスが低下する可能性があります。
オンプレミスの VPN デバイス構成は、Azure IPsec/IKE ポリシーで指定する次のアルゴリズムとパラメーターと一致するか、含める必要があります。
- IKE 暗号化アルゴリズム (メイン モード/フェーズ 1)。
- IKE 整合性アルゴリズム (メイン モード/フェーズ 1)。
- DH グループ (メイン モード/フェーズ 1)。
- IPsec 暗号化アルゴリズム (クイック モード/フェーズ 2)。
- IPsec 整合性アルゴリズム (クイック モード/フェーズ 2)。
- PFS グループ (クイック モード/フェーズ 2)。
- SA の有効期間はローカル仕様のみであり、一致する必要はありません。
GCMAES を IPsec 暗号化アルゴリズムとして使用する場合は、IPsec 整合性に同じ GCMAES アルゴリズムとキー長を選択する必要があります。たとえば、両方にGCMAES128を使用します。
前の表では:
- IKEv2 は、メイン モードまたはフェーズ 1 に対応します。
- IPsec は、クイック モードまたはフェーズ 2 に対応します。
- DH グループは、メイン モードまたはフェーズ 1 で使用される Diffie-Hellmen グループを指定します。
- PFS グループは、クイック モードまたはフェーズ 2 で使用される Diffie-Hellmen グループを指定します。
IKEv2 メイン モード SA の有効期間は、Azure Stack Hub VPN ゲートウェイで 28,800 秒で固定されます。
次の表に、カスタム ポリシーでサポートされている対応する Diffie-Hellman グループを示します。
Diffie-Hellman グループ | DHGroup | PFSGroup | キーの長さ |
---|---|---|---|
1 | DHGroup1 | PFS1 | 768 ビット MODP |
2 | DHGroup2 | PFS2 | 1024 ビット MODP |
14 | DHGroup14 DHGroup2048 |
PFS2048 | 2048ビット MODP |
19 | ECP256 | ECP256 | 256 ビット ECP |
20 | ECP384 | ECP384 | 384 ビット ECP |
24 | DHGroup24 | PFS24 | 2048 ビット MODP |
詳細については、「RFC3526 と RFC5114」を参照してください。
パート 3 - IPsec/IKE ポリシーを使用して新しいサイト間 VPN 接続を作成する
このセクションでは、IPsec/IKE ポリシーを使用してサイト間 VPN 接続を作成する手順について説明します。 次の手順では、次の図に示すように、接続を作成します。
サイト間 VPN 接続を作成する詳細な手順については、「サイト間 VPN 接続を作成する」を参照してください。
手順 1 - 仮想ネットワーク、VPN ゲートウェイ、ローカル ネットワーク ゲートウェイを作成する
変数を宣言する
この演習では、まず次の変数を宣言します。 運用環境用に構成する場合は、プレースホルダーを必ず独自の値に置き換えてください。
$Sub1 = "<YourSubscriptionName>"
$RG1 = "TestPolicyRG1"
$Location1 = "East US 2"
$VNetName1 = "TestVNet1"
$FESubName1 = "FrontEnd"
$BESubName1 = "Backend"
$GWSubName1 = "GatewaySubnet"
$VNetPrefix11 = "10.11.0.0/16"
$VNetPrefix12 = "10.12.0.0/16"
$FESubPrefix1 = "10.11.0.0/24"
$BESubPrefix1 = "10.12.0.0/24"
$GWSubPrefix1 = "10.12.255.0/27"
$DNS1 = "8.8.8.8"
$GWName1 = "VNet1GW"
$GW1IPName1 = "VNet1GWIP1"
$GW1IPconf1 = "gw1ipconf1"
$Connection16 = "VNet1toSite6"
$LNGName6 = "Site6"
$LNGPrefix61 = "10.61.0.0/16"
$LNGPrefix62 = "10.62.0.0/16"
$LNGIP6 = "131.107.72.22"
サブスクリプションに接続し、新しいリソース グループを作成する
Resource Manager コマンドレットを使用するには、必ず PowerShell モードに切り替えてください。 詳細については、「ユーザーとしての PowerShell を使用した Azure Stack Hub への接続」を参照してください。
PowerShell コンソールを開き、アカウントに接続します。例えば:
Connect-AzAccount
Select-AzSubscription -SubscriptionName $Sub1
New-AzResourceGroup -Name $RG1 -Location $Location1
仮想ネットワーク、VPN ゲートウェイ、ローカル ネットワーク ゲートウェイを作成する
次の例では、3 つのサブネットと VPN ゲートウェイと共に、仮想ネットワーク TestVNet1を作成します。 値を置き換える場合は、ゲートウェイ サブネットに GatewaySubnet
$fesub1 = New-AzVirtualNetworkSubnetConfig -Name $FESubName1 -AddressPrefix $FESubPrefix1
$besub1 = New-AzVirtualNetworkSubnetConfig -Name $BESubName1 -AddressPrefix $BESubPrefix1
$gwsub1 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName1 -AddressPrefix $GWSubPrefix1
New-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1 -Location $Location1 -AddressPrefix $VNetPrefix11,$VNetPrefix12 -Subnet $fesub1,$besub1,$gwsub1
$gw1pip1 = New-AzPublicIpAddress -Name $GW1IPName1 -ResourceGroupName $RG1 -Location $Location1 -AllocationMethod Dynamic
$vnet1 = Get-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1
$subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" `
-VirtualNetwork $vnet1
$gw1ipconf1 = New-AzVirtualNetworkGatewayIpConfig -Name $GW1IPconf1 `
-Subnet $subnet1 -PublicIpAddress $gw1pip1
New-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1 `
-Location $Location1 -IpConfigurations $gw1ipconf1 -GatewayType Vpn `
-VpnType RouteBased -GatewaySku VpnGw1
New-AzLocalNetworkGateway -Name $LNGName6 -ResourceGroupName $RG1 `
-Location $Location1 -GatewayIpAddress $LNGIP6 -AddressPrefix `
$LNGPrefix61,$LNGPrefix62
手順 2 - IPsec/IKE ポリシーを使用してサイト間 VPN 接続を作成する
IPsec/IKE ポリシーを作成する
このサンプル スクリプトでは、次のアルゴリズムとパラメーターを使用して IPsec/IKE ポリシーを作成します。
- IKEv2: AES128、SHA1、DHGroup14
- IPsec: AES256、SHA256、なし、SA 有効期間 14400 秒、102400000 KB
- Az モジュール
-
AzureRM モジュール
$ipsecpolicy6 = New-AzIpsecPolicy -IkeEncryption AES128 -IkeIntegrity SHA1 -DhGroup DHGroup14 -IpsecEncryption AES256 -IpsecIntegrity SHA256 -PfsGroup none -SALifeTimeSeconds 14400 -SADataSizeKilobytes 102400000
IPsec に GCMAES を使用する場合は、IPsec 暗号化と整合性の両方に同じ GCMAES アルゴリズムとキー長を使用する必要があります。
IPsec/IKE ポリシーを使用してサイト間 VPN 接続を作成する
サイト間 VPN 接続を作成し、前に作成した IPsec/IKE ポリシーを適用します。
$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
$lng6 = Get-AzLocalNetworkGateway -Name $LNGName6 -ResourceGroupName $RG1
New-AzVirtualNetworkGatewayConnection -Name $Connection16 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -LocalNetworkGateway2 $lng6 -Location $Location1 -ConnectionType IPsec -IpsecPolicies $ipsecpolicy6 -SharedKey 'Azs123'
重要
接続で IPsec/IKE ポリシーが指定されると、Azure VPN ゲートウェイは、指定された暗号化アルゴリズムとその特定の接続のキー強度を持つ IPsec/IKE 提案のみを送信または受け入れます。 接続用のオンプレミス VPN デバイスでポリシーの正確な組み合わせを使用または受け入れることを確認します。そうでない場合は、サイト間 VPN トンネルを確立できません。
パート 4 - 接続の IPsec/IKE ポリシーを更新する
前のセクションでは、既存のサイト間接続の IPsec/IKE ポリシーを管理する方法を示しました。 このセクションでは、接続に対する次の操作について説明します。
- 接続の IPsec/IKE ポリシーを表示します。
- 接続に IPsec/IKE ポリシーを追加または更新します。
- 接続から IPsec/IKE ポリシーを削除します。
手記
IPsec/IKE ポリシーは、
接続の IPsec/IKE ポリシーを表示する
次の例は、接続で構成された IPsec/IKE ポリシーを取得する方法を示しています。 スクリプトは前の演習からも引き続きます。
$RG1 = "TestPolicyRG1"
$Connection16 = "VNet1toSite6"
$connection6 = Get-AzVirtualNetworkGatewayConnection -Name $Connection16 -ResourceGroupName $RG1
$connection6.IpsecPolicies
最後のコマンドは、接続で構成されている現在の IPsec/IKE ポリシー (存在する場合) を一覧表示します。 次の例は、接続の出力例です。
SALifeTimeSeconds : 14400
SADataSizeKilobytes : 102400000
IpsecEncryption : AES256
IpsecIntegrity : SHA256
IkeEncryption : AES128
IkeIntegrity : SHA1
DhGroup : DHGroup14
PfsGroup : None
IPsec/IKE ポリシーが構成されていない場合、コマンド $connection6.policy
空の戻り値を取得します。 これは、IPsec/IKE が接続で構成されていないことを意味するものではありません。これは、カスタム IPsec/IKE ポリシーがないことを意味します。 実際の接続では、オンプレミスの VPN デバイスと Azure VPN ゲートウェイの間でネゴシエートされた既定のポリシーが使用されます。
接続の IPsec/IKE ポリシーを追加または更新する
新しいポリシーを追加するか、接続に既存のポリシーを更新する手順は同じです。新しいポリシーを作成してから、新しいポリシーを接続に適用します。
$RG1 = "TestPolicyRG1"
$Connection16 = "VNet1toSite6"
$connection6 = Get-AzVirtualNetworkGatewayConnection -Name $Connection16 -ResourceGroupName $RG1
$newpolicy6 = New-AzIpsecPolicy -IkeEncryption AES128 -IkeIntegrity SHA1 -DhGroup DHGroup14 -IpsecEncryption AES256 -IpsecIntegrity SHA256 -PfsGroup None -SALifeTimeSeconds 14400 -SADataSizeKilobytes 102400000
$connection6.SharedKey = "AzS123"
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection6 -IpsecPolicies $newpolicy6
もう一度接続を取得して、ポリシーが更新されているかどうかを確認できます。
- Az モジュール
- AzureRM モジュール
$connection6 = Get-AzVirtualNetworkGatewayConnection -Name $Connection16 -ResourceGroupName $RG1
$connection6.IpsecPolicies
次の例に示すように、最後の行からの出力が表示されます。
SALifeTimeSeconds : 14400
SADataSizeKilobytes : 102400000
IpsecEncryption : AES256
IpsecIntegrity : SHA256
IkeEncryption : AES128
IkeIntegrity : SHA1
DhGroup : DHGroup14
PfsGroup : None
3. 接続から IPsec/IKE ポリシーを削除する
接続からカスタム ポリシーを削除すると、Azure VPN ゲートウェイは既定の IPsec/IKE 提案
$RG1 = "TestPolicyRG1"
$Connection16 = "VNet1toSite6"
$connection6 = Get-AzVirtualNetworkGatewayConnection -Name $Connection16 -ResourceGroupName $RG1
$connection6.SharedKey = "AzS123"
$currentpolicy = $connection6.IpsecPolicies[0]
$connection6.IpsecPolicies.Remove($currentpolicy)
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection6
同じスクリプトを使用して、ポリシーが接続から削除されているかどうかを確認できます。