設定站對站 VPN 連線的 IPsec/IKE 原則
本文說明為 Azure Stack Hub 中的站對站 VPN 連線設定 IPsec/IKE 原則的步驟。
VPN 閘道的 IPsec 和 IKE 原則參數
IPsec 和 IKE 通訊協定標準支援各種組合的各種密碼編譯演算法。 若要查看 Azure Stack Hub 中支援哪些參數,以便滿足合規性或安全性需求,請參閱 IPsec/IKE 參數。
本文提供如何建立和設定 IPsec/IKE 原則,並將其套用至新的或現有連線的指示。
考慮
請注意下列使用這些原則時的重要考慮:
- IPsec/IKE 原則僅適用於 Standard 和 HighPerformance(路由式)網關 SKU。
- 在給定的連線中,您只能指定一個原則組合。
- 您必須針對 IKE(主要模式)和 IPsec(快速模式)指定所有演算法和參數。 不允許部分政策規範。
- 請洽詢您的 VPN 裝置廠商規格,以確保內部部署 VPN 裝置支持原則。 如果原則不相容,則無法建立站對站連線。
先決條件
開始之前,請確定您有下列必要條件:
- Azure 訂用帳戶。 如果您還沒有 Azure 訂用帳戶,您可以註冊 免費帳戶。
- Azure Resource Manager PowerShell 的 Cmdlets。 如需安裝PowerShell Cmdlet 的詳細資訊,請參閱 安裝適用於 Azure Stack Hub 的 PowerShell。
第 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、無 |
QM SA 存留期 | (選擇性:如果未指定,則會使用預設值) 秒數(整數;最小值 300/預設值 27000 秒) KBytes(整數;最小值 1024/預設值 102400000 KBytes) |
流量選擇器 | 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 群組。
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 |
第 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"
線上到您的訂用帳戶並建立新的資源群組
請務必切換至 PowerShell 模式,以使用 Resource Manager Cmdlet。 如需詳細資訊,請參閱 使用 PowerShell 以使用者身分連線到 Azure Stack Hub。
開啟 PowerShell 控制台並連線到您的帳戶;例如:
Connect-AzAccount
Select-AzSubscription -SubscriptionName $Sub1
New-AzResourceGroup -Name $RG1 -Location $Location1
建立虛擬網路、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 連線
建立 IPsec/IKE 原則
此範例文稿會建立具有下列演算法和參數的 IPsec/IKE 原則:
- IKEv2:AES128、SHA1、DHGroup14
- IPsec:AES256、SHA256、無、SA 存留期 14400 秒和 102400000KB
$ipsecpolicy6 = New-AzIpsecPolicy -IkeEncryption AES128 -IkeIntegrity SHA1 -DhGroup DHGroup14 -IpsecEncryption AES256 -IpsecIntegrity SHA256 -PfsGroup none -SALifeTimeSeconds 14400 -SADataSizeKilobytes 102400000
如果您使用 GCMAES 進行 IPsec,則必須針對 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 原則。
注意
僅 Standard 和 HighPerformance 路由式 VPN 閘道支援 IPsec/IKE 政策。 它不適用於 基本 閘道 SKU。
顯示連線的 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
您可以再次取得連線,以檢查原則是否已更新:
$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
您可以使用相同的腳本來檢查原則是否已從連線中移除。
後續步驟
- Azure Stack Hub 的 VPN 閘道組態設定