Настройка VPN-клиентов типа "точка — сеть": проверка подлинности сертификатов — Linux

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

Подготовка к работе

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

Проверка подлинности Тип туннеля Создание файлов конфигурации Настройка VPN-клиента
Сертификат Azure IKEv2, SSTP Windows Собственный VPN-клиент
Сертификат Azure OpenVPN Windows - Клиент OpenVPN
- VPN-клиент Azure
Сертификат Azure IKEv2, OpenVPN macOS-iOS macOS-iOS
Сертификат Azure IKEv2, OpenVPN Linux Linux
Microsoft Entra ID OpenVPN (SSL) Windows Windows
Microsoft Entra ID OpenVPN (SSL) macOS macOS
RADIUS — сертификат - Статья Статья
RADIUS — пароль - Статья Статья
RADIUS — другие методы - Статья Статья

Внимание

Начиная с 1 июля 2018 года прекращается поддержка TLS 1.0 и TLS 1.1 в VPN-шлюзе Azure. VPN-шлюз будет поддерживать только TLS 1.2. Затрагиваются только подключения "точка — сеть", но не подключения "сеть — сеть". Если вы используете TLS для VPN-подключений "точка — сеть" на клиентах с Windows 10 или более поздней версии, никаких действий не требуется. Если вы используете TLS для подключений "точка — сеть" клиентов с Windows 7 и Windows 8, обратитесь к разделу VPN-шлюз: вопросы и ответы за инструкциями по обновлению.

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

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

Сведения о работе с сертификатами см . на сайте": создание сертификатов.

Создание файлов конфигурации VPN-клиента

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

Чтобы создать файлы конфигурации с помощью портал Azure:

  1. В портал Azure перейдите к шлюзу виртуальной сети для виртуальной сети, к которой требуется подключиться.

  2. На странице шлюза виртуальной сети выберите элемент Конфигурация "точка — сеть", чтобы открыть страницу этой конфигурации.

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

    Снимок экрана: страница конфигурации

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

  5. Распакуйте файл. После этого отобразятся папки. Вы будете использовать некоторые или все эти файлы для настройки VPN-клиента. Созданные файлы соответствуют параметрам типа проверки подлинности и туннеля, настроенным на сервере P2S.

Затем настройте VPN-клиент. Выберите из следующих инструкций:

IKEv2 — шаги strongSwan

Установка strongSwan

Следующая конфигурация использовалась при указании команд:

  • Компьютер: Ubuntu Server 18.04
  • Зависимости: strongSwan

Чтобы установить необходимую конфигурацию strongSwan, используйте следующие команды:

sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0

Установка сертификатов

Сертификат клиента требуется при использовании аутентификации Azure на основе сертификата. Сертификат клиента должен быть установлен на каждом клиентском компьютере. Экспортируемый сертификат клиента должен быть экспортирован с закрытым ключом и должен содержать все сертификаты в пути сертификации. Прежде чем перейти к следующему разделу, убедитесь, что на клиентском компьютере установлен соответствующий сертификат клиента.

Сведения о сертификатах клиента см. в разделе Создание сертификатов — Linux.

Просмотр файлов профиля VPN-клиента

Перейдите к скачанным файлам конфигурации профиля VPN-клиента. В папке Generic можно найти все необходимые для конфигурации сведения. Azure не предоставляет файл mobileconfig для этой конфигурации.

Если вы не видите папку Generic, проверьте следующие элементы, а затем создайте ZIP-файл еще раз.

  • Проверьте тип туннеля для вашей конфигурации. Скорее всего, вы не выбрали IKEv2 в качестве типа туннеля.
  • В VPN-шлюзе убедитесь в том, что номер SKU отличается от базового. VPN-шлюз со SKU "Базовый" не поддерживает IKEv2. Затем выберите IKEv2 и создайте ZIP-файл еще раз для получения папки Generic.

Эта папка содержит следующие файлы:

  • Файл VpnSettings.xml — содержит такие важные параметры, как адрес сервера и тип туннеля.
  • Файл VpnServerRoot.cer содержит корневой сертификат, который требуется для проверки VPN-шлюза Azure при настройке подключения типа "точка — сеть".

