共用方式為


設定站對站 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。

  • 您只能針對給定的連線指定一個原則組合。

  • 您必須同時對 IKE (主要模式) 和 IPsec (快速模式) 指定所有的演算法和參數。 系統不允許只指定一部分原則。

  • 請確認 VPN 裝置廠商規格,確保內部部署 VPN 裝置支援原則。 如果原則不相容,則無法建立站對站連線。

Prerequisites

開始之前,請先確定您已擁有下列必要條件:

第 1 部分 - 建立和設定 IPsec/IKE 原則

本節說明對站對站 VPN 連線建立和更新 IPsec/IKE 原則時所須執行的步驟:

  1. 建立虛擬網路和 VPN 閘道。

  2. 為跨單位連線建立區域網路閘道。

  3. 使用選取的演算法和參數建立 IPsec/IKE 原則。

  4. 使用 IPsec/IKE 原則建立 IPsec 連線。

  5. 新增/更新/移除現有連線的 IPsec/IKE 原則。

本文中的指示可協助您安裝和設定 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、無
IPsec 完整性 GCMAES256、GCMAES192、GCMAES128、SHA256
PFS 群組 PFS24、ECP384、ECP256、PFS2048、PFS2、PFS1、PFSMM、無
QM SA 存留期 (選擇性:如果未指定,即會使用預設值)
秒 (整數;最小 300/預設值 27000 秒)
KB 數 (整數;最小 1024/預設值 102400000 KB 數)
流量選取器 Azure Stack Hub 不支援原則式流量選取器。

注意

設定 QM SA 存留期太低需要不必要的重設金鑰,其可能降低效能。

* 這些參數僅供組建 2002 和更新版本使用。

  • 內部部署 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 群組。
  • Azure Stack Hub VPN 閘道的 IKEv2 主要模式 SA 存留期會固定為 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

* 這些參數僅供組建 2002 和更新版本使用。

如需詳細資訊,請參閱 RFC3526RFC5114

第 3 部分 - 使用 IPsec/IKE 原則建立新的站對站 VPN 連線

本節將逐步引導您使用 IPsec/IKE 原則來建立站對站 VPN 連線。 下列步驟將建立連線,如下圖所示:

site-to-site-policy

如需如何建立站對站 VPN 連線的詳細逐步指示,請參閱建立站對站 VPN 連線

步驟1 - 建立虛擬網路、VPN 閘道和區域網路閘道

1.宣告變數

對於此練習,一開始請先宣告下列變數。 在針對生產環境進行設定時,請務必使用您自己的值取代預留位置:

$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"

2.連接至您的訂用帳戶並建立新的資源群組

請確定您切換為 PowerShell 模式以使用資源管理員 Cmdlet。 如需詳細資訊,請參閱以使用者的身分使用 PowerShell 連線到 Azure Stack Hub

開啟 PowerShell 主控台並連接到您的帳戶,例如:

Connect-AzAccount
Select-AzSubscription -SubscriptionName $Sub1
New-AzResourceGroup -Name $RG1 -Location $Location1

3.建立虛擬網路、VPN 閘道和區域網路閘道

下列範例會建立 TestVNet1 虛擬網路以及三個子網路和 VPN 閘道。 在替代值時,請務必將閘道子網路具體命名為 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 連線

1.建立 IPsec/IKE 原則

此範例指令碼會使用下列演算法和參數來建立 IPsec/IKE 原則:

  • IKEv2:AES128、SHA1、DHGroup14
  • IPsec:AES256、SHA256、無、SA 存留期 14400 秒和 102400000 KB
$ipsecpolicy6 = New-AzIpsecPolicy -IkeEncryption AES128 -IkeIntegrity SHA1 -DhGroup DHGroup14 -IpsecEncryption AES256 -IpsecIntegrity SHA256 -PfsGroup none -SALifeTimeSeconds 14400 -SADataSizeKilobytes 102400000

如果您針對 IPsec 使用 GCMAES,就必須針對 IPsec 加密和完整性使用相同的 GCMAES 演算法和金鑰長度。

2.使用 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 原則。

注意

只有 Standard 和 HighPerformance 以路由為基礎的 VPN 閘道才支援 IPsec/IKE 原則。 Basic 閘道 SKU 則不適用。

1.顯示連線的 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 閘道之間交涉的預設原則。

2.新增或更新連線的 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

您可以再次取得連線,以檢查是否已更新原則:

$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 提案,並與內部部署 VPN 裝置重新進行交涉。

$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

您可以使用相同的指令碼,以檢查是否已從連線中移除原則。

後續步驟