Настройка политики IPsec/IKE для VPN-подключений типа "сеть — сеть" или "виртуальная сеть — виртуальная сеть"
В этой статье описаны действия по настройке политики IPsec/IKE для VPN-подключений типа "сеть — сеть" (S2S) в Azure Stack Hub.
Параметры политики IPsec и IKE для VPN-шлюзов
Стандарт протоколов IPsec и IKE поддерживает широкий набор алгоритмов шифрования в разных комбинациях. Сведения о параметрах, поддерживаемых в Azure Stack Hub, приведены в разделе Параметры IPsec/IKE. Эти параметры помогут выполнить требования к обеспечению безопасности или соответствия.
В этой статье показано, как создать и настроить политику IPsec/IKE, а затем применить ее к новому или существующему подключению.
Рекомендации
Учитывайте следующие рекомендации при использовании этих политик:
Политика IPsec/IKE поддерживается только номерами SKU шлюзов уровня Стандартный и Высокопроизводительный (на основе маршрутов).
Можно указать только одну комбинацию политик для каждого подключения.
Вам следует указать все алгоритмы и параметры для IKE (основной режим) и IPsec (быстрый режим). Указать частичную политику нельзя.
Ознакомьтесь со спецификациями поставщиков VPN-устройств, чтобы убедиться, что политика поддерживается на локальных VPN-устройствах. Если политики несовместимы, невозможно будет установить VPN-подключение типа "сеть — сеть".
Предварительные требования
Прежде чем приступить к работе, убедитесь, что у вас есть следующие необходимые компоненты.
Подписка Azure. Если у вас нет подписки Azure, вы можете активировать преимущества для подписчиков MSDN или зарегистрировать бесплатную учетную запись.
Командлеты PowerShell для Azure Resource Manager. Дополнительные сведения об установке командлетов PowerShell см. в статье Установка PowerShell для Azure Stack Hub.
Часть 1. Создание и настройка политики IPsec/IKE
В этом разделе показано, как создать и обновить политику IPsec/IKE для VPN-подключений типа "сеть — сеть".
Создание виртуальной сети и VPN-шлюза.
Создание шлюза локальной сети для распределенного подключения.
Создание политики IPsec/IKE с выбранными алгоритмами и параметрами.
Создание VPN-подключения типа "сеть — сеть" с использованием политики 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, по умолчанию — 27 000 с) Килобайты (целое число, минимум 1024, по умолчанию — 102 400 000 КБ) |
Селектор трафика | Селекторы трафика на основе политик не поддерживаются в Azure Stack Hub. |
Примечание
Слишком низкое время существования QM SA требует ненужного повторного ключа, что может снизить производительность.
* Эти параметры доступны только в сборках 2002 и более поздних версий.
Ваша конфигурация локальных VPN-устройств должна совпадать со следующими алгоритмами и параметрами, указанными в политике Azure IPsec/IKE, или содержать их.
- Алгоритм шифрования IKE (основной режим или фаза 1).
- Алгоритм обеспечения целостности IKE (основной режим или фаза 1).
- Группа DH (основной режим или фаза 1).
- Алгоритм шифрования IPsec (основной режим или фаза 2).
- Алгоритм обеспечения целостности IPsec (быстрый режим или фаза 2).
- Группа PFS (быстрый режим или фаза 2).
- Время существования SA указывается исключительно в локальных спецификациях. Эти значения не обязательно должны совпадать.
Если для шифрования IPsec используется алгоритм GCMAES, необходимо указать одинаковую длину алгоритма и ключа для проверки целостности IPsec (например, GCMAES128 в обоих случаях).
В приведенной выше таблице:
- IKEv2 соответствует основному режиму или фазе 1;
- IPsec соответствует быстрому режиму или фазе 2;
- группа DH определяет группу Диффи — Хеллмана, которая используется в основном режиме или фазе 1;
- группа PFS определяет группу Диффи — Хеллмана, которая используется в быстром режиме или фазе 2.
Время существования SA основного режима IKEv2 составляет 28 800 секунд на VPN-шлюзах Azure Stack Hub.
В следующей таблице перечислены соответствующие группы Диффи — Хеллмана, поддерживаемые пользовательскими политиками.
Группа Диффи — Хелмана | DHGroup | PFSGroup | Длина ключа |
---|---|---|---|
1 | DHGroup1 | PFS1 | MODP (768 бит) |
2 | DHGroup2 | PFS2 | MODP (1024 бит) |
14 | DHGroup14 DHGroup2048 |
PFS2048 | MODP (2048 бит) |
19 | ECP256* | ECP256 | ECP (256 бит) |
20 | ECP384 | ECP384 | ECP (384 бит) |
24 | DHGroup24* | PFS24 | MODP (2048 бит) |
* Эти параметры доступны только в сборках 2002 и более поздних версий.
Дополнительные сведения см. на страницах RFC 3526 и RFC 5114.
Часть 3. Создание нового подключения VPN типа "сеть — сеть" с использованием политики IPsec/IKE
В этом разделе описаны действия по созданию VPN-подключения типа "сеть — сеть" с использованием политики IPsec/IKE. С помощью приведенных ниже инструкций вы сможете создать подключение, как показано на следующем рисунке.
См. дополнительные сведения о создании виртуальной сети с 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. Подключение к подписке Azure и создание группы ресурсов
Для работы с командлетами диспетчера ресурсов необходимо перейти в режим PowerShell. См. дополнительные сведения о подключении к Azure Stack Hub в роли пользователя с помощью PowerShell.
Откройте консоль 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. Создание VPN-подключения типа "сеть — сеть" с использованием политики IPsec/IKE
1. Создайте политику IPsec/IKE
Этот пример скрипта создает политику IPsec/IKE со следующими алгоритмами и параметрами:
- IKEv2: AES128, SHA1, DHGroup14
- IPsec: AES256, SHA256, нет, срок действия SA (14 400 секунд и 102 400 000 КБ).
$ipsecpolicy6 = New-AzIpsecPolicy -IkeEncryption AES128 -IkeIntegrity SHA1 -DhGroup DHGroup14 -IpsecEncryption AES256 -IpsecIntegrity SHA256 -PfsGroup none -SALifeTimeSeconds 14400 -SADataSizeKilobytes 102400000
Если для IPsec используется алгоритм GCMAES, необходимо указать одинаковую длину ключа и алгоритма для шифрования и целостности данных IPsec.
2. Создайте подключение VPN типа "сеть — сеть" с использованием политики IPsec/IKE
Создайте 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 VPN-шлюз Azure будет отправлять и принимать предложения IPsec/IKE с определенными алгоритмами шифрования и уровнями стойкости ключей для этого подключения. Локальное VPN-устройство для подключения должно использовать или принимать точную комбинацию политик. В противном случае VPN-туннель типа "сеть — сеть" не удастся создать.
Часть 4. Обновление политики IPsec/IKE для подключения
В предыдущем разделе было показано, как управлять политикой IPsec/IKE для существующего подключения типа "сеть — сеть". В этом разделе описаны следующие операции в отношении подключения:
- Отображение политики подключения IPsec/IKE.
- Добавление или обновление политики IPsec/IKE для подключения.
- Удаление политики IPsec/IKE для подключения.
Примечание
Политика IPsec/IKE поддерживается только для стандартных и высокопроизводительных VPN-шлюзов на основе маршрутов. Она не поддерживается номером 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-устройством и VPN-шлюзом Azure.
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 из подключения
После удаления настраиваемой политики из подключения VPN-шлюз Azure возвращается к списку предложений 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
Вы снова можете использовать тот же скрипт, чтобы проверить, удалена ли политика из подключения.