Упражнение. Создание VPN-шлюза Azure

Завершено

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

Вы выполните следующий процесс:

  1. создать VPN-шлюз на основе маршрутов;

  2. отправить открытый ключ корневого сертификата для проверки подлинности;

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

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

Настройка

Чтобы завершить этот модуль, используйте Azure PowerShell с локального компьютера Windows.

  1. Откройте новый сеанс PowerShell на локальном компьютере Windows, где установлен модуль Azure PowerShell.

  2. Войдите в Azure с помощью командлета PowerShell Connect-AzAccount.

  3. Настройте переменные, которые будут использоваться для создания виртуальной сети. Скопируйте приведенные ниже переменные и вставьте их в PowerShell.

$VNetName  = "VNetData"
$FESubName = "FrontEnd"
$BESubName = "Backend"
$GWSubName = "GatewaySubnet"
$VNetPrefix1 = "192.168.0.0/16"
$VNetPrefix2 = "10.254.0.0/16"
$FESubPrefix = "192.168.1.0/24"
$BESubPrefix = "10.254.1.0/24"
$GWSubPrefix = "192.168.200.0/26"
$VPNClientAddressPool = "172.16.201.0/24"
$ResourceGroup = "VpnGatewayDemo"
$Location = "East US"
$GWName = "VNetDataGW"
$GWIPName = "VNetDataGWPIP"
$GWIPconfName = "gwipconf"

Настройка виртуальной сети

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

    New-AzResourceGroup -Name $ResourceGroup -Location $Location
    
  2. Выполните приведенную ниже команду, чтобы создать конфигурации подсетей для виртуальной сети. Эти конфигурации имеют имя FrontEnd, BackEnd и GatewaySubnet. Все эти подсети существуют в пределах префикса виртуальной сети.

    $fesub = New-AzVirtualNetworkSubnetConfig -Name $FESubName -AddressPrefix $FESubPrefix
    $besub = New-AzVirtualNetworkSubnetConfig -Name $BESubName -AddressPrefix $BESubPrefix
    $gwsub = New-AzVirtualNetworkSubnetConfig -Name $GWSubName -AddressPrefix $GWSubPrefix
    
  3. Далее выполните приведенную ниже команду, чтобы создать виртуальную сеть, используя значения подсети и статический DNS-сервер.

    New-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroup -Location $Location -AddressPrefix $VNetPrefix1,$VNetPrefix2 -Subnet $fesub, $besub, $gwsub -DnsServer 10.2.1.3
    
  4. Теперь укажите переменные для созданной сети.

    $vnet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroup
    $subnet = Get-AzVirtualNetworkSubnetConfig -Name $GWSubName -VirtualNetwork $vnet
    
  5. Выполните приведенную ниже команду, чтобы запросить динамически назначенный общедоступный IP-адрес.

    $pip = New-AzPublicIpAddress -Name $GWIPName -ResourceGroupName $ResourceGroup -Location $Location -AllocationMethod Static -Sku Standard -Zone 1,2,3
    $ipconf = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName -Subnet $subnet -PublicIpAddress $pip
    

Создание VPN-шлюза

При создании этого VPN-шлюза должны выполняться такие условия:

  • Имя шлюза должно быть VPN.
  • VpnType должен быть RouteBased.

Эта часть упражнения может занять до 45 минут.

  1. Чтобы создать VPN-шлюз, выполните следующую команду и нажмите клавишу ВВОД.

    New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $ResourceGroup `
    -Location $Location -IpConfigurations $ipconf -GatewayType Vpn `
    -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1AZ -VpnClientProtocol "IKEv2"
    
  2. Дождитесь отображения выходных данных команды.

Добавление пула адресов VPN-клиента

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

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $ResourceGroup -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientAddressPool $VPNClientAddressPool
    
  2. Дождитесь отображения выходных данных команды.

Создание сертификата клиента