После просмотра файлов перейдите к шагам, которые вы хотите выполнить:

Шаги графического графического интерфейса strongSwan

В этом разделе описана конфигурация с помощью графического интерфейса strongSwan. Приведенные ниже инструкции были созданы в Ubuntu 18.0.4. Ubuntu 16.0.10 не поддерживает графический пользовательский интерфейс strongSwan. Использовать Ubuntu 16.0.10 можно только с помощью командной строки. В зависимости от версии Linux и strongSwan указанные ниже примеры могут отличаться от экранов, которые вы видите.

  1. Откройте приложение Terminal, чтобы установить strongSwan и его Network Manager, выполнив команду из примера.

    sudo apt install network-manager-strongswan
    
  2. Выберите Settings (Параметры), а затем — Network (Сеть). Нажмите кнопку +, чтобы создать подключение.

    Снимок экрана, на котором показана страница сетевых подключений.

  3. В меню выберите IPSec/IKEv2 (strongSwan) и дважды щелкните.

    Снимок экрана, на котором показана страница добавления VPN.

  4. На странице Add VPN (Добавление VPN) добавьте имя VPN-подключения.

    Снимок экрана, на котором показан выбор типа подключения.

  5. Откройте файл VpnSettings.xml из папки Generic в загруженных файлах конфигурации профиля VPN-клиента. Найдите тег VpnServer и скопируйте имя, начиная с azuregateway и заканчивая .cloudapp.net.

    Снимок экрана, на котором показан интерфейс копирования данных.

  6. Вставьте это имя в поле Address (Адрес) нового VPN-подключения в разделе Gateway (Шлюз). Затем щелкните значок папки в конце поля Certificate (Сертификат), перейдите в папку Generic и выберите файл VpnServerRoot.

  7. В разделе Client (Клиент) подключения для параметра Authentication (Аутентификация) выберите Certificate/private key (Сертификат/закрытый ключ). Для параметров Certificate (Сертификат ) и Private key (Закрытый ключ) выберите созданные ранее сертификат и закрытый ключ. В разделе Options (Параметры) выберите Request an inner IP address (Запросить внутренний IP-адрес). а затем щелкните Добавить.

    Снимок экрана, на котором показан интерфейс запроса внутреннего IP-адреса.

  8. Включите подключение.

    Снимок экрана, на котором показано копирование.

Шаги интерфейса командной строки strongSwan

В этом разделе описана конфигурация с помощью интерфейса командной строки strongSwan.

  1. Из файлов конфигурации профиля VPN-клиента Generic копируйте или переместите файл VpnServerRoot.cer в папку /etc/ipsec.d/cacerts.

  2. Скопируйте или переместите файлы, созданные в /etc/ipsec.d/certs и /etc/ipsec.d/private/ соответственно. Эти файлы являются сертификатом клиента и закрытым ключом, они должны находиться в соответствующих каталогах. Используйте следующие команды:

    sudo cp ${USERNAME}Cert.pem /etc/ipsec.d/certs/
    sudo cp ${USERNAME}Key.pem /etc/ipsec.d/private/
    sudo chmod -R go-rwx /etc/ipsec.d/private /etc/ipsec.d/certs
    
  3. Выполните следующую команду, чтобы заметить имя узла. Это значение потребуется вам на следующем шаге.

    hostnamectl --static
    
  4. Откройте файл VpnSettings.xml и скопируйте значение <VpnServer>. Это значение потребуется вам на следующем шаге.

  5. Измените значения в приведенном ниже примере, а затем добавьте этот код в файл конфигурации /etc/ipsec.conf.

    conn azure
          keyexchange=ikev2
          type=tunnel
          leftfirewall=yes
          left=%any
          # Replace ${USERNAME}Cert.pem with the key filename inside /etc/ipsec.d/certs  directory. 
          leftcert=${USERNAME}Cert.pem
          leftauth=pubkey
          leftid=%client # use the hostname of your machine with % character prepended. Example: %client
          right= #Azure VPN gateway address. Example: azuregateway-xxx-xxx.vpn.azure.com
          rightid=% #Azure VPN gateway FQDN with % character prepended. Example: %azuregateway-xxx-xxx.vpn.azure.com
          rightsubnet=0.0.0.0/0
          leftsourceip=%config
          auto=add
          esp=aes256gcm16
    
  6. Добавьте значения секрета в /etc/ipsec.secret.

    Имя PEM-файла должно соответствовать тому, что использовалось ранее в качестве файла ключа клиента.

    : RSA ${USERNAME}Key.pem  # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory. 
    
  7. Наконец, выполните следующие команды:

    sudo ipsec restart
    sudo ipsec up azure
    

Шаги OpenVPN

В этом разделе показано, как настроить клиентов Linux для проверки подлинности на основе сертификата, использующего тип туннеля OpenVPN. Чтобы подключиться к Azure, скачайте клиент OpenVPN и настройте профиль подключения.

Примечание.

Клиент OpenVPN версии 2.6 еще не поддерживается.

  1. Запустите новый сеанс терминала. Новый сеанс можно начать, нажав CTRL+ALT+Т.

  2. Для установки необходимых компонентов введите следующую команду.

    sudo apt-get install openvpn
    sudo apt-get -y install network-manager-openvpn
    sudo service network-manager restart
    
  3. Затем перейдите в папку профиля VPN-клиента и распакуйте его, чтобы просмотреть файлы.

  4. Экспортируйте сертификат клиента P2S, который вы создали и отправили в конфигурацию P2S на шлюзе. Инструкции см. в разделе VPN-шлюз "точка — сеть".

  5. Извлеките закрытый ключ и отпечаток base64 из PFX-файла. Существует несколько способов это сделать. Это можно сделать с помощью OpenSSL на компьютере.

    openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"
    

    Файл profileinfo.txt содержит закрытый ключ, отпечаток для ЦС и сертификат клиента. Не забудьте использовать отпечаток сертификата клиента.

  6. Откройте файл profileinfo.txt в текстовом редакторе. Чтобы получить отпечаток сертификата клиента (дочерний), выделите текст между "-----BEGIN CERTIFICATE-----" и "-----END CERTIFICATE-----", включая эти строки, для дочернего сертификата и скопируйте его. Дочерний сертификат можно определить, просмотрев строку subject=/.

  7. Откройте файл vpnconfig.ovpn и найдите раздел, показанный ниже. Замените весь код между маркерами "cert" и "/cert".

    # P2S client certificate
    # please fill this field with a PEM formatted cert
    <cert>
    $CLIENTCERTIFICATE
    </cert>
    
  8. Откройте файл profileinfo.txt в текстовом редакторе. Чтобы получить закрытый ключ, выделите текст между "-----BEGIN PRIVATE KEY-----" и "-----END PRIVATE KEY-----" (включая эти строки) и скопируйте его.

  9. Откройте файл vpnconfig.ovpn в текстовом редакторе и найдите этот раздел. Вставьте закрытый ключ, заменив все между key и /key.

    # P2S client root certificate private key
    # please fill this field with a PEM formatted key
    <key>
    $PRIVATEKEY
    </key>
    
  10. Не изменяйте остальные поля. Для подключения к VPN используйте заполненную конфигурацию на входе клиента.

    • Чтобы подключиться с помощью командной строки, введите следующую команду:

      sudo openvpn --config <name and path of your VPN profile file>&
      
    • Чтобы отключиться с помощью командной строки, введите следующую команду:

      sudo pkill openvpn
      
    • Чтобы подключиться с помощью графического пользовательского интерфейса, перейдите в параметры системы.

  11. Выберите + , чтобы добавить новое VPN-подключение.

  12. В разделе Добавить VPN выберите Импорт из файла...

  13. Просмотрите файл профиля и дважды щелкните или выберите Открыть.

  14. Выберите "Добавить" в окне "Добавить VPN".

    Снимок экрана: импорт из файла на странице

  15. Вы можете подключиться, выбрав для VPN Вкл. на странице Параметры сети или под значком сети на панели задач.

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

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