Настройка VPN-подключения типа "точка — сеть" к виртуальной сети с использованием проверки подлинности сертификата Azure: PowerShell

Эта статья поможет вам установить безопасное подключение отдельных клиентов под управлением Windows, macOS или Linux к виртуальной сети Azure. VPN-подключения типа "точка-сеть" (P2S) эффективны для подключения к виртуальной сети из удаленного расположения, например, если вы дома или на конференции. Вы также можете использовать подключение "точка — сеть" вместо VPN-подключения "сеть — сеть" при наличии небольшого количества клиентов, которым требуется подключение к виртуальной сети. Для подключения типа "точка-сеть" не требуется VPN-устройство или общедоступный IP-адрес. Подключение "точка — сеть" — это VPN-подключение по протоколу SSTP (Secure Socket Tunneling Protocol) или IKEv2.

Схема соединения компьютера с виртуальной сетью Azure с помощью подключения типа "точка — сеть"

Дополнительные сведения см. в статье О VPN-подключении типа "точка-сеть". Чтобы создать эту конфигурацию на портале Azure, ознакомьтесь со статьей О настройке VPN-подключения типа "точка-сеть" с помощью портала Azure.

Для собственной аутентификации Azure на основе сертификата при подключениях "точка — сеть" необходимы следующие компоненты, которые можно настроить в этом руководстве:

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

Предварительные требования

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

Azure PowerShell

Важно!

Многие шаги, описанные в этой статье, можно использовать в Azure Cloud Shell. Однако для создания сертификатов использовать Cloud Shell нельзя. Кроме того, чтобы отправить открытый ключ корневого сертификата, необходимо либо использовать Azure PowerShell локально, либо портал Azure.

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

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

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

Вход

Если модуль PowerShell запущен локально, откройте консоль PowerShell с повышенными привилегиями и подключитесь к своей учетной записи Azure. Командлет Connect-AzAccount запросит учетные данные. После проверки подлинности он загрузит параметры учетной записи, чтобы они были доступны в Azure PowerShell.

Если вы используете Azure Cloud Shell вместо запуска PowerShell локально, вы заметите, что не нужно выполнять команду Connect-AzAccount. Azure Cloud Shell автоматически подключается к учетной записи Azure после нажатия на кнопку Попробовать.

  1. Если модуль PowerShell запущен локально, выполните вход.

    Connect-AzAccount
    
  2. Если у вас есть несколько подписок Azure, запросите их список.

    Get-AzSubscription
    
  3. Укажите подписку, которую нужно использовать.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

Объявление переменных

В этой статье мы используем переменные, чтобы вы могли легко изменить значения, применяемые к вашей собственной среде, без необходимости изменять сами примеры. Объявите переменные, которые вы хотите использовать. Используйте следующую выборку, подставив собственные значения в соответствующих параметрах. Если необходимо закрыть сеанс PowerShell / Cloud Shell во время выполнения упражнения, просто скопируйте и вставьте значения в повторно объявленные переменные.

$VNetName  = "VNet1"
$FESubName = "FrontEnd"
$GWSubName = "GatewaySubnet"
$VNetPrefix = "10.1.0.0/16"
$FESubPrefix = "10.1.0.0/24"
$GWSubPrefix = "10.1.255.0/27"
$VPNClientAddressPool = "172.16.201.0/24"
$RG = "TestRG1"
$Location = "EastUS"
$GWName = "VNet1GW"
$GWIPName = "VNet1GWpip"
$GWIPconfName = "gwipconf"
$DNS = "10.2.1.4"

