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

Завершено

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

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

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

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

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

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

Настройка

Для работы с этим модулем используйте среду Azure PowerShell на локальном компьютере с ОС Windows 10.

  1. Откройте новый сеанс PowerShell на локальном компьютере с Windows 10, где установлен модуль 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 Dynamic
    $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 VpnGw1 -VpnClientProtocol "IKEv2"
    
  2. Дождитесь отображения выходных данных команды.

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

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

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

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

После создания сетевой инфраструктуры в Azure необходимо создать самозаверяющий сертификат клиента на локальном компьютере. Это можно сделать так же, как и в большинстве операционных систем, но мы рассмотрим, как создать сертификат клиента в Windows 10 с помощью 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. На странице Формат экспортируемого файла убедитесь в том, что выбран пункт Файлы X.509 (.CER) в кодировке Base-64, и нажмите кнопку Далее.

  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, где {architecture} соответствует вашей архитектуре.

  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. Этот подход отлично подходит для клиентских компьютеров и небольших подключений типа "сеть — сеть".