为站点到站点 VPN 连接配置 IPsec/IKE 策略
本文介绍在 Azure Stack Hub 中为站点到站点 VPN 连接配置 IPsec/IKE 策略的步骤。
VPN 网关的 IPsec 和 IKE 策略参数
IPsec 和 IKE 协议标准支持各种组合中的各种加密算法。 若要查看 Azure Stack Hub 中支持哪些参数,以便满足合规性或安全要求,请参阅 IPsec/IKE 参数。
本文介绍如何创建和配置 IPsec/IKE 策略并将其应用于新的或现有的连接。
考量因素
使用这些策略时,请注意以下重要注意事项:
- IPsec/IKE 策略仅适用于 标准 和 HighPerformance(基于路由的)网关 SKU。
- 只能为给定连接指定一个策略组合。
- 必须为 IKE(主模式)和 IPsec(快速模式)指定所有算法和参数。 不允许部分指定政策。
- 请查阅 VPN 设备供应商规范,确保本地 VPN 设备上支持该策略。 如果策略不兼容,则无法建立站点到站点连接。
先决条件
在开始之前,请确保满足以下先决条件:
- Azure 订阅。 如果还没有 Azure 订阅,可以注册 免费帐户。
- Azure 资源管理器 PowerShell cmdlet。 有关安装 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、None |
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 Group(快速模式/阶段 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、none、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 策略。
注意
仅支持在 标准 和 高性能 基于路由的 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 网关配置设置