После создания сетевой инфраструктуры в Azure необходимо создать самозаверяющий сертификат клиента на локальном компьютере. Этот процесс создания аналогичен большинству операционных систем, но мы рассмотрим, как создать сертификат клиента в Windows с помощью PowerShell с модулем Azure PowerShell и служебной программой Диспетчера сертификатов Windows.

  1. Первый шаг — создание самозаверяющего корневого сертификата. Выполните следующую команду.

    $cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
    -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable `
    -HashAlgorithm sha256 -KeyLength 2048 `
    -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign
    
  2. Затем создайте сертификат клиента, подписанный новым корневым сертификатом.

    New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
    -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `
    -HashAlgorithm sha256 -KeyLength 2048 `
    -CertStoreLocation "Cert:\CurrentUser\My" `
    -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")
    

Экспорт открытого ключа сертификата

Создав сертификаты, необходимо экспортировать открытый ключ корневого сертификата.

  1. Откройте диспетчер сертификатов, выполнив в PowerShell команду certmgr.

  2. Перейдите к личным>сертификатам.

  3. Щелкните правой кнопкой мыши сертификат P2SRootCert в списке и выберите пункт "Экспорт всех задач>".

  4. В мастере экспорта сертификатов нажмите кнопку "Далее".

  5. Убедитесь, что выбрано «Нет, не экспортировать закрытый ключ», затем выберите «Далее».

  6. На странице "Формат файла экспорта" убедитесь, что выбран Base-64 с кодировкой X.509 (.CER), и нажмите кнопку "Далее".

  7. На странице "Экспорт файла" в разделе "Имя файла" перейдите в место, которое вы запомните, и сохраните файл как P2SRootCert.cer, а затем выберите Далее.

  8. На странице "Завершение работы мастера экспорта сертификатов" нажмите кнопку "Готово".

  9. В диалоговом окне мастера экспорта сертификатов нажмите кнопку "ОК".

Отправка сведений об открытом ключе корневого сертификата

  1. В окне PowerShell выполните следующую команду, чтобы объявить переменную для имени сертификата:

    $P2SRootCertName = "P2SRootCert.cer"
    
  2. Замените <cert-path> заполнитель расположением экспорта корневого сертификата, а затем выполните эту команду.

    $filePathForCert = "<cert-path>\P2SRootCert.cer"
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($filePathForCert)
    $CertBase64 = [system.convert]::ToBase64String($cert.RawData)
    $p2srootcert = New-AzVpnClientRootCertificate -Name $P2SRootCertName -PublicCertData $CertBase64
    
  3. Задав имя группы, отправьте сертификат в Azure с помощью приведенной ниже команды.

    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname $GWName -ResourceGroupName $ResourceGroup -PublicCertData $CertBase64
    

    Теперь Azure распознает этот сертификат как доверенный корневой сертификат для виртуальной сети.

Настройка собственного VPN-клиента

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

    $profile = New-AzVpnClientConfiguration -ResourceGroupName $ResourceGroup -Name $GWName -AuthenticationMethod "EapTls"
    $profile.VPNProfileSASUrl
    
  2. Скопируйте URL-адрес, возвращенный в выходных данных этой команды, и вставьте его в браузер. Браузер должен начать загрузку ZIP-файла. Извлеките содержимое архива и поместите его в подходящее место.

    В некоторых браузерах скачивание этого ZIP-файла может блокироваться из-за того, что он опознается как опасный. Чтобы извлечь содержимое архива, нужно изменить настройки в браузере.

  3. В извлеченной папке перейдите в папку WindowsAmd64 (для 64-разрядных компьютеров Windows) или папку WindowsX86 (для 32-разрядных компьютеров).

    Если вы хотите настроить VPN на компьютере, отличном от Windows, можно использовать файлы сертификатов и параметров из универсальной папки.

  4. Дважды щелкните файл VpnClientSetup{architecture}.exe, который соответствует вашей архитектуре.

  5. На экране 'Windows защитила ваш компьютер' выберите 'Дополнительные сведения', а затем нажмите 'Всё равно запустить'.

  6. В диалоговом окне "Контроль учетных записей пользователей " нажмите кнопку "Да".

  7. В диалоговом окне VNetData нажмите кнопку "Да".

Подключение к Azure

  1. Нажмите клавишу Windows , введите параметры и нажмите клавишу ВВОД.

  2. В окне "Параметры" выберите "Сеть" и "Интернет".

  3. В области слева выберите VPN.

  4. В правой области выберите VNetData и нажмите кнопку "Подключить".

  5. В окне VNetData выберите "Подключить".

  6. В следующем окне VNetData нажмите кнопку "Продолжить".

  7. В окне "Контроль учетных записей пользователей" нажмите кнопку "Да".

Если эти действия не работают, может потребоваться перезагрузить компьютер.

Проверка подключения

  1. В новой командной строке Windows выполните команду IPCONFIG /ALL.

  2. Скопируйте IP-адрес в разделе "Адаптер PPP VNetData" или запишите его.

  3. Убедитесь, что IP-адрес находится в диапазоне VPNClientAddressPool 172.16.201.0/24.

  4. Вы успешно подключились к VPN-шлюзу Azure.

Вы настроили VPN-шлюз, позволяющий создать зашифрованное клиентское подключение к виртуальной сети в Azure. Этот подход отлично подходит для клиентских компьютеров и небольших подключений типа "сеть — сеть".