OpenVPN

OpenVPN - это открытое VPN-решение для создания туннелей с использованием SSL/TLS для шифрования трафика. OpenVPN позволяет устанавливать безопасные соединения между клиентами и серверами через публичные сети.

Характеристики используемых технологий в OpenVPN:

  • для обеспечения безопасности управляющего канала и потока данных используется OpenSSL

  • для передачи пакетов можно использовать UDP и TCP протоколы

  • использование шифрования для аутентификации

  • поддержка аутентификации по предустановленному ключу, сертификатам, логину и паролю, двухфакторная аутентификация (2FA)

  • может работать в режиме tun (виртуальный IP-туннель) или tap (эмуляция ethernet-сети)

Упрощённая схема работа OpenVPN:

  • клиент подключается к серверу через порт 1194/udp или 443/tcp (по умолчанию)

  • происходит TLS-рукопожатие (проверка сертификата), обмен ключами

  • если аутентификация прошла успешно - создаётся шифрованный туннель (виртуальный интерфейс tun/tap

  • клиент получает виртуальный IP-адрес из пула сервера

Главным преимуществом OpenVPN, в сравнении с IPsec, является простота конфигурирования: здесь меньше параметров и заметно легче экспортировать настройки для клиентов.

Общие сведения

Модуль OpenVPN включает в себя различные функции создания и настройки защищённых сетей для удалённых пользователей и межсетевых соединений.

Примечание

Изначально, раздел меню OpenVPN был разделён на серверы и клиенты, которые, фактически, являлись ролями для одного и того же процесса OpenVPN. В версии 1.13 добавлен новый инструмент Соединения, который предлагает доступ к конфигурации OpenVPN аналогично тому, как описано в документации у разработчиков. Этот новый инструмент заменит существующие опции клиента и сервера в будущих версиях TING.

Совет

При обновлении на новую основную (мажорную) версию Traffic Inspector Next Generation (TING), всегда читайте список изменений в версии, чтоб проверить, не требует ли ваша настройка переконфигурирования.

Примечание

OpenVPN в TING также может быть использован для создания туннеля между двумя точками, аналогично тому, что предлагает IPsec. Как правило, производительность IPsec выше, поэтому вариант с OpenVPN менее распространён. Однако, в мобильном использовании (удалённые пользователи) он весьма популярен - благодаря различным вариантам (мультифакторным) аутентификации и высокой гибкости доступных сетевых параметров.

В меню доступны следующие функции:

  • Соединения

    Новый инструмент для работы с соединениями, предоставляющий доступ к настройкам сервера и клиента

  • Серверы

    Инструмент конфигурации сервера [устарело]

  • Клиенты

    Инструмент конфигурации клиента [устарело]

  • Переопределение значение для конкретного клиента

    Настройка конфигураций для конкретного клиента на основе общего имени клиента X.509

  • Статус соединения

    Показывает статусы туннеля

  • Журнал

    Записи журнала, связанные с OpenVPN

Инфраструктура открытого ключа (X.509)

OpenVPN, чаще всего, используется в комбинации с инфраструктурой открытого ключа , когда мы используем центр сертификации, который подписывает сертификаты как для сервера, так и для клиентов (также известен, как «Режим TLS»). Более подробную информацию по этому вопросу можно найти в разделе Доверенные сертификаты.

Совет

Начиная с версии 1.13, TING может использовать OSCP для проверки клиентских сертификатов при использовании новых состояний. Убедитесь, что параметр Use OCSP (when available) включен в разделе Доверенные сертификаты настроек сервера, а используемый CA содержит соответствующее расширение AuthorityInfoAccess, как описано в разделе Доверенные сертификаты.

Правила межсетевого экрана

Чтобы разрешить трафик к туннелю на любом интерфейсе, необходимо правило, разрешающее создание туннеля. По умолчанию, для OpenVPN используется порт 1194 с протоколом UDP.

После установления связи, необходимо разрешить трафик внутри туннеля. Все интерфейсы OpenVPN, определённые в TING, сгруппированы как OpenVPN.

Совет

Чтобы использовать такие функции, как маршрутизация на основе политик или пользовательские маршруты, вы можете назначать базовые устройства и использовать их также, как физические интерфейсы.

Высокий уровень доступности [CARP]

При работе с сервером OpenVPN, для обеспечения настроек актив/пассив, не требуется ничего особенного, кроме использования виртуального адреса CARP. Поскольку сервер перестанет получать трафик, когда виртуальный адрес перестанет работать, то резервный адрес, в конечном итоге, автоматически прекратит обслуживание.

В клиентском режиме, экземпляр OpenVPN должен перестать пытаться переподключиться, когда он не находится в режиме ВЕДУЩЕЕ УСТРОЙСТВО, старый клиентский модуль отключает все экземпляры, непосредственно подключенные к интерфейсу. Новый модуль Состояния позволяет выбрать vhid для отслеживания. В большинстве случаев, явная привязка для клиента не требуется: по умолчанию для клиента используется параметр nobind.

Примечание

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

Примеры

Здесь приведены примеры некоторых, часто используемых, сценариев применения.

Примечание

При использовании примера для режима «сеть-сеть» с использованием SSL/TLS вместо общего ключа, надо обязательно настроить параметры Переопределение значений для конкретного клиента, чтобы правильно привязать удалённые сети к нужному клиенту.

Для настроек «Соединения»

Для настроек «Клиент | Сервер» (устарело)

Переопределение значений для конкретного клиента

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

Данный механизм использует директиву OpenVPN client-config-dir, которая предоставляет возможность использовать конкретные конфигурации клиента, основанные на общем имени (CN - Common Name) клиента X.509.

Содержимое этих конфигураций можно указать в веб-интерфейсе, в разделе VPN ‣ OpenVPN ‣ Переопределение значений для конкретного клиента. Кроме того, сервер аутентификации (Система ‣ Доступ ‣ Серверы) может также предоставлять данные клиента в особых случаях - при возврате свойств Framed-IP-Address, Framed-IP-Netmask и Framed-Route.

Примечание

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

В таблице ниже приведены наиболее важные параметры:

Переопределение значений для конкретного клиента

Параметр

Назначение

Включен

Снятый флажок отключает клиентское переопределение, но не удаляет его из списка

Серверы

Выбор серверов OpenVPN, к которым применяется данное переопределение. Если пусто - будет применяться ко всем.

Стандартное имя

Общее имя клиента по X.509, на которое распространяется это переопределение.

Туннельная сеть IPv4[6]

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

Локальная сеть

Сети, которые будут доступны клиенту.

Удалённая сеть

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

Redirect Gateway

Принудительно установить клиентский шлюз по умолчанию на этот туннель.

Примечание

При настройке туннельных сетей, убедитесь, что они вписываются в сеть, определённую на самом серверном туннеле, чтобы сервер мог отправлять данные обратно клиенту. Например, в сети 10.0.0.0/24 вы можете определить конкретную для клиента сеть, такую как 10.0.0.100/30. Чтобы уменьшить вероятность коллизии, также надо убедиться, что на сервере зарезервировано достаточно места - иначе адрес может быть уже назначен динамическому клиенту.

Совет

При использовании топологии OpenVPN «подсеть», сетевая маска, обычно, равна той, что определена в самом экземпляре. Так происходит потому, что шлюз, передаваемый клиенту, является первым адресом в сети и иначе недостижим.

Устранение общих неполадок

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

  • Locate overwrite for 'XXX' using server 'XXX' (vpnid: XXX) << попытка найти перезапись (аутентификация пользователя)

    • Обычно, за этим следует user 'XXX' authentificated using 'XXX' XXX << показывается имя пользователя, используемый аутентификатор, а также тип перезаписи и имя файла

  • client config created @ XXX << файл, записанный при подключении клиента (без аутентификации пользователя)

  • unable to write client config for XXX, missing target filename << не найдено подходящей перезаписи (без аутентификации пользователя)

По умолчанию, перезаписи сопоставляются по общему имени сертификата. Если в VPN ‣ OpenVPN ‣ Соединения) включена опция Username as CN (или Принудительное согласование входа в систему CSO для VPN ‣ OpenVPN ‣ Серверы (устарело)), то вместо общего имени будет использоваться имя пользователя.

Экспорт настроек клиента

Параметр

Назначение

Сервер удалённого доступа

Выбор сервера OpenVPN для экспорта профилей.

Тип экспорта

Формат файла для экспорта [1].

Имя хоста

Адреса или имена хостов, к которым этот клиент должен подключиться [2]. Разделяются запятой для нескольких записей.

Порт

Порт, на котором слушает OpenVPN-сервер.

Использовать случайный локальный порт

Если установлено, то для трафика клиента будет использоваться случайный локальный порт источника (lport). В противном случае, два клиента не смогут работать одновременно.

P12 пароль/подтверждение

Пароль для защиты файла PKCS#12 .

Проверка субъекта сервера

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

Системное хранилище сертификатов Windows

Если включено, будет загружаться сертификат и закрытый ключ из системных хранилищ сертификатов Windows (только для Windows/OpenSSL).

Отключить сохранение пароля

Устанавливает аутентификацию в экспортированной конфигурации при использовании аутентификации по паролю. Это предотвращает кэширование паролей OpenVPN в памяти.

Пользовательская конфигурация

Пользовательская конфигурация (опции для OpenVPN), которая будет возвращена в выходной файл без изменений.