Экспорт конфигурации клиентов OpenVPN в pfSense - генерация

Пакет OpenVPN Client Export в pfSense предназначен для автоматической генерации клиентских конфигурационных файлов и установщиков на основе параметров действующего OpenVPN-сервера. Вместо ручного создания .ovpn-файлов и копирования сертификатов администратор получает готовые к распространению пакеты для всех основных платформ: Windows, macOS, Linux, iOS и Android. Это исключает ошибки при ручном формировании конфигураций и существенно сокращает время подключения новых пользователей.

Утилита экспорта работает исключительно с серверами в режиме Remote Access (SSL/TLS или SSL/TLS + User Auth). Для site-to-site туннелей экспорт не предусмотрен, поскольку конфигурация обеих сторон формируется вручную.

Установка пакета

Пакет openvpn-client-export не входит в базовую установку pfSense и требует отдельной инсталляции через менеджер пакетов.

  1. Перейти в System > Package Manager > Available Packages.
  2. В строке поиска ввести openvpn-client-export.
  3. Нажать Install напротив найденного пакета, затем подтвердить установку.
  4. Дождаться завершения - процесс занимает 10-30 секунд в зависимости от скорости соединения.

После установки в меню VPN > OpenVPN появляется вкладка Client Export.

Внимание:

Перед использованием экспорта необходимо полностью настроить OpenVPN-сервер удалённого доступа: создать CA, серверный сертификат, пользовательские сертификаты и настроить сам сервер. Без действующего сервера вкладка экспорта не отобразит доступных конфигураций. Подробности настройки сервера описаны в разделе Сервер удаленного доступа .

Параметры экспорта

При переходе на вкладку VPN > OpenVPN > Client Export в верхней части страницы расположены глобальные параметры, применяемые ко всем экспортируемым конфигурациям.

Параметры экспорта клиентов OpenVPN

Рис. 1. Глобальные параметры экспорта клиентских конфигураций

Выбор сервера

В поле Remote Access Server необходимо выбрать экземпляр OpenVPN-сервера, для которого будут генерироваться клиентские конфигурации. В списке отображаются только серверы в режиме Remote Access.

Разрешение имени хоста

Параметр Host Name Resolution определяет, какой адрес будет указан в директиве remote клиентской конфигурации. Доступные варианты:

ВариантОписаниеПрименимость
Interface IP AddressIP-адрес WAN-интерфейса pfSenseСтатический внешний адрес
Automagic Multi-WAN IPsАвтоматическое формирование директив remote из правил проброса портовMulti-WAN с несколькими провайдерами
Automagic Multi-WAN DDNSИспользование DDNS-записей, привязанных к правилам пробросаMulti-WAN с динамическими адресами
Installation HostnameИмя хоста из System > General SetupHostname зарегистрирован в публичном DNS
Dynamic DNS HostnameDDNS-запись, настроенная на pfSenseОдин провайдер с динамическим адресом
OtherПроизвольный адрес или FQDNNAT перед pfSense, нестандартные сценарии

Для большинства установок с одним провайдером и динамическим IP-адресом следует использовать Dynamic DNS Hostname. При наличии статического адреса - Interface IP Address.

Дополнительные параметры подключения

ПараметрОписание
Verify Server CNУправляет проверкой Common Name серверного сертификата через verify-x509-name. Рекомендуется оставить в режиме автоматического определения
Block Outside DNSПринудительное использование DNS-серверов, полученных через VPN. Актуально для Windows 10 и новее, где возможна утечка DNS-запросов
Legacy ClientГенерация директив, совместимых с OpenVPN 2.4.x. Требуется при использовании устаревших клиентов
Silent InstallerДобавление флагов тихой установки в Windows-инсталлятор. Полезно для массового развёртывания через GPO или SCCM
Use Random Local PortИспользование случайного локального порта на стороне клиента. Рекомендуется включить для возможности одновременного подключения к нескольким VPN

Параметры сертификатов