Создание виртуальной сети

  1. Создайте группу ресурсов.

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

    $fesub = New-AzVirtualNetworkSubnetConfig -Name $FESubName -AddressPrefix $FESubPrefix
    $gwsub = New-AzVirtualNetworkSubnetConfig -Name $GWSubName -AddressPrefix $GWSubPrefix
    
  3. Создание виртуальной сети.

    В этом примере параметр сервера -DnsServer является необязательным. Если указать значение, DNS-сервер не создается. Необходимо указать IP-адрес DNS-сервера, который может разрешать имена для ресурсов, к которым вы подключаетесь из своей виртуальной сети. В этом примере мы использовали частный IP-адрес, но это не IP-адрес DNS-сервера. Подставьте собственные значения. Указанное значение используется для ресурсов, развертываемых в виртуальной сети, а не для подключений "точка — сеть" или VPN-клиентов.

        New-AzVirtualNetwork `
       -ResourceGroupName $RG `
       -Location $Location `
       -Name $VNetName `
       -AddressPrefix $VNetPrefix `
       -Subnet $fesub, $gwsub `
       -DnsServer $DNS
    
  4. Укажите переменные для созданной виртуальной сети.

    $vnet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $RG
    $subnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    
  5. VPN-шлюз должен иметь общедоступный IP-адрес. Сначала запросите ресурс IP-адреса, а затем укажите его при создании шлюза виртуальной сети. IP-адрес динамически назначается ресурсу при создании VPN-шлюза. В настоящее время VPN-шлюз поддерживает только динамическое выделение общедоступных IP-адресов. Вы не можете запросить назначение статического общедоступного IP-адреса. Однако это не означает, что IP-адрес изменяется после назначения VPN-шлюзу. Общедоступный IP-адрес изменяется только после удаления и повторного создания шлюза. При изменении размера, сбросе или других внутренних операциях обслуживания или обновления IP-адрес VPN-шлюза не изменяется.

    Запросите динамически назначенный общедоступный IP-адрес.

    $pip = New-AzPublicIpAddress -Name $GWIPName -ResourceGroupName $RG -Location $Location -AllocationMethod Dynamic
    $ipconf = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName -Subnet $subnet -PublicIpAddress $pip
    

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

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

  • У параметра -GatewayType должно быть значение Vpn, а у параметра -VpnType — RouteBased.
  • Параметр -VpnClientProtocol используется, чтобы указать типы туннелей, которые необходимо включить. Доступны следующие варианты: OpenVPN, SSTP и IKEv2. Вы можете включить один из них или любую поддерживаемую комбинацию. Если вы хотите включить несколько типов, укажите имена через запятую. OpenVPN и SSTP не могут быть включены вместе. Для подключения клиент strongSwan в Android и Linux и собственный VPN-клиент IKEv2 в iOS и macOS используют только туннель IKEv2. Клиенты Windows сначала пытаются подключиться через IKEv2, и если им это не удается, возвращаются к SSTP. Вы можете использовать клиент OpenVPN для подключения к туннелю соответствующего типа.
  • SKU виртуального сетевого шлюза категории "Базовый" не поддерживает аутентификацию IKEv2, OpenVPN и RADIUS. Если вы планируете подключение к своей виртуальной сети клиентов Mac, не используйте SKU "Базовый".
  • Создание VPN-шлюза может занять 45 минут и более в зависимости от выбранного номера SKU шлюза.
  1. Настройте и создайте шлюз для своей виртуальной сети. Создание шлюза занимает около 45 минут.

    New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG `
    -Location $Location -IpConfigurations $ipconf -GatewayType Vpn `
    -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1 -VpnClientProtocol "IKEv2"
    
  2. После создания шлюза его можно просмотреть, используя следующий пример. Если вы закрыли PowerShell или время ожидания истекло во время создания шлюза, вы можете снова объявить свои переменные.

    Get-AzVirtualNetworkGateway -Name $GWName -ResourceGroup $RG
    

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

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

В этом примере пул адресов VPN-клиента объявлен как переменная на предыдущем шаге.

$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientAddressPool $VPNClientAddressPool

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

Важно!

Создавать сертификаты с помощью Azure Cloud Shell нельзя. Необходимо использовать один из методов, описанных в этом разделе. Чтобы использовать PowerShell, необходимо установить это средство локально.

Сертификаты используются в Azure для проверки подлинности VPN-клиентов в VPN-подключениях типа "точка-сеть". Необходимо отправить сведения об открытом ключе корневого сертификата в Azure. После этого открытый ключ считается доверенным. Сертификаты клиентов должны создаваться из доверенного корневого сертификата, а затем устанавливаться на каждом клиентском компьютере в хранилище сертификатов Certificates-Current User/Personal. Сертификат используется для проверки подлинности клиента, когда он инициирует подключение к виртуальной сети.

