Настройка политики IPsec/IKE для VPN-подключений типа "сеть — сеть" или "виртуальная сеть — виртуальная сеть"

В этой статье приведены пошаговые инструкции по настройке политики IPsec/IKE для VPN-подключений "сеть — сеть" или "виртуальная сеть — виртуальная сеть" с помощью PowerShell.

Параметры политики IPsec и IKE для VPN-шлюзов Azure

Стандарт протоколов IPsec и IKE поддерживает широкий набор алгоритмов шифрования в различных сочетаниях. Ознакомьтесь с требованиями к шифрованию и VPN-шлюзами Azure, чтобы узнать больше о том, как обеспечить следование требованиям безопасности или соответствия для подключений между локальными и виртуальными сетями.

Эта статья содержит инструкции по созданию и настройке политики IPsec/IKE, а также ее применению к новому или имеющемуся подключению.

Важно!

  1. Обратите внимание, что политика IPsec/IKE будет актуальна только для следующих номеров SKU шлюзов:
    • VpnGw1~5 и VpnGw1AZ~5AZ (на основе маршрутов)
    • Standard и HighPerformance (на основе маршрутов)
  2. Можно указать только одну комбинацию политик для каждого подключения.
  3. Вам следует указать все алгоритмы и параметры для IKE (основной режим) и IPsec (быстрый режим). Указать частичную политику нельзя.
  4. Ознакомьтесь со спецификациями поставщиков VPN-устройств, чтобы убедиться, что политика поддерживается на локальных VPN-устройствах. Если политики несовместимы, невозможно будет установить VPN-подключения типа "сеть — сеть" или "виртуальная сеть — виртуальная сеть".

Часть 1. Рабочий процесс создания и настройки политики IPsec/IKE

В этом разделе описывается рабочий процесс, необходимый для создания и обновления политики IPsec/IKE для VPN-подключений типа "сеть — сеть" или "виртуальная сеть — виртуальная сеть":

  1. Создание виртуальной сети и VPN-шлюза.
  2. Создание шлюза локальной сети для локального подключения или другой виртуальной сети и шлюза для подключения типа "виртуальная сеть — виртуальная сеть".
  3. Создание политики IPsec/IKE с выбранными алгоритмами и параметрами.
  4. Создание подключения (IPsec или VNet2VNet) с помощью политики IPsec/IKE.
  5. Добавление, обновление и удаление политики IPsec/IKE для существующего подключения.

Инструкции из этой статьи помогут установить и настроить политики IPsec/IKE, как показано на следующей схеме:

ipsec-ike-policy

Часть 2. Поддерживаемые алгоритмы шифрования и уровни стойкости ключей

В таблице ниже перечислены поддерживаемые алгоритмы шифрования и уровни стойкости ключей, которые могут настроить клиенты.

IPsec/IKEv2 Параметры
Шифрование IKEv2 AES256, AES192, AES128, DES3, DES
Проверка целостности IKEv2 SHA384, SHA256, SHA1, MD5
Группа DH DHGroup24, ECP384, ECP256, DHGroup14, DHGroup2048, DHGroup2, DHGroup1, нет
Шифрование IPsec GCMAES256, GCMAES192, GCMAES128, AES256, AES192, AES128, DES3, DES, нет
Целостность IPsec GCMAES256, GCMAES192, GCMAES128, SHA256, SHA1, MD5
Группа PFS PFS24, ECP384, ECP256, PFS2048, PFS2, PFS1, нет
Время существования QM SA (Необязательно — используются значения по умолчанию, если не заданы другие значения.)
Секунды (целое число, минимум 300, по умолчанию — 27 000 с)
Килобайты (целое число, минимум 1024, по умолчанию — 102 400 000 КБ)
Селектор трафика UsePolicyBasedTrafficSelectors** ($True/$False; необязательно — по умолчанию используется значение $False, если не задано другое значение.)

