Бөлісу құралы:


Настройка параметров сервера VPN-шлюз P2S — проверка подлинности RADIUS

В этой статье показано, как создать подключение типа "точка — сеть" (P2S), использующее проверку подлинности RADIUS. Эту конфигурацию можно создать с помощью PowerShell или портал Azure. См. сведения о выполнении проверки подлинности с помощью другого метода:

Дополнительные сведения о VPN-подключениях типа "точка — сеть" см. в разделе "Сведения о VPN P2S".

Для этого типа подключения требуется следующее:

  • VPN-шлюз с маршрутизацией на основе маршрутов.
  • Сервер RADIUS для аутентификации пользователей. Сервер RADIUS можно развернуть локально или в виртуальной сети Azure. Можно также настроить два сервера RADIUS для обеспечения высокой доступности.
  • Пакет конфигурации профиля VPN-клиента. Пакет конфигурации профиля клиента VPN — это пакет, который вы создаете. Он содержит параметры, необходимые для vpn-клиента для подключения через P2S.

Ограничения:

  • Если вы используете IKEv2 с RADIUS, поддерживается только проверка подлинности на основе EAP.
  • Подключение ExpressRoute нельзя использовать для подключения к локальному серверу RADIUS.

Сведения об аутентификации домена Active Directory (AD) для VPN-подключений типа "точка — сеть"

Если используется аутентификация домена AD, пользователи могут входить в Azure с помощью учетных данных домена организации. Для этой проверки требуется сервер RADIUS, который интегрирован с сервером AD. Организации также могут использовать существующее развертывание RADIUS.

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

Сервер RADIUS можно интегрировать не только с Active Directory, но и с другими системами внешних идентификаторов. Благодаря этому доступно множество вариантов проверки подлинности для P2S VPN, включая параметры MFA. Список систем идентификаторов для интеграции см. в документации поставщика сервера RADIUS.

Схема проверки подлинности RADIUS для подключения P2S.

Подготовка

Убедитесь в том, что у вас уже есть подписка Azure. Если у вас нет подписки Azure, вы можете активировать преимущества для подписчиков MSDN или зарегистрировать бесплатную учетную запись.

Работа с Azure PowerShell

В этой статье используются командлеты PowerShell. Для запуска командлетов можно использовать Azure Cloud Shell. Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, просто выберите Open Cloudshell в правом верхнем углу блока кода. Кроме того, Cloud Shell можно открыть в отдельной вкладке браузера. Для этого перейдите на страницу https://shell.azure.com/powershell. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте их в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить код.

Кроме того, вы можете установить и запускать командлеты Azure PowerShell локально на компьютере. Командлеты PowerShell часто обновляются. Если вы не установили последнюю версию, значения, указанные в инструкциях, могут завершиться ошибкой. Чтобы узнать, какая версия Azure PowerShell установлена на вашем компьютере, используйте командлет Get-Module -ListAvailable Az. Если необходимо выполнить установку или обновление, см. статью об установке модуля Azure PowerShell.

Пример значений

Эти примеры значений можно использовать для создания тестовой среды или анализа примеров из этой стать. Вы можете использовать эти пошаговые инструкции, используя указанные в них значения, или же изменить значения в соответствии со своей средой.

  • Имя: VNet1
  • Адресное пространство: 10.1.0.0/16 и 10.254.0.0/16.
    Чтобы продемонстрировать, что эта конфигурация будет работать с несколькими адресными пространствами, в этом примере мы используем несколько адресных пространств. Но для этой конфигурации не требуется несколько адресных пространств.
  • Имя подсети: FrontEnd.
    • Адресное пространство подсети: 10.1.0.0/24.
  • Имя подсети: BackEnd.
    • Диапазон адресов подсети: 10.254.1.0/24.
  • Имя подсети: GatewaySubnet.
    Имя подсети GatewaySubnet обязательно для работы VPN-шлюза.
    • Диапазон адресов подсети шлюза: 10.1.255.0/27.
  • Пул адресов VPN-клиента: 172.16.201.0/24.
    VPN-клиенты, которые подключаются к виртуальной сети с помощью этого подключения P2S, получают IP-адреса из пула адресов VPN-клиента.
  • Подписка: если у вас есть несколько подписок, убедитесь, что используется правильная.
  • Группа ресурсов: TestRG1.
  • Расположение: восточная часть США.
  • DNS-сервер: IP-адрес DNS-сервера, который нужно использовать для разрешения имен в виртуальной сети. (необязательно).
  • Имя шлюза: Vnet1GW.
  • Имя общедоступного IP-адреса: VNet1GWPIP.
  • Тип VPN: RouteBased.