Используемые самозаверяющие сертификаты должны быть созданы с помощью определенных параметров. Чтобы создать самозаверяющий сертификат, см. инструкции по PowerShell и Windows 10. Если у вас нет Windows 10, вы можете использовать MakeCert. Во время создания самозаверяющих корневых сертификатов и сертификатов клиента обязательно следуйте инструкциям. В противном случае создаваемые сертификаты не будут совместимы с подключениями "точка — сеть", и вы получите сообщение об ошибке подключения.

Корневой сертификат

  1. Получите CER-файл для корневого сертификата. Используйте корневой сертификат, созданный с помощью корпоративного решения (рекомендуется) или создайте самозаверяющий сертификат. После создания корневого сертификата данные общедоступного сертификата (а не закрытый ключ) экспортируйте в виде CER-файла X.509 в кодировке Base64. Этот файл будет отправлен позже в Azure.

    • Корпоративный сертификат. Если вы пользуетесь корпоративным решением центра сертификации, можно использовать существующую цепочку сертификатов. Получите CER-файл для корневого сертификата, который нужно использовать.

    • Самозаверяющийся корневой сертификат. Если вы не планируете использовать корпоративное решение для создания сертификатов, создайте самозаверяющий корневой сертификат. В противном случае создаваемые сертификаты не будут совместимы с вашими подключениями типа "точка — сеть", и при попытке подключения клиенты будут получать сообщение об ошибке подключения. Можно использовать Azure PowerShell, MakeCert или OpenSSL. На шагах, приведенных по следующим ссылкам, описывается, как создать совместимый самозаверяющий корневой сертификат:

  2. После создания корневого сертификата экспортируйте данные общедоступного сертификата (не закрытый ключ) в виде файла X.509 в формате .cer с кодировкой Base64.

Сертификат клиента

  1. На каждом клиентском компьютере, который вы подключаете к виртуальной сети с помощью подключения типа "точка — сеть", должен быть установлен сертификат клиента. Его нужно создать из корневого сертификата и установить на каждый клиентский компьютер. Если вы не установите допустимый сертификат клиента, проверка подлинности завершится со сбоем, когда клиент попытается подключиться к виртуальной сети.

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

    Сертификаты клиентов можно создать, используя следующие методы:

    • Корпоративный сертификат.

      • При использовании корпоративного решения для создания сертификатов создайте сертификат клиента с общим именем в формате имя@ваш_домен.com. Используйте этот формат вместо формата доменное_имя\имя_пользователя.

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

    • Самозаверяющийся корневой сертификат. Выполните действия, описанные в следующих статьях о сертификате P2S, чтобы создаваемые сертификаты клиента были совместимы с подключениями P2S.

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

      Действия, описанные в следующих статьях, помогут создать совместимый сертификат клиента, который можно экспортировать и распространять.

  2. После создания сертификата клиента экспортируйте его. Сертификат клиента будет распространен на подключенные клиентские компьютеры.

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

Убедитесь, что создание VPN-шлюза завершено. После создания шлюза вы можете передать CER-файл (который содержит сведения об открытом ключе) для доверенного корневого сертификата в Azure. После отправки CER-файла Azure сможет использовать его для проверки подлинности клиентов, на которых установлен клиентский сертификат, созданный из доверенного корневого сертификата. При необходимости позже можно отправить дополнительные файлы доверенных корневых сертификатов (не более 20).

Примечание

Загрузить файл .cer с помощью Azure Cloud Shell нельзя. Вы можете использовать PowerShell локально на своем компьютере или использовать шаги портала Azure.

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

    $P2SRootCertName = "P2SRootCert.cer"
    
  2. Добавьте собственный путь к файлу, а затем выполните командлеты.

    $filePathForCert = "C:\cert\P2SRootCert.cer"
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($filePathForCert)
    $CertBase64 = [system.convert]::ToBase64String($cert.RawData)
    
  3. Отправьте сведения об открытом ключе в Azure. После отправки сведений о сертификате Azure рассматривает его как доверенный корневой сертификат. При загрузке убедитесь, что вы запускаете PowerShell локально на своем компьютере, или вместо этого вы можете использовать шаги портала Azure. Невозможно отправить с помощью Azure Cloud Shell.

    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname "VNet1GW" -ResourceGroupName "TestRG1" -PublicCertData $CertBase64
    

Установка экспортированного сертификата клиента