ПараметрОписание
PKCS#11 Certificate StorageПоддержка аппаратных токенов и смарт-карт для хранения сертификатов
Microsoft Certificate StorageХранение сертификатов в хранилище Windows вместо файлов на диске
Password ProtectionЗащита паролем файла PKCS#12 или пакета Viscosity

Прокси-сервер

При необходимости подключения через HTTP-прокси следует указать его тип, адрес, порт и учётные данные. Эти параметры будут включены в экспортируемые конфигурации в виде директивы http-proxy.

Дополнительные директивы

Поле Additional configuration options позволяет добавить произвольные директивы OpenVPN в экспортируемые конфигурации. Например:

ping 10
ping-restart 60
hand-window 90

Каждая директива указывается на отдельной строке. Синтаксис соответствует формату конфигурационного файла OpenVPN.

Типы экспорта

Пакет предоставляет несколько форматов экспорта, ориентированных на различные платформы и клиентские приложения.

Тип экспортаФорматПлатформыОсобенности
Inline Configurations.ovpnWindows, macOS, LinuxЕдиный файл с встроенными сертификатами и ключами. Универсальный формат
Inline Configurations (Android).ovpnAndroidАдаптирован для OpenVPN for Android
Inline Configurations (OpenVPN Connect).ovpniOS, AndroidОптимизирован для приложения OpenVPN Connect
Bundled Configurations.zipWindows, macOS, LinuxАрхив с отдельными файлами: конфигурация, TLS-ключ, PKCS#12
Configuration File Only.ovpnВсеТолько конфигурационный файл без сертификатов
Windows Installer (2.5.x).exeWindows 10/11Установщик OpenVPN GUI с встроенной конфигурацией. 64- и 32-разрядные версии
Windows Installer (2.4.x).exeWindows 7/8/10Для устаревших систем, не поддерживающих OpenVPN 2.5+
Viscosity Bundle.visc.zipmacOS, WindowsПакет для клиента Viscosity (коммерческое приложение)

Рекомендации по выбору формата

  • Стандартное развёртывание: Inline Configuration (.ovpn) - работает с любым клиентом OpenVPN на любой платформе.
  • Массовое развёртывание на Windows: Windows Installer с включённой опцией Silent Installer - позволяет устанавливать VPN-клиент через GPO без взаимодействия с пользователем.
  • Мобильные устройства: Inline Configuration (OpenVPN Connect) - файл импортируется непосредственно в приложение OpenVPN Connect на iOS или Android.
  • Корпоративная среда macOS: Viscosity Bundle - если в организации используется клиент Viscosity.
  • Повышенные требования безопасности: Bundled Configuration с PKCS#12 и паролем - сертификаты защищены паролем, что предотвращает использование конфигурации при компрометации файла.

Экспорт для конкретного пользователя

Под блоком глобальных параметров отображается список доступных для экспорта клиентов. Состав списка зависит от режима аутентификации сервера:

  • SSL/TLS: отображаются все пользовательские сертификаты, выпущенные центром сертификации, указанным в настройках сервера.
  • SSL/TLS + User Auth: отображаются пользователи локальной базы или внешнего каталога, имеющие привязанные сертификаты.

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

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

Внимание:

Если в списке отсутствуют ожидаемые пользователи, необходимо проверить: привязан ли к пользователю сертификат, выпущен ли он тем же CA, который указан в настройках OpenVPN-сервера, и не отозван ли сертификат в CRL (Certificate Revocation List).

Настройка параметров подключения

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

В сценариях, когда pfSense расположен за NAT-устройством или балансировщиком нагрузки, внешний адрес VPN-сервера отличается от адреса на интерфейсе pfSense. В этом случае следует использовать вариант Other в поле Host Name Resolution и указать внешний IP-адрес или FQDN вручную.

DNS-серверы в экспортируемой конфигурации

DNS-серверы, передаваемые клиенту через VPN, настраиваются не в параметрах экспорта, а в настройках OpenVPN-сервера: VPN > OpenVPN > Servers > Edit > DNS Server 1-4. Пакет экспорта автоматически включает указанные DNS-серверы в генерируемые конфигурации.

