Настройка Point-to-Site соединения к Azure
2016-09-06, 20:30 / ArgonОсуществляется по статье Configure a Point-to-Site connection to a VNet using PowerShell. Практически всё очевидно и понятно, кроме момента с выделением пула адресов для клиентов VPN и того, как быть с самоподписанными сертификатами.
Пул адресов для клиентов VPN
Задаётся как адресное пространство (подсеть) вида 10.18.18.0/24. Пул адресов для клиентов VPN должен удовлетворять следующим правилам:
- не должен пересекаться с address space виртуальной сети (VNet), для который он настраивается
- не должен пересекаться с address space сетей (local network gateway, другие виртуальные сети), к которым подключена виртуальная сеть
Когда Point-to-Site соединение между клиентом и шлюзом (virtual network gateway) установлено, клиент получает IP адрес из назначенного пула. При этом сетевое взаимодействие между виртуальной сетью и подсетью VPN полностью маршрутизируется в обе стороны, никаких NAT и сетевой фильтрации нет (если иное не задано в NSG). Поэтому при планировании гибридной сети нужно учитывать, что если потребуется иметь доступ из подсети VPN к подключенной к VNet локальной сети (on-premise), то на локальном сетевом оборудовании должны быть прописаны соответствующие маршруты не только на address space для VNet, но и на VPN pool.
Зачем может пондобиться доступ из VPN address pool в on-premise сеть? Кроме очевидного бесплатного VPN от Azure, подключения Point-to-Site также используют App Services (веб-сайты) для интеграции с VNet, но это уже отдельная история…
Самоподписанные сертификаты
Если нет надобности использовать свой полноценный PKI, можно использовать само-подписанные сертификаты, это описано в статье Working with self-signed certificates for Point-to-Site connections. В примерах команд используется устаревшее средство makecert, и нужно сильно заморочиться, чтобы его скачать и установить. Более того, синтаксис makecert для меня так и остался непостижим.
Если у вас есть Windows 10, то обновлённая команда PowerShell New-SelfSignedCertificate позволяет всё сделать намного проще.
1. Нам нужно создать корневой SSL сертификат, по которому Azure Gateway будет проверять доверие к клиентским сертификатам.
$CertNotBefore = [datetime]::Today
$CertNotAfter = ([datetime]::Today).AddYears(100)
$CertLocation = 'Cert:\CurrentUser\My'
$CertRootCA = New-SelfSignedCertificate -CertStoreLocation $CertLocation -NotBefore $CertNotBefore -NotAfter $CertNotAfter -Subject 'CN=RootCA' -KeyUsage CertSign
2. Импортировать наш корневой сертификат в хранилище доверенных на локальном компьютере, чтобы выпущенные им сертификаты признавались доверенными.
$CertRootCA | Export-Certificate -Type CERT -FilePath 'root.cer'
Import-Certificate -FilePath 'root.cer' -CertStoreLocation Cert:\CurrentUser\Root
3. Для своего клиента VPN выпустить сертификат, подписанный корневым.
$CertClient = New-SelfSignedCertificate -CertStoreLocation $CertLocation -NotBefore $CertNotBefore -NotAfter $CertNotAfter -Signer $CertRootCA -Subject 'CN=Client'
4. Корневой сертификат сохранить в виде строки и загрузить в конфигурацию шлюза Azure.
$CertBytes = $CertRootCA.Export('Cert')
$CertString =[System.Convert]::ToBase64String($CertBytes)
Add-AzureRmVpnClientRootCertificate -ResourceGroupName RGName -VirtualNetworkGatewayname GatewayName -VpnClientRootCertificateName 'root.cer' -PublicCertData $CertString
5. Получить ссылку на персональный установщик клиента VPN.
Get-AzureRmVpnClientPackage -ResourceGroupName RGName -VirtualNetworkGatewayName GatewayName -ProcessorArchitecture Amd64
6. Скачать и установить клиент VPN. Можно пользоваться.
Рубрика | Azure |
---|---|
Метки | azure, cloud, network, pki, public key infrastructure, active directory certificate services, службы сертификатов |
Опубликовано | 2016-09-06, 20:30; обновлено 2016-09-07, 02:42 |
Комментарии | Нет комментариев » | Лента комментариев RSS |
Ссылки | Постоянная ссылка | Обратная ссылка |