Следующие шаги помогут вам установить сертификат на клиенте Windows. Дополнительные клиенты и дополнительную информацию см. в разделе Установка сертификата клиента.

  1. Когда сертификат клиента будет экспортирован, найдите PFX-файл и скопируйте его на клиентский компьютер.
  2. На клиентском компьютере дважды щелкните PFX -файл, чтобы установить его. Для параметра Расположение хранилища оставьте значение Текущий пользователь, а затем выберите кнопку Далее.
  3. На странице Файл для импорта не вносите никаких изменений. Выберите Далее.
  4. На странице Защита с помощью закрытого ключа введите пароль для сертификата или проверьте, правильно ли выбран субъект безопасности, а затем выберите кнопку Далее.
  5. На странице Хранилище сертификатов оставьте расположение по умолчанию и выберите кнопку Далее.
  6. Нажмите кнопку Готово. На странице Предупреждение системы безопасности для установки сертификата выберите Да. Вы можете выбрать "Да" для этого предупреждения системы безопасности, так как вы создали сертификат.
  7. Сертификат успешно импортирован.

Убедитесь, что сертификат клиента был экспортирован как PFX-файл вместе со всей цепочкой сертификатов (это значение по умолчанию). В противном случае данные корневого сертификата будут отсутствовать на клиентском компьютере и клиент не сможет пройти проверку должным образом.

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

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

Для создания и установки пакета конфигурации клиента можно использовать следующие короткие примеры. Дополнительные сведения о содержимом пакета и дополнительные инструкции по созданию и установке файлов конфигурации VPN-клиента см. в разделе Создание и установка файлов конфигурации VPN-клиента.

Если нужно еще раз объявить переменные, их можно найти здесь.

Для создания файлов конфигурации

$profile=New-AzVpnClientConfiguration -ResourceGroupName $RG -Name $GWName -AuthenticationMethod "EapTls"

$profile.VPNProfileSASUrl

Для установки пакета конфигурации клиента

На каждом клиентском компьютере Windows можно использовать один и тот же пакет конфигурации VPN-клиента, если его версия соответствует архитектуре клиента. Список поддерживаемых клиентских операционных систем см. в разделе с описанием подключений типа "точка — сеть" в статье VPN-шлюз: вопросы и ответы.

Примечание

Вам потребуются права администратора для клиентского компьютера Windows, с которого устанавливается подключение.

Установка файлов конфигурации

  1. Выберите файлы конфигурации VPN-клиента, которые соответствуют архитектуре компьютера Windows. Для 64-разрядной архитектуры процессора выберите пакет установщика VpnClientSetupAmd64. Для 32-разрядной архитектуры процессора выберите пакет установщика VpnClientSetupX86.
  2. Дважды щелкните пакет, чтобы установить его. При появлении всплывающего окна SmartScreen щелкните Дополнительно, а затем выберите Выполнить в любом случае.

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

  1. Убедитесь, что вы установили сертификат клиента на клиентском компьютере. Сертификат клиента требуется при использовании собственной аутентификации Azure на основе сертификата. Чтобы просмотреть сертификат клиента, откройте раздел Управление сертификатами пользователей. Сертификат клиента устанавливается в каталог Current User\Personal\Certificates.
  2. Чтобы подключиться, перейдите в раздел Параметры сети и щелкните VPN. Для VPN-подключения отображается имя виртуальной сети, к которой оно устанавливается.

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

Клиент Windows VPN

Примечание