Важно!

  1. Ваша конфигурация локальных VPN-устройств должна совпадать со следующими алгоритмами и параметрами, указанными в политике Azure IPsec/IKE, или содержать их.

    • алгоритм шифрования IKE (основной режим или фаза 1);
    • алгоритм обеспечения целостности IKE (основной режим или фаза 1);
    • группа DH (основной режим или фаза 1);
    • алгоритм шифрования IKE (основной режим или фаза 2);
    • алгоритм обеспечения целостности IPsec (быстрый режим или фаза 2);
    • группа PFS (быстрый режим или фаза 2);
    • селектор трафика (если используется UsePolicyBasedTrafficSelectors).
    • Время существования SA указывается исключительно в локальных спецификациях, эти значения не обязательно должны совпадать.
  2. Если для шифрования IPsec используется алгоритм GCMAES, необходимо указать одинаковую длину алгоритма и ключа для проверки целостности IPsec, например GCMAES128 в обоих случаях.

  3. В таблице выше:

    • IKEv2 соответствует основному режиму или фазе 1;
    • IPsec соответствует быстрому режиму или фазе 2;
    • группа DH определяет группу Диффи — Хеллмана, которая используется в основном режиме или фазе 1;
    • группа PFS определяет группу Диффи — Хеллмана, которая используется в быстром режиме или фазе 2.
  4. Время существования SA основного режима IKEv2 составляет 28 800 секунд на VPN-шлюзах Azure

  5. Если задать для параметра UsePolicyBasedTrafficSelectors значение $True для подключения, это позволит настроить VPN-шлюз Azure, чтобы локально подключаться к брандмауэру VPN на основе политик. Если вы включили параметр PolicyBasedTrafficSelectors, необходимо обеспечить соответствующие селекторы трафика для VPN-устройства, которые определены с помощью всех комбинаций префиксов локальной сети (шлюза локальной сети) с префиксами виртуальной сети Azure, а не разрешать совпадение любого префикса с любым. Например, если префиксы локальной сети — 10.1.0.0/16 и 10.2.0.0/16, а префиксы виртуальной сети — 192.168.0.0/16 и 172.16.0.0/16, необходимо указать следующие селекторы трафика:

    • 10.1.0.0/16 <====> 192.168.0.0/16
    • 10.1.0.0/16 <====> 172.16.0.0/16
    • 10.2.0.0/16 <====> 192.168.0.0/16
    • 10.2.0.0/16 <====> 172.16.0.0/16

Дополнительные сведения о селекторах трафика на основе политик см. в статье Подключение VPN-шлюзов Azure к нескольким локальным VPN-устройствам на основе политики с помощью PowerShell.

В следующей таблице перечислены соответствующие группы Диффи — Хеллмана, поддерживаемые пользовательскими политиками.

Группа Диффи-Хелмана 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 бит)

Дополнительные сведения см. в статье о группе RFC3526 и RFC5114.

Часть 3. Создание нового подключения VPN типа "сеть — сеть" с помощью политики IPsec/IKE

В этом разделе описаны действия по созданию VPN-подключения типа "сеть — сеть" с помощью политики IPsec/IKE. С помощью приведенных ниже инструкций вы сможете создать подключение, как показано на этой схеме:

s2s-policy

Пошаговые инструкции по созданию VPN-подключения типа "сеть — сеть" см. в статье Создание виртуальной сети с VPN-подключением типа "сеть — сеть" с помощью PowerShell.

Перед началом

Шаг 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 PowerShell с диспетчером ресурсов Azure.

Откройте консоль 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: AES256, SHA384, DHGroup24
  • IPsec: AES256, SHA256, PFS (Нет), срок действия SA (14400 секунд и 102 400 000 КБ)
$ipsecpolicy6 = New-AzIpsecPolicy -IkeEncryption AES256 -IkeIntegrity SHA384 -DhGroup DHGroup24 -IpsecEncryption AES256 -IpsecIntegrity SHA256 -PfsGroup None -SALifeTimeSeconds 14400 -SADataSizeKilobytes 102400000

Если для IPsec используется алгоритм GCMAES, необходимо указать одинаковую длину ключа и алгоритма для шифрования и целостности данных IPsec. В примере выше при использовании GCMAES256 будут применяться параметры -IpsecEncryption GCMAES256 -IpsecIntegrity GCMAES256.

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 'AzureA1b2C3'

При необходимости можно добавить "-UsePolicyBasedTrafficSelectors $True", чтобы создать командлет подключения для включения VPN-шлюза Azure для локального подключения к VPN-устройствам на основе политики, как описано выше.