Создание группы ресурсов, виртуальной сети и общедоступного IP-адреса

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

  1. Создайте группу ресурсов с помощью командлета New-AzResourceGroup.

    New-AzResourceGroup -Name "TestRG1" -Location "EastUS"
    
  2. Создайте виртуальную сеть с помощью New-AzVirtualNetwork.

    $vnet = New-AzVirtualNetwork `
    -ResourceGroupName "TestRG1" `
    -Location "EastUS" `
    -Name "VNet1" `
    -AddressPrefix 10.1.0.0/16
    
  3. Создайте подсети с помощью New-AzVirtualNetworkSubnetConfig со следующими именами: FrontEnd и GatewaySubnet (подсеть шлюза должна называться GatewaySubnet).

    $subnetConfigFrontend = Add-AzVirtualNetworkSubnetConfig `
      -Name Frontend `
      -AddressPrefix 10.1.0.0/24 `
      -VirtualNetwork $vnet
    
    $subnetConfigGW = Add-AzVirtualNetworkSubnetConfig `
      -Name GatewaySubnet `
      -AddressPrefix 10.1.255.0/27 `
      -VirtualNetwork $vnet
    
  4. Запишите конфигурацию подсети в виртуальную сеть с помощью командлета Set-AzVirtualNetwork, который создает подсети в виртуальной сети:

    $vnet | Set-AzVirtualNetwork
    

Запрос общедоступного IP-адреса

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

  1. Запросите общедоступный IP-адрес для VPN-шлюза с помощью New-AzPublicIpAddress.

    $gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
    
  2. Создайте конфигурацию IP-адреса шлюза с помощью New-AzVirtualNetworkGatewayIpConfig. Эта конфигурация ссылается при создании VPN-шлюза.

    $vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1"
    $gwsubnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
    $gwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $gwsubnet.Id -PublicIpAddressId $gwpip.Id
    

Настройка сервера RADIUS

Прежде чем создавать и настраивать шлюз виртуальной сети, необходимо правильно настроить сервер RADIUS для проверки подлинности.

  1. Если вы еще не развернули сервер RADIUS, сделайте это. Инструкции по развертыванию см. в руководстве по установке, которое предоставлено поставщиком RADIUS.  
  2. Настройте VPN-шлюз как клиент RADIUS на сервере RADIUS. При добавлении клиента RADIUS укажите подсеть шлюза виртуальной сети, которую вы создали.
  3. После настройки сервера RADIUS получите его IP-адрес и общий секрет, который клиенты RADIUS будут использовать для обмена данными с сервером RADIUS. Если сервер RADIUS находится в виртуальной сети Azure, используйте IP-адрес центра сертификации виртуальной машины сервера RADIUS.

Статья Сервер политики сети (NPS) содержит сведения о настройке сервера RADIUS (NPS) под управлением Windows для аутентификации домена AD.

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

На этом этапе вы создадите и настроите шлюз для своей виртуальной сети. Дополнительные сведения о типе проверки подлинности и туннелях см. в разделе "Указание типа туннеля и проверки подлинности" в портал Azure версии этой статьи.

  • Параметру -GatewayType должно быть задано значение "Vpn", а параметру -VpnType — "RouteBased".
  • Для сборки VPN-шлюза может потребоваться 45 минут или больше, в зависимости от выбранного номера SKU шлюза.