Вам потребуются права администратора для клиентского компьютера Windows, с которого устанавливается подключение.

  1. Чтобы подключиться к виртуальной сети, откройте VPN-параметры на клиентском компьютере и найдите созданное VPN-подключение. Его имя совпадает с названием вашей виртуальной сети. Выберите Подключиться. Может появиться всплывающее сообщение об использовании сертификата. В таком случае выберите Продолжить, чтобы использовать более высокий уровень привилегий.

  2. На странице состояния подключения щелкните Подключить. При отображении экрана Выбор сертификата убедитесь, что отображается именно тот сертификат клиента, который предполагается использовать для соединения. Если окно не появится, выберите нужный сертификат в раскрывающемся списке и выберите кнопку ОК.

    Подключение с компьютера Windows

  3. Теперь подключение установлено.

    Схема соединения компьютера с виртуальной сетью Azure с помощью подключения типа "точка — сеть"

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

  • Если вы экспортировали сертификат клиента с помощью мастера экспорта сертификатов, убедитесь, что он был экспортирован как PFX-файл с использованием значения Включить по возможности все сертификаты в путь сертификации. При экспорте с использованием этого значения также экспортируются сведения о корневом сертификате. Корневой сертификат в PFX-файле устанавливается вместе с установкой сертификата на компьютер клиента. Чтобы проверить установку корневого сертификата, откройте Управление сертификатами пользователей и выберите Доверенные корневые центры сертификации\Сертификаты. Убедитесь, что корневой сертификат отображается в списке, иначе проверка подлинности не будет выполнена.

  • Если используется сертификат, который был выдан корпоративным ЦС, и при аутентификации возникают проблемы, проверьте порядок прохождения аутентификации в сертификате клиента. Проверьте список этапов аутентификации, дважды щелкнув сертификат клиента, выбрав Сведения, а затем Улучшенный ключ. Убедитесь, что первым в списке отображается пункт Проверка подлинности клиента. В противном случае выдайте сертификат клиента на основе пользовательского шаблона, в котором пункт Проверка подлинности клиента указан первым в списке.

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

Клиент Mac VPN

В диалоговом окне Network (Сеть) найдите необходимый клиентский профиль и нажмите кнопку Connect (Подключиться). Ознакомьтесь с подробными инструкциями в разделе Установка Mac (macOS). Если у вас возникают неполадки подключения, убедитесь, что шлюз виртуальной сети не использует SKU "Базовый". SKU "Базовый" не поддерживается для клиентов Mac.

Подключение для Mac

Чтобы проверить соединение

Эти инструкции применимы к клиентам Windows.

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

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

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

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

Эти инструкции применимы к клиентам Windows.

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

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

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

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

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where 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. Убедитесь, что вы подключены к виртуальной сети с помощью VPN-подключения "точка — сеть".

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

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

Устранение неполадок с подключением

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

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

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

Добавление и удаление корневого сертификата

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

Добавить:

В Azure можно добавить до 20 CER-файлов корневых сертификатов. Ниже описано, как добавить корневой сертификат.

  1. Подготовьте CER-файл для отправки:

    $filePathForCert = "C:\cert\P2SRootCert3.cer"
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($filePathForCert)
    $CertBase64_3 = [system.convert]::ToBase64String($cert.RawData)
    
  2. Отправьте файл. Вы можете отправить только один файл за раз.

    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname "VNet1GW" -ResourceGroupName "TestRG1" -PublicCertData $CertBase64_3
    
  3. Убедитесь, что файл сертификата загружен:

    Get-AzVpnClientRootCertificate -ResourceGroupName "TestRG1" `
    -VirtualNetworkGatewayName "VNet1GW"
    

Для удаления:

  1. Объявите переменные. Измените переменные в примере, чтобы они соответствовали сертификату, который вы хотите удалить.

    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    $P2SRootCertName2 = "ARMP2SRootCert2.cer"
    $MyP2SCertPubKeyBase64_2 = "MIIC/zCCAeugAwIBAgIQKazxzFjMkp9JRiX+tkTfSzAJBgUrDgMCHQUAMBgxFjAUBgNVBAMTDU15UDJTUm9vdENlcnQwHhcNMTUxMjE5MDI1MTIxWhcNMzkxMjMxMjM1OTU5WjAYMRYwFAYDVQQDEw1NeVAyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyjIXoWy8xE/GF1OSIvUaA0bxBjZ1PJfcXkMWsHPzvhWc2esOKrVQtgFgDz4ggAnOUFEkFaszjiHdnXv3mjzE2SpmAVIZPf2/yPWqkoHwkmrp6BpOvNVOpKxaGPOuK8+dql1xcL0eCkt69g4lxy0FGRFkBcSIgVTViS9wjuuS7LPo5+OXgyFkAY3pSDiMzQCkRGNFgw5WGMHRDAiruDQF1ciLNojAQCsDdLnI3pDYsvRW73HZEhmOqRRnJQe6VekvBYKLvnKaxUTKhFIYwuymHBB96nMFdRUKCZIiWRIy8Hc8+sQEsAML2EItAjQv4+fqgYiFdSWqnQCPf/7IZbotgQIDAQABo00wSzBJBgNVHQEEQjBAgBAkuVrWvFsCJAdK5pb/eoCNoRowGDEWMBQGA1UEAxMNTXlQMlNSb290Q2VydIIQKazxzFjMkp9JRiX+tkTfSzAJBgUrDgMCHQUAA4IBAQA223veAZEIar9N12ubNH2+HwZASNzDVNqspkPKD97TXfKHlPlIcS43TaYkTz38eVrwI6E0yDk4jAuPaKnPuPYFRj9w540SvY6PdOUwDoEqpIcAVp+b4VYwxPL6oyEQ8wnOYuoAK1hhh20lCbo8h9mMy9ofU+RP6HJ7lTqupLfXdID/XevI8tW6Dm+C/wCeV3EmIlO9KUoblD/e24zlo3YzOtbyXwTIh34T0fO/zQvUuBqZMcIPfM1cDvqcqiEFLWvWKoAnxbzckye2uk1gHO52d8AVL3mGiX8wBJkjc/pMdxrEvvCzJkltBmqxTM6XjDJALuVh16qFlqgTWCIcb7ju"
    
  2. Удалите сертификат.

    Remove-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName2 -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG -PublicCertData $MyP2SCertPubKeyBase64_2
    
  3. Используйте приведенный ниже пример, чтобы убедиться, что сертификат успешно удален.

    Get-AzVpnClientRootCertificate -ResourceGroupName "TestRG1" `
    -VirtualNetworkGatewayName "VNet1GW"
    