Важно!

После указания для подключения политики IPsec/IKE VPN-шлюз Azure будет только отправлять и принимать предложения IPsec/IKE с определенными алгоритмами шифрования и уровнями стойкости ключей для этого подключения. Локальное VPN-устройство для подключения должно использовать или принимать точную комбинацию политик. Иначе VPN-туннель типа "сеть — сеть" не будет установлен.

Часть 4. Создание нового подключения VPN типа "виртуальная сеть — виртуальная сеть" с помощью политики IPsec/IKE

Этапы создания подключения типа "виртуальная сеть — виртуальная сеть" с помощью политики IPsec/IKE схожи с этапами, описанными при создании подключения VPN типа "сеть — сеть". Следующие примеры скриптов создают подключение, как показано на схеме:

v2v-policy

Подробные инструкции по созданию подключения типа "виртуальная сеть — виртуальная сеть" см. в статье Настройка подключения VPN-шлюза между виртуальными сетями с помощью PowerShell. Чтобы создать и настроить сеть TestVNet1 и VPN-шлюз, сначала следует выполнить инструкции из третьей части.

Шаг 1. Создание второй виртуальной сети и VPN-шлюза

1. Объявление переменных

Не забудьте заменить значения теми, которые вы хотите использовать для конфигурации.

$RG2          = "TestPolicyRG2"
$Location2    = "East US 2"
$VNetName2    = "TestVNet2"
$FESubName2   = "FrontEnd"
$BESubName2   = "Backend"
$GWSubName2   = "GatewaySubnet"
$VNetPrefix21 = "10.21.0.0/16"
$VNetPrefix22 = "10.22.0.0/16"
$FESubPrefix2 = "10.21.0.0/24"
$BESubPrefix2 = "10.22.0.0/24"
$GWSubPrefix2 = "10.22.255.0/27"
$DNS2         = "8.8.8.8"
$GWName2      = "VNet2GW"
$GW2IPName1   = "VNet2GWIP1"
$GW2IPconf1   = "gw2ipconf1"
$Connection21 = "VNet2toVNet1"
$Connection12 = "VNet1toVNet2"

2. Создание второй виртуальной сети и VPN-шлюза в новой группе ресурсов

New-AzResourceGroup -Name $RG2 -Location $Location2

$fesub2 = New-AzVirtualNetworkSubnetConfig -Name $FESubName2 -AddressPrefix $FESubPrefix2
$besub2 = New-AzVirtualNetworkSubnetConfig -Name $BESubName2 -AddressPrefix $BESubPrefix2
$gwsub2 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName2 -AddressPrefix $GWSubPrefix2

New-AzVirtualNetwork -Name $VNetName2 -ResourceGroupName $RG2 -Location $Location2 -AddressPrefix $VNetPrefix21,$VNetPrefix22 -Subnet $fesub2,$besub2,$gwsub2

$gw2pip1    = New-AzPublicIpAddress -Name $GW2IPName1 -ResourceGroupName $RG2 -Location $Location2 -AllocationMethod Dynamic
$vnet2      = Get-AzVirtualNetwork -Name $VNetName2 -ResourceGroupName $RG2
$subnet2    = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet2
$gw2ipconf1 = New-AzVirtualNetworkGatewayIpConfig -Name $GW2IPconf1 -Subnet $subnet2 -PublicIpAddress $gw2pip1

New-AzVirtualNetworkGateway -Name $GWName2 -ResourceGroupName $RG2 -Location $Location2 -IpConfigurations $gw2ipconf1 -GatewayType Vpn -VpnType RouteBased -GatewaySku HighPerformance

Шаг 2. Создание подключения типа "виртуальная сеть — виртуальная сеть" с помощью политики IPsec/IKE

Аналогично созданию подключения VPN типа "сеть — сеть" создайте политику IPsec/IKE, а затем примените ее к новому подключению.

1. Создайте политику IPsec/IKE

Следующий пример скрипта создает другую политику IPsec/IKE с такими параметрами и алгоритмами:

  • IKEv2: AES128, SHA1, DHGroup14
  • IPsec: GCMAES128, GCMAES128, PFS14, срок действия SA (14400 секунд и 102 400 000 КБ)