В следующем примере используется номер SKU vpnGw2 поколения 2. Если вы видите ошибки ValidateSet относительно значения GatewaySKU и выполняют эти команды локально, убедитесь, что установлена последняя версия командлетов PowerShell. Последняя версия содержит новые проверенные значения для последних номеров SKU шлюза.

Создайте шлюз виртуальной сети с типом "VPN" с помощью New-AzVirtualNetworkGateway.

New-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1" `
-Location "EastUS" -IpConfigurations $gwipconfig -GatewayType Vpn `
-VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw2 -VpnGatewayGeneration "Generation2"

Добавление сервера RADIUS

  • -RadiusServer можно указать с помощью имени или IP-адреса. Если указать имя и сервер находится в локальной среде, VPN-шлюз может не разрешить имя. В таком случае рекомендуем указать IP-адрес сервера.
  • Параметр -RadiusSecret должен соответствовать настроенному параметру на сервере RADIUS.
  • -VpnClientAddressPool — это диапазон, из которого VPN-клиенты будут получать IP-адреса при подключении. Используйте диапазон частных IP-адресов, который не пересекается с локальным расположением, из которого выполнено подключение, или с виртуальной сетью, к которой вы хотите подключиться. Настройте достаточное количество адресов в пуле.  
  1. Создайте безопасную строку секрета RADIUS.

    $Secure_Secret=Read-Host -AsSecureString -Prompt "RadiusSecret"
    
  2. Появится запрос на ввод секрета RADIUS. Символы, которые вы вводите, не будут отображаться. Вместо них вы увидите символы *.

    RadiusSecret:***
    

Добавление значений пула адресов клиента и сервера RADIUS

В этом разделе описано, как добавить пул адресов VPN-клиента и сведения о сервере RADIUS. Существует несколько возможных конфигураций. Выберите пример, который требуется настроить.

Конфигурации SSTP

$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "TestRG1" -Name "VNet1GW"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
-VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "SSTP" `
-RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret

Конфигурации OpenVPN®

$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "TestRG1" -Name "VNet1GW"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientRootCertificates @()
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
-VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "OpenVPN" `
-RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret

Конфигурации IKEv2

$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "TestRG1" -Name "VNet1GW"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
-VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "IKEv2" `
-RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret

SSTP + IKEv2