Как отозвать или восстановить сертификат клиента

Можно отозвать сертификаты клиента. Список отзыва сертификатов позволяет выборочно запрещать подключение типа "точка-сеть" на основе отдельных сертификатов клиента. Эта процедура отличается от удаления доверенного корневого сертификата. При удалении доверенного корневого сертификата (CER-файл) из Azure будет запрещен доступ для всех сертификатов клиента, созданных на основе отозванного корневого сертификата или подписанных им. Отзыв сертификата клиента, а не корневого сертификата, позволяет по-прежнему использовать другие сертификаты, созданные на основе корневого сертификата, для проверки подлинности.

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

Для отмены:

  1. Получите отпечаток сертификата клиента. Дополнительные сведения см. в статье Практическое руководство. Извлечение отпечатка сертификата.

  2. Скопируйте данные в текстовый редактор и удалите все пробелы, чтобы предоставить отпечаток в виде непрерывной строки. Далее эта строка будет объявлена в качестве переменной.

  3. Объявите переменные. Обязательно объявите отпечаток, полученный на предыдущем шаге.

    $RevokedClientCert1 = "NameofCertificate"
    $RevokedThumbprint1 = "‎51ab1edd8da4cfed77e20061c5eb6d2ef2f778c7"
    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    
  4. Добавьте отпечаток в список отозванных сертификатов. После добавления отпечатка отобразится Succeeded.

    Add-AzVpnClientRevokedCertificate -VpnClientRevokedCertificateName $RevokedClientCert1 `
    -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG `
    -Thumbprint $RevokedThumbprint1
    
  5. Убедитесь, что отпечаток добавлен в список отзыва сертификатов.

    Get-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG
    
  6. Теперь сертификат нельзя использовать для подключения. Клиенты, пытающиеся подключиться с помощью этого сертификата, получат сообщение, что он недействителен.

Для возобновления:

Можно возобновить использование сертификата клиента, удалив отпечаток из списка отозванных сертификатов клиента.

  1. Объявите переменные. Обязательно объявите правильный отпечаток сертификата, который требуется возобновить.

    $RevokedClientCert1 = "NameofCertificate"
    $RevokedThumbprint1 = "‎51ab1edd8da4cfed77e20061c5eb6d2ef2f778c7"
    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    
  2. Удалите отпечаток сертификата из списка отзыва сертификатов.

    Remove-AzVpnClientRevokedCertificate -VpnClientRevokedCertificateName $RevokedClientCert1 `
    -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG -Thumbprint $RevokedThumbprint1
    
  3. Проверьте, удален ли отпечаток из списка отозванных отпечатков.

    Get-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG
    

Часто задаваемые вопросы о подключениях типа "точка — сеть"

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

Дальнейшие действия

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

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