$ipsecpolicy2 = New-AzIpsecPolicy -IkeEncryption AES128 -IkeIntegrity SHA1 -DhGroup DHGroup14 -IpsecEncryption GCMAES128 -IpsecIntegrity GCMAES128 -PfsGroup PFS14 -SALifeTimeSeconds 14400 -SADataSizeKilobytes 102400000

2. Создание подключений типа "виртуальная сеть — виртуальная сеть" с помощью политики IPsec/IKE

Создайте VPN-подключение типа "виртуальная сеть — виртуальная сеть" и примените созданную вами политику IPsec/IKE. В этом примере оба шлюза находятся в одной подписке. Поэтому можно создать и настроить оба подключения с помощью одной политики IPsec/IKE в одном сеансе PowerShell.

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1  -ResourceGroupName $RG1
$vnet2gw = Get-AzVirtualNetworkGateway -Name $GWName2  -ResourceGroupName $RG2

New-AzVirtualNetworkGatewayConnection -Name $Connection12 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -VirtualNetworkGateway2 $vnet2gw -Location $Location1 -ConnectionType Vnet2Vnet -IpsecPolicies $ipsecpolicy2 -SharedKey 'AzureA1b2C3'

New-AzVirtualNetworkGatewayConnection -Name $Connection21 -ResourceGroupName $RG2 -VirtualNetworkGateway1 $vnet2gw -VirtualNetworkGateway2 $vnet1gw -Location $Location2 -ConnectionType Vnet2Vnet -IpsecPolicies $ipsecpolicy2 -SharedKey 'AzureA1b2C3'

Важно!

После указания для подключения политики IPsec/IKE VPN-шлюз Azure будет только отправлять и принимать предложения IPsec/IKE с определенными алгоритмами шифрования и уровнями стойкости ключей для этого подключения. Политики IPsec для обоих подключений должны быть одинаковыми, иначе подключение типа "виртуальная сеть — виртуальная сеть" не будет установлено.

После выполнения этих действий подключение будет установлено в течение нескольких минут, и вы получите следующую топологию сети, как показано в начале статьи:

ipsec-ike-policy

Часть 5. Обновление политики IPsec/IKE для подключения

В последнем разделе описывается управление политикой IPsec/IKE для существующего подключения типа "сеть — сеть" или "виртуальная сеть — виртуальная сеть". Действия ниже помогут выполнить следующие операции подключения:

  1. Отображение политики подключения IPsec/IKE
  2. Добавить или обновить политику IPsec/IKE для подключения.
  3. Удалить политику IPsec/IKE из подключения.

Те же действия применимы к подключениям типа "сеть — сеть" или "виртуальная сеть — виртуальная сеть".

Важно!

Политика IPsec/IKE поддерживается только для стандартных и высокопроизводительных VPN-шлюзов на основе маршрутов. Она не работает для шлюзов со SKU класса "Базовый" или VPN-шлюзов на основе политики.

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       : AES256
IkeIntegrity        : SHA384
DhGroup             : DHGroup24
PfsGroup            : PFS24

Если политика IPsec/IKE не настроена, команда (PS> $connection6.IpsecPolicies) возвращает пустой результат. Это не значит, что для подключения не настроена политика 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

Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection6 -IpsecPolicies $newpolicy6

Чтобы включить параметр UsePolicyBasedTrafficSelectors при подключении к локальному VPN-устройству на основе политики, добавьте параметр -UsePolicyBaseTrafficSelectors в командлет или установите для него значение $False, чтобы отключить его.

Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection6 -IpsecPolicies $newpolicy6 -UsePolicyBasedTrafficSelectors $True

Вы можете получить подключение еще раз, чтобы проверить, обновилась ли политика.

$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

$currentpolicy = $connection6.IpsecPolicies[0]
$connection6.IpsecPolicies.Remove($currentpolicy)

Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection6

Вы снова можете использовать тот же скрипт, чтобы проверить, удалена ли политика из подключения.

Дальнейшие действия

Дополнительные сведения о селекторах трафика на основе политик см. в статье Подключение VPN-шлюзов Azure к нескольким локальным VPN-устройствам на основе политики с помощью PowerShell.

Установив подключение, можно добавить виртуальные машины в виртуальные сети. Инструкции см. в статье о создании виртуальной машины.