$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName "TestRG1" -Name "VNet1GW"
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
-VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol @( "SSTP", "IkeV2" ) `
-RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret

Укажите два сервера RADIUS

Чтобы указать два сервера RADIUS, используйте следующий синтаксис. При необходимости измените значение параметра -VpnClientProtocol

$radiusServer1 = New-AzRadiusServer -RadiusServerAddress 10.1.0.15 -RadiusServerSecret $radiuspd -RadiusServerScore 30
$radiusServer2 = New-AzRadiusServer -RadiusServerAddress 10.1.0.16 -RadiusServerSecret $radiuspd -RadiusServerScore 1

$radiusServers = @( $radiusServer1, $radiusServer2 )

Set-AzVirtualNetworkGateway -VirtualNetworkGateway $actual -VpnClientAddressPool 201.169.0.0/16 -VpnClientProtocol "IkeV2" -RadiusServerList $radiusServers

Настройка VPN-клиента и подключение

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

См. сведения о создании пакета конфигурации VPN-клиента и настройке VPN-клиента:

После настройки клиента VPN установите подключение к Azure.

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

  1. Чтобы проверить, активно ли VPN-подключение, откройте окно командной строки от имени администратора и выполните команду ipconfig/all.

  2. Просмотрите результаты. Обратите внимание, что полученный вами IP-адрес — это один из адресов в пуле адресов VPN-клиента подключения P2S, указанном в конфигурации. Вы должны увидеть результат, аналогичный приведенному ниже.

    PPP adapter VNet1:
       Connection-specific DNS Suffix .:
       Description.....................: VNet1
       Physical Address................:
       DHCP Enabled....................: No
       Autoconfiguration Enabled.......: Yes
       IPv4 Address....................: 172.16.201.3(Preferred)
       Subnet Mask.....................: 255.255.255.255
       Default Gateway.................:
       NetBIOS over Tcpip..............: Enabled
    

Устранение неполадок подключения типа "точка — сеть" описывается в разделе Устранение неполадок подключения типа "точка — сеть" Azure.

Подключение к виртуальной машине

Вы можете подключиться к виртуальной машине, развернутой в виртуальной сети, создав подключение удаленного рабочего стола к виртуальной машине. Лучший способ проверить, можете ли вы подключиться к своей виртуальной машине, — подключиться, используя частный IP-адрес, а не имя компьютера. Таким образом, вы проверяете, можете ли вы подключиться, а не правильно ли настроено разрешение имен.

  1. Найдите частный IP-адрес. Частный IP-адрес виртуальной машины можно найти, просматривая свойства виртуальной машины в портал Azure или с помощью PowerShell.

    • портал Azure. Найдите виртуальную машину в портал Azure. Просмотрите свойства виртуальной машины. Там будет указан частный IP-адрес.

    • PowerShell. Используйте пример для просмотра списка виртуальных машин и частных IP-адресов из групп ресурсов. Вам не нужно изменять этот пример перед использованием.

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null
      
      foreach ($Nic in $Nics) {
      $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
      $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
      $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
      Write-Output "$($VM.Name): $Prv,$Alloc"
      }
      
  2. Убедитесь, что вы подключены к виртуальной сети.

  3. Откройте подключение к удаленному рабочему столу, введя RDP или подключение к удаленному рабочему столу в поле поиска на панели задач. Затем выберите подключение к удаленному рабочему столу. Вы также можете открыть подключение к удаленному рабочему столу mstsc с помощью команды в PowerShell.

  4. В сеансе подключения к удаленному рабочему столу введите частный IP-адрес виртуальной машины. Вы можете выбрать "Показать параметры" , чтобы настроить другие параметры, а затем подключиться.

Если у вас возникли проблемы с подключением к виртуальной машине через VPN-подключение, проверьте следующие моменты:

  • Убедитесь, что вы используете активное VPN-подключение.
  • Убедитесь, что подключаетесь к частному IP-адресу виртуальной машины.
  • Если вы можете подключиться к виртуальной машине с помощью частного IP-адреса, но не имени компьютера, убедитесь, что dns настроен правильно. Дополнительные сведения о том, как работает разрешение имен для виртуальных машин, см. в разделе "Разрешение имен" для виртуальных машин.

Дополнительные сведения о подключениях RDP см. в статье Устранение неполадок с подключением к виртуальной машине Azure через удаленный рабочий стол.

  • Убедитесь, что пакет конфигурации VPN-клиента был создан после IP-адресов DNS-сервера, заданных для виртуальной сети. Если вы обновили IP-адреса DNS-сервера, создайте и установите новый пакет конфигурации VPN-клиента.

  • Используйте ipconfig, чтобы проверить IPv4-адрес, назначенный Ethernet-адаптеру на компьютере, с которого выполняется подключение. Если IP-адрес находится в диапазоне адресов виртуальной сети, к которой выполняется подключение, или в диапазоне адресов VPNClientAddressPool, адресное пространство перекрывается. В таком случае сетевой трафик не достигает Azure и остается в локальной сети.

Вопросы и ответы

Ответы на часто задаваемые вопросы см. в разделе "Точка — сеть" — проверка подлинности RADIUS.

Следующие шаги

Установив подключение, можно добавить виртуальные машины в виртуальные сети. Дополнительные сведения о виртуальных машинах см. здесь. Дополнительные сведения о сетях и виртуальных машинах см. в статье Azure и Linux: обзор сетей виртуальных машин.