Как настроить OpenConnect с использованием XML-файла?

Вопрос или проблема

Я не слишком знаком с VPN и у меня возникают трудности с подключением к сервису VPN с помощью OpenConnect.

Сервис VPN, который я приобрел, использует Cisco AnyConnect, который я не могу получить для Linux, но приложение OpenConnect должно делать то же самое. Я установил OpenConnect и графический интерфейс для него.

На других операционных системах, таких как Android, сервис VPN просто дает мне ссылку на клиент Cisco AnyConnect к XML-файлу, который AnyConnect затем использует для подключения к серверам. Не требуется никакой другой конфигурации в клиентском программном обеспечении, кроме как предоставить этот XML-файл, что заставляет меня думать, что этот XML-файл содержит всю необходимую информацию для подключения ко всем этим VPN-серверам – без настройки флажков, не требуется загрузка сертификатов и т. д.

Как только я предоставляю XML-файл, AnyConnect генерирует список серверов VPN, я выбираю один и ввожу свое имя пользователя и пароль в появившихся всплывающих окнах, и на этом все.

<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="false">false</UseStartBeforeLogon>
<StrictCertificateTrust>false</StrictCertificateTrust>
<RestrictPreferenceCaching>false</RestrictPreferenceCaching>
<RestrictTunnelProtocols>IPSec</RestrictTunnelProtocols>
<BypassDownloader>true</BypassDownloader>
<WindowsVPNEstablishment>AllowRemoteUsers</WindowsVPNEstablishment>
<CertEnrollmentPin>pinAllowed</CertEnrollmentPin>
<CertificateMatch>
<KeyUsage>
<MatchKey>Digital_Signature</MatchKey>
</KeyUsage>
<ExtendedKeyUsage>
<ExtendedMatchKey>ClientAuth</ExtendedMatchKey>
</ExtendedKeyUsage>
</CertificateMatch>
<BackupServerList>
<HostAddress>localhost</HostAddress>
</BackupServerList>
</ClientInitialization>
<ServerList>
<HostEntry>
<HostName>server 1</HostName>
<HostAddress>japan.examplevpn.com</HostAddress>
</HostEntry>
<HostEntry>
<HostName>server 2</HostName>
<HostAddress>amsterdam.examplevpn.com</HostAddress>
</HostEntry>  
</ServerList>
</AnyConnectProfile>

OpenConnect на Linux, похоже, не имеет возможности импортировать XML-файл.

Что мне нужно сделать, чтобы настроить каждое подключение в OpenConnect, основываясь на том, что содержится в XML-файле?

введите описание изображения здесь
введите описание изображения здесь

Вы должны преобразовать ваш XML в кодировку base 64
config.xml | tr -d ‘\n’ > config.xml.base64

Затем вручную откройте соединение с редактором в /etc/NetworkManager/system-connections/

Ваш XML конфигурационный файл должен быть сохранен как значение base64 в секции конфигурации [vpn-secrets]:

[vpn-secrets]
xmlconfig=

Это не тот ответ, который вы ищете, но, к сожалению, OpenConnect не может нативно поддерживать XML-файлы для чего-либо полезного. Он может прочитать имя хоста и группу пользователей из них, но ничего больше.

Исходный код показывает это явно: https://github.com/openconnect/openconnect/blob/master/xml.c

На практике это означает, что вы можете сделать максимум следующее:

<openconnect>
    <ServerList>
        <HostEntry>
            <HostName>vpn.example.com</HostName>
            <HostAddress>vpn.example.com</HostAddress>
            <UserGroup>test123</UserGroup>
        </HostEntry>
    </ServerList>
</openconnect>

Ответ или решение

Конфигурация OpenConnect с использованием XML-файла

Вопрос о том, как настроить OpenConnect с помощью XML-файла, является актуальным для пользователей, которые сталкиваются с проблемами подключения к VPN-сервисам, такими как Cisco AnyConnect. OpenConnect — это отличная альтернатива, особенно на Linux, однако важно понимать формат настроек и доступные функции.

Шаг 1: Анализ XML-файла

Чаще всего XML-файл содержит всю необходимую информацию для подключения к VPN, включая адреса серверов, параметры аутентификации и дополнительные настройки. В приведённом вами примере XML-файла, можно выделить ключевые элементы:

  • ServerList: содержит список хостов для подключения.
  • HostEntry: обеспечивает информацию о каждом сервере (имя и адрес).
  • ClientInitialization: предоставляет дополнительные параметры, такие как необходимость строгого доверия к сертификатам.

Шаг 2: Подготовка конфигурации для OpenConnect

К сожалению, OpenConnect не поддерживает прямую импортировку XML-файлов. Однако, используя информацию из вашего XML-файла, вы можете настроить OpenConnect с помощью командной строки или менеджера сетевых подключений, таких как NetworkManager.

Конфигурация с помощью командной строки

  1. Установка OpenConnect: Убедитесь, что OpenConnect установлен на вашей системе. Это можно сделать с помощью следующей команды:

    sudo apt-get install openconnect
  2. Запуск OpenConnect: Теперь вы можете запустить OpenConnect, указав сервер VPN:

    sudo openconnect japan.examplevpn.com
  3. Аутентификация: После этого вам будет предложено ввести ваше имя пользователя и пароль. Если ваш VPN требует дополнительные параметры аутентификации (например, двухфакторная аутентификация), следуйте указаниям, отображаемым в терминале.

Шаг 3: Использование NetworkManager для настройки VPN

Если вы предпочитаете графический интерфейс, вы можете настроить VPN через NetworkManager:

  1. Добавление нового VPN-соединения:

    • Откройте приложение "Сеть" или "Настройки".
    • Перейдите в раздел "Сеть" или "Виртуальные частные сети" и выберите "Добавить новое соединение".
  2. Выбор типа соединения:

    • Выберите "OpenConnect" в качестве типа соединения.
  3. Ввод информации:

    • Введите название подключения, адрес сервера (например, japan.examplevpn.com) и другие параметры, которые можете найти в вашем XML-файле. Например, если в XML-файле указаны также группы пользователей, вы можете добавить их в поле "User Group".
  4. Сохранение и подключение:

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

Заключение

Хотя OpenConnect не может напрямую использовать XML-файлы, вы можете вручную извлекать необходимую информацию из этих файлов и применять её для настройки соединения. Это позволяет использовать все преимущества OpenConnect на Linux. В случае возникновения трудностей, обратитесь к документации OpenConnect или сообществам, таким как форумы и репозитории GitHub, для получения помощи и дополнительной информации.

Оцените материал
Добавить комментарий

Капча загружается...