Пользовательские директивы

Дополнительные параметры, указанные в поле Additional configuration options, добавляются в конец каждого экспортируемого файла конфигурации. Это позволяет принудительно задать маршруты, настроить keepalive-интервалы или указать параметры, отсутствующие в графическом интерфейсе.

Пример типичных дополнительных директив:

# Prevent DNS leaks on Windows
block-outside-dns

# Force all traffic through VPN
redirect-gateway def1

# Set connection timeout
connect-timeout 30

Сохранение настроек по умолчанию

Кнопка Save as default в нижней части блока параметров сохраняет текущие настройки экспорта. При следующем открытии вкладки сохранённые значения будут восстановлены автоматически. Это удобно при регулярной выдаче конфигураций новым пользователям.

Распространение конфигураций клиентам

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

  1. Защищённый канал передачи. Файлы конфигурации следует передавать только по зашифрованным каналам: корпоративная электронная почта с шифрованием, защищённый файловый обмен или личная передача на носителе. Передача через незашифрованные мессенджеры или публичные файлообменники недопустима.

  2. Защита паролем. При использовании формата Bundled Configuration или Viscosity Bundle рекомендуется включить опцию Password Protection. Это обеспечивает дополнительный уровень защиты при компрометации файла.

  3. Одноразовая ссылка. При невозможности личной передачи следует использовать сервисы одноразовых ссылок с ограничением по времени и количеству скачиваний.

  4. Отзыв при компрометации. При подозрении на компрометацию конфигурационного файла необходимо немедленно отозвать сертификат пользователя через System > Certificates и добавить его в CRL, привязанный к OpenVPN-серверу.

  5. Инструкция для пользователя. К конфигурационному файлу следует приложить краткую инструкцию по импорту: для Windows - установка OpenVPN GUI и размещение файла в C:\Users\<user>\OpenVPN\config\, для macOS - импорт в Tunnelblick или Viscosity, для мобильных устройств - импорт через OpenVPN Connect.

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

В списке экспорта отсутствуют пользователи

Типичные причины:

  • Пользователю не назначен сертификат. Проверить в System > User Manager > Users > Edit User > User Certificates.
  • Сертификат выпущен другим CA, отличным от указанного в настройках OpenVPN-сервера.
  • Сертификат отозван и присутствует в CRL.
  • OpenVPN-сервер настроен в режиме Peer-to-Peer, а не Remote Access.

Экспортированная конфигурация не подключается

  1. Проверить, что адрес в директиве remote файла .ovpn доступен из внешней сети. Для этого выполнить telnet <адрес> <порт> с клиентского устройства.
  2. Убедиться, что на WAN-интерфейсе pfSense создано правило, разрешающее входящий трафик на порт OpenVPN (по умолчанию UDP 1194).
  3. Если pfSense расположен за NAT, проверить, что проброс порта настроен корректно на вышестоящем маршрутизаторе.
  4. Проверить логи OpenVPN: Status > OpenVPN на стороне сервера, логи клиента - в интерфейсе клиентского приложения.

Несоответствие сертификатов

Ошибка TLS Error: TLS handshake failed или VERIFY ERROR указывает на проблему с сертификатами:

  • Серверный сертификат имеет тип Server Certificate, а не User Certificate.
  • Клиентский и серверный сертификаты выпущены одним CA.
  • Сертификаты не истекли - проверить сроки действия в System > Certificates.
  • TLS-ключ (static key) совпадает на сервере и в экспортированной конфигурации. При перегенерации TLS-ключа на сервере требуется повторный экспорт конфигураций.

Windows: ошибка при тихой установке

При использовании Silent Installer через GPO установщик может завершиться с ошибкой, если:

  • Политика запрещает установку TAP-драйвера без подтверждения администратора. Необходимо добавить сертификат издателя TAP-драйвера в хранилище доверенных издателей.
  • Антивирусное программное обеспечение блокирует установку. Следует добавить исключение для установщика OpenVPN.

Связанные разделы

Last updated on