Упражнение. Создание VPN-шлюза Azure
Необходимо удостовериться, что вы можете подключать клиенты или сайты в вашей среде к Azure с помощью зашифрованных туннелей через общедоступный Интернет. В этом уроке вы создадите VPN-шлюз типа "точка — сеть" и затем подключитесь к этому шлюзу с клиентского компьютера. В целях безопасности вы будете использовать собственные подключения Azure для проверки подлинности на основе сертификата.
Вы выполните следующий процесс:
создать VPN-шлюз на основе маршрутов;
отправить открытый ключ корневого сертификата для проверки подлинности;
создать сертификат клиента из корневого сертификата, а затем установить его на каждом клиентском компьютере, который подключается к виртуальной сети для проверки подлинности;
создать файлы конфигурации VPN-клиента, которые содержат информацию, необходимую для подключения клиента к виртуальной сети.
Настройка
Для работы с этим модулем используйте среду Azure PowerShell на локальном компьютере с ОС Windows 10.
Откройте новый сеанс PowerShell на локальном компьютере с Windows 10, где установлен модуль Azure PowerShell.
Войдите в Azure с помощью командлета PowerShell
Connect-AzAccount
.Настройте переменные, которые будут использоваться для создания виртуальной сети. Скопируйте приведенные ниже переменные и вставьте их в 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"
Настройка виртуальной сети
Выполните приведенную ниже команду, чтобы создать группу ресурсов.
New-AzResourceGroup -Name $ResourceGroup -Location $Location
Выполните приведенную ниже команду, чтобы создать конфигурации подсетей для виртуальной сети. Эти конфигурации имеют имя FrontEnd, BackEnd и GatewaySubnet. Все эти подсети существуют в пределах префикса виртуальной сети.
$fesub = New-AzVirtualNetworkSubnetConfig -Name $FESubName -AddressPrefix $FESubPrefix $besub = New-AzVirtualNetworkSubnetConfig -Name $BESubName -AddressPrefix $BESubPrefix $gwsub = New-AzVirtualNetworkSubnetConfig -Name $GWSubName -AddressPrefix $GWSubPrefix
Далее выполните приведенную ниже команду, чтобы создать виртуальную сеть, используя значения подсети и статический DNS-сервер.
New-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroup -Location $Location -AddressPrefix $VNetPrefix1,$VNetPrefix2 -Subnet $fesub, $besub, $gwsub -DnsServer 10.2.1.3
Теперь укажите переменные для созданной сети.
$vnet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroup $subnet = Get-AzVirtualNetworkSubnetConfig -Name $GWSubName -VirtualNetwork $vnet
Выполните приведенную ниже команду, чтобы запросить динамически назначенный общедоступный 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 минут.
Чтобы создать VPN-шлюз, выполните приведенную ниже команду и нажмите клавишу ВВОД.
New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $ResourceGroup ` -Location $Location -IpConfigurations $ipconf -GatewayType Vpn ` -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1 -VpnClientProtocol "IKEv2"
Дождитесь отображения выходных данных команды.
Добавление пула адресов VPN-клиента
Выполните приведенную ниже команду, чтобы добавить пул адресов VPN-клиента.
$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $ResourceGroup -Name $GWName Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientAddressPool $VPNClientAddressPool
Дождитесь отображения выходных данных команды.
Создание сертификата клиента
После создания сетевой инфраструктуры в Azure необходимо создать самозаверяющий сертификат клиента на локальном компьютере. Это можно сделать так же, как и в большинстве операционных систем, но мы рассмотрим, как создать сертификат клиента в Windows 10 с помощью PowerShell с модулем Azure PowerShell и служебной программой Диспетчера сертификатов Windows.
Первый шаг — создание самозаверяющего корневого сертификата. Выполните следующую команду.
$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature ` -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable ` -HashAlgorithm sha256 -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign
Затем создайте сертификат клиента, подписанный новым корневым сертификатом.
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")
Экспорт открытого ключа сертификата
Создав сертификаты, необходимо экспортировать открытый ключ корневого сертификата.
Откройте диспетчер сертификатов, выполнив в PowerShell команду
certmgr
.Выберите Личные>Сертификаты.
Щелкните правой кнопкой мыши сертификат P2SRootCert в списке и выберите пункты Все задачи>Экспорт.
В мастере экспорта сертификатов нажмите Далее.
Убедитесь, что выбрано Нет, не экспортировать закрытый ключ, а затем нажмите Далее.
На странице Формат экспортируемого файла убедитесь в том, что выбран пункт Файлы X.509 (.CER) в кодировке Base-64, и нажмите кнопку Далее.
На странице Экспортируемый файл в разделе Имя файла выберите папку (запомните ее расположение), сохраните файл с именем P2SRootCert.cer, а затем нажмите кнопку Далее.
На странице Завершение работы мастера экспорта сертификатов нажмите кнопку Готово.
В окне сообщения Мастер экспорта сертификатов нажмите ОК.
Отправка сведений об открытом ключе корневого сертификата
В окне PowerShell выполните следующую команду, чтобы объявить переменную для имени сертификата:
$P2SRootCertName = "P2SRootCert.cer"
Вместо заполнителя
<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
Задав имя группы, отправьте сертификат в Azure с помощью приведенной ниже команды.
Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname $GWName -ResourceGroupName $ResourceGroup -PublicCertData $CertBase64
Теперь Azure распознает этот сертификат как доверенный корневой сертификат для виртуальной сети.
Настройка собственного VPN-клиента
Выполните приведенную ниже команду, чтобы создать файлы конфигурации VPN-клиента в формате ZIP.
$profile = New-AzVpnClientConfiguration -ResourceGroupName $ResourceGroup -Name $GWName -AuthenticationMethod "EapTls" $profile.VPNProfileSASUrl
Скопируйте URL-адрес, возвращенный этой командой в выходных данных, и вставьте его в адресной строке браузера. Браузер должен начать загрузку ZIP-файла. Извлеките содержимое архива и поместите его в подходящее место.
В некоторых браузерах скачивание этого ZIP-файла может блокироваться из-за того, что он опознается как опасный. Для извлечения содержимого архива необходимо переопределить это в браузере.
В извлеченной папке перейдите в папку WindowsAmd64 (для 64-разрядных компьютеров Windows) или WindowsX86 (для 32-разрядных компьютеров).
Если нужно настроить VPN на компьютере с ОС, отличной от Windows, можно использовать файлы сертификатов и параметров из папки Общие.
Дважды щелкните файл VpnClientSetup{architecture}.exe, где
{architecture}
соответствует вашей архитектуре.На экране Система Windows защитила ваш компьютер нажмите Дополнительные сведения, а затем нажмите Выполнить в любом случае.
В диалоговом окне Контроль учетных записей пользователей нажмите Да.
В диалоговом окне VNetData нажмите Да.
Подключение к Azure
Нажмите клавишу Windows, введите параметры и нажмите клавишу ВВОД.
В окне Параметры нажмите Сеть и Интернет.
На панели слева выберите VPN.
На панели справа выберите VNetData, а затем — Подключить.
В окне VNetData нажмите Подключить.
В следующем окне VNetData нажмите Продолжить.
В окне сообщения Контроль учетных записей нажмите Да.
Если эти действия не работают, может потребоваться перезагрузить компьютер.
Проверка подключения
В новой командной строке Windows выполните команду
IPCONFIG /ALL
.Скопируйте IP-адрес в разделе "Адаптер PPP VNetData" или запишите его.
Убедитесь, что IP-адрес находится в диапазоне VPNClientAddressPool 172.16.201.0/24.
Подключение к VPN-шлюзу Azure успешно создано.
Вы настроили VPN-шлюз, позволяющий создать зашифрованное клиентское подключение к виртуальной сети в Azure. Этот подход отлично подходит для клиентских компьютеров и небольших подключений типа "сеть — сеть".