Настройка VPN strongSwan для подключений IKEv2 для проверки подлинности сертификата P2S — Linux
В этой статье показано, как подключиться к виртуальной сети Azure с помощью VPN-подключения типа VPN-шлюз "точка — сеть" (P2S) и проверки подлинности сертификатов из клиента Ubuntu Linux с помощью strongSwan.
Подготовка к работе
Перед началом убедитесь, что вы работаете с нужной статьей. В следующей таблице приведены статьи о конфигурации, доступные для VPN-клиентов P2S VPN-шлюза Azure. Шаги различаются в зависимости от типа проверки подлинности, типа туннеля и клиентской ОС.
Проверка подлинности | Тип туннеля | ОС клиента | VPN-клиент |
---|---|---|---|
Сертификат | |||
IKEv2, SSTP | Windows | Собственный VPN-клиент | |
IKEv2 | macOS | Собственный VPN-клиент | |
IKEv2 | Linux | strongSwan | |
OpenVPN | Windows | VPN-клиент Azure Клиент OpenVPN версии 2.x Клиент OpenVPN версии 3.x |
|
OpenVPN | macOS | Клиент OpenVPN | |
OpenVPN | iOS | Клиент OpenVPN | |
OpenVPN | Linux | VPN-клиент Azure Клиент OpenVPN |
|
Microsoft Entra ID | |||
OpenVPN | Windows | VPN-клиент Azure | |
OpenVPN | macOS | VPN-клиент Azure | |
OpenVPN | Linux | VPN-клиент Azure |
Необходимые компоненты
В этой статье предполагается, что вы уже выполнили следующие предварительные требования:
- VPN-шлюз настроен для проверки подлинности сертификата типа "точка — сеть" и типа туннеля IKEv2. Инструкции по настройке параметров сервера для подключений VPN-шлюз P2S — проверка подлинности на основе сертификата.
- Файлы конфигурации профиля VPN-клиента были созданы и доступны. Инструкции см. в разделе "Создание файлов конфигурации профиля VPN-клиента".
Требования к подключению
Чтобы подключиться к Azure с помощью клиента strongSwan и проверки подлинности сертификата через тип туннеля IKEv2, каждому клиенту, подключающимся, требуются следующие элементы:
- Каждый клиент должен быть настроен для использования strongSwan.
- Клиент должен иметь правильные сертификаты, установленные локально.
Рабочий процесс
Рабочий процесс для этой статьи:
- Установите strongSwan.
- Просмотрите файлы конфигурации профиля VPN-клиента, содержащиеся в созданном пакете конфигурации профиля VPN-клиента.
- Найдите все необходимые сертификаты клиента.
- Настройка strongSwan.
- Подключитесь к Azure.
Сведения о сертификатах
Для проверки подлинности сертификата сертификат должен быть установлен на каждом клиентском компьютере. Сертификат клиента, который вы хотите использовать, должен экспортироваться с закрытым ключом и содержать все сертификаты в пути сертификации. Кроме того, для некоторых конфигураций также потребуется установить сведения о корневом сертификате.
Дополнительные сведения о сертификатах для Linux см. в следующих статьях:
Установка 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
Просмотр файлов конфигурации профиля VPN-клиента
При создании пакета конфигурации профиля VPN-клиента все необходимые параметры конфигурации для VPN-клиентов содержатся в ZIP-файле конфигурации профиля VPN-клиента. Файлы конфигурации профиля VPN-клиента относятся к конфигурации VPN-шлюза P2S для виртуальной сети. Если после создания файлов есть какие-либо изменения в конфигурации VPN P2S, например изменения типа VPN-протокола или типа проверки подлинности, необходимо создать новые файлы конфигурации профиля VPN-клиента и применить новую конфигурацию ко всем VPN-клиентам, которые требуется подключить.
Найдите и распакуйте созданный и скачанный пакет конфигурации профиля VPN-клиента. В папке Generic можно найти все необходимые для конфигурации сведения. Azure не предоставляет файл mobileconfig для этой конфигурации.
Если вы не видите папку Generic, проверьте следующие элементы, а затем создайте ZIP-файл еще раз.
- Проверьте тип туннеля для вашей конфигурации. Скорее всего, вы не выбрали IKEv2 в качестве типа туннеля.
- В VPN-шлюзе убедитесь в том, что номер SKU отличается от базового. VPN-шлюз со SKU "Базовый" не поддерживает IKEv2. Затем выберите IKEv2 и создайте ZIP-файл еще раз для получения папки Generic.
Эта папка содержит следующие файлы:
- Файл VpnSettings.xml — содержит такие важные параметры, как адрес сервера и тип туннеля.
- Файл VpnServerRoot.cer содержит корневой сертификат, который требуется для проверки VPN-шлюза Azure при настройке подключения типа "точка — сеть".
Настройка VPN-клиента
После просмотра файлов профилей VPN-клиента перейдите к инструкциям, которые вы хотите использовать:
Шаги GUI
В этом разделе описана конфигурация с помощью графического интерфейса strongSwan. Приведенные ниже инструкции были созданы в Ubuntu 18.0.4. Ubuntu 16.0.10 не поддерживает графический пользовательский интерфейс strongSwan. Использовать Ubuntu 16.0.10 можно только с помощью командной строки. Следующие примеры могут не соответствовать отображаемым экранам в зависимости от версии Linux и strongSwan.
Откройте приложение Terminal, чтобы установить strongSwan и его Network Manager, выполнив команду из примера.
sudo apt install network-manager-strongswan
Выберите Settings (Параметры), а затем — Network (Сеть). Нажмите кнопку +, чтобы создать подключение.
В меню выберите IPSec/IKEv2 (strongSwan) и дважды щелкните.
На странице Add VPN (Добавление VPN) добавьте имя VPN-подключения.
Откройте файл VpnSettings.xml из папки Generic в загруженных файлах конфигурации профиля VPN-клиента. Найдите тег VpnServer и скопируйте имя, начиная с azuregateway и заканчивая .cloudapp.net.
Вставьте это имя в поле Address (Адрес) нового VPN-подключения в разделе Gateway (Шлюз). Затем щелкните значок папки в конце поля Certificate (Сертификат), перейдите в папку Generic и выберите файл VpnServerRoot.
В разделе Client (Клиент) подключения для параметра Authentication (Аутентификация) выберите Certificate/private key (Сертификат/закрытый ключ). Для параметров Certificate (Сертификат ) и Private key (Закрытый ключ) выберите созданные ранее сертификат и закрытый ключ. В разделе Options (Параметры) выберите Request an inner IP address (Запросить внутренний IP-адрес). а затем щелкните Добавить.
Включите подключение.
Шаги CLI
В этом разделе описана конфигурация с помощью интерфейса командной строки strongSwan.
Из файлов конфигурации профиля VPN-клиента Generic копируйте или переместите файл VpnServerRoot.cer в папку /etc/ipsec.d/cacerts.
Скопируйте или переместите файлы, созданные в /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
Выполните следующую команду, чтобы заметить имя узла. Это значение потребуется вам на следующем шаге.
hostnamectl --static
Откройте файл VpnSettings.xml и скопируйте значение
<VpnServer>
. Это значение потребуется вам на следующем шаге.Измените значения в приведенном ниже примере, а затем добавьте этот код в файл конфигурации /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
Добавьте значения секрета в /etc/ipsec.secret.
Имя PEM-файла должно соответствовать тому, что использовалось ранее в качестве файла ключа клиента.
: RSA ${USERNAME}Key.pem # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory.
Выполните следующие команды:
sudo ipsec restart sudo ipsec up azure
Следующие шаги
Дополнительные действия см. в статье портал Azure P2S.