Двухфакторная аутентификация в OpenVPN позволяет обеспечить безопасное подключение к корпоративной сети по схеме «логин и пароль + код из телефона». В этом пошаговом гайде разберём, как выполнить настройку OpenVPN сервера и клиента с использованием RADIUS и сервиса двухфакторной аутентификации ID.
Что такое двухфакторная аутентификация в OpenVPN
Двухфакторная аутентификация в OpenVPN — это механизм, при котором для подключения к VPN используется не один, а два независимых фактора подтверждения. В базовой схеме OpenVPN проверяет только логин и пароль пользователя. При включении второго фактора аутентификация становится двухуровневой: к паролю добавляется одноразовый код, полученный на личное устройство пользователя.
Технически OpenVPN сам по себе не генерирует коды и не управляет вторым фактором. Он передаёт данные аутентификации во внешние компоненты — PAM и RADIUS. Уже на их стороне происходит проверка логина, пароля и одноразового кода, сгенерированного, например, в мобильном приложении Коннекта от Контур.Эгиды, работающем в связке с сервисом ID.
В результате OpenVPN остаётся точкой входа, а вся логика двухфакторной авторизации выносится в специализированную систему управления доступом.
Зачем нужна дополнительная защита VPN
VPN-соединение — это прямой доступ во внутреннюю сеть компании. Через него пользователь может получать доступ к корпоративным сервисам, файловым хранилищам, административным интерфейсам и внутренним API.
Если используется только пароль, безопасность VPN полностью зависит от:
- сложности пароля;
- дисциплины пользователей;
- отсутствия фишинга и утечек.
На практике пароли часто становятся слабыми звеньями: их перехватывают, подбирают или получают через социальную инженерию. В таком случае злоумышленник получает тот же уровень доступа, что и легитимный пользователь.
Дополнительная защита VPN решает эту проблему за счёт разделения факторов:
первый фактор — то, что пользователь знает (логин и пароль);
второй фактор — то, чем пользователь владеет (телефон с приложением для генерации кодов).
Даже если пароль скомпрометирован, вход без второго фактора невозможен. Это существенно снижает риск взлома и делает VPN с подтверждением устойчивым к большинству массовых атак.
Коннект от Контур.Эгиды
Организуйте безопасный и удобный доступ к рабочим ресурсам компании из любой точки мира.
Как работает схема «пароль плюс код»
С точки зрения пользователя схема выглядит просто, но внутри она состоит из нескольких последовательных проверок.
- Пользователь запускает OpenVPN Connect или OpenVPN GUI и выбирает профиль подключения. Клиент запрашивает данные для аутентификации.
- Пользователь вводит логин и пароль. Эти данные OpenVPN не проверяет самостоятельно, а передаёт дальше по цепочке.
- OpenVPN передаёт введённые данные в PAM — системный механизм аутентификации на сервере. PAM отвечает за то, каким образом и через какие модули будет выполняться проверка.
- PAM перенаправляет запрос в RADIUS-адаптер. На этом этапе система уже ожидает не только пароль, но и подтверждение второго фактора.
- Пользователь получает одноразовый код в мобильном приложении Коннект и вводит его вместе с логином и паролем. Этот код действителен ограниченное время и не может быть использован повторно.
- RADIUS сверяет введённый код с данными сервиса ID. Если код корректен и пользователь имеет право на доступ, аутентификация считается успешной.
- Только после успешной проверки всех факторов OpenVPN устанавливает защищённое VPN-соединение и предоставляет доступ к сети.
Важно:
- OpenVPN не знает, как формируется код;
- PAM не хранит данные второго фактора;
- вся логика подтверждения сосредоточена в системе 2FA.
Шаг 1: Создание конфигурации ресурса
На этом этапе создаётся базовая логика двухфакторной аутентификации: какие факторы используются, кто проходит проверку и какие параметры будет применять OpenVPN.
Что понадобится на сервере
Для настройки сервера VPN с двухфакторной аутентификацией потребуются:
- сервер OpenVPN;
- доступ в кабинет администратора ID;
- сетевой доступ к RADIUS-адаптеру.
Выбор приложения для кодов (Коннект)
Генерация кодов выполняется через приложение Коннект. Оно не устанавливается на сервер и используется только пользователями для мобильного подтверждения входа.
Создание конфигурации в ID
- Перейдите в кабинет администратора ID.
- Откройте раздел Ресурсы.
- Выберите OpenVPN.
- Добавьте новую конфигурацию.
- Укажите:
- название ресурса;
- платформу сервера;
- порт RADIUS (по умолчанию 1812);
- Shared Secret;
- второй фактор — OTP-код;
- правило запроса второго фактора.
- Сохраните настройки и скачайте архив.
Полученные профили для OpenVPN и параметры RADIUS используются на следующих шагах.
Шаг 2: Подключение RADIUS-адаптера к инфраструктуре
RADIUS-адаптер — связующее звено между OpenVPN и системой двухфакторной аутентификации.
Установка RADIUS-адаптера на Windows
- Установите:
- .NET Runtime 8;
- ASP.NET Core Runtime 8 (x64/x86/Arm64 — по архитектуре сервера).
- Распакуйте архив конфигурации.
- Перейдите в папку RadiusProxy.
- Запустите windows_install.bat от имени администратора.
- После установки убедитесь, что служба RADIUS:
- запущена;
- слушает указанный порт (обычно UDP 1812);
- не блокируется firewall.
Адаптер может работать:
- в режиме службы Windows (для постоянной эксплуатации);
- в консольном режиме (для первичной отладки).
Установка RADIUS-адаптера на Linux
- Установите зависимости:
- .NET Runtime 8;
- ASP.NET Core Runtime 8;
- библиотеку libldap-2.5-0 (обязательно для Ubuntu 24).
- Распакуйте архив конфигурации.
- Перейдите в каталог RadiusProxy.
- Запустите установочный скрипт: sudo bash./linux_install.sh
- Скрипт автоматически:
- создаст службу systemd;
- развернёт файлы в /opt/kontur/RadiusProxy;
- настроит права доступа;
- установит недостающие библиотеки.
- Проверьте статус службы: sudo systemctl status RadiusProxy
Шаг 3: Установка модуля PAM to RADIUS
Этот модуль позволяет OpenVPN использовать RADIUS для проверки логина и одноразового кода.
Установка на Debian / Ubuntu
sudo apt-get update
sudo apt-get install libpam-radius-auth
Установка на CentOS / RedHat / Fedora
Через yum:
sudo yum install epel-release
sudo yum install pam_radius
Через dnf:
sudo dnf install epel-release
sudo dnf install pam_radius
Шаг 4: Настройка модуля PAM to RADIUS
После установки необходимо указать, куда отправлять запросы аутентификации.
1. Откройте файл конфигурации:
sudo nano /etc/pam_radius_auth.conf
2. Добавьте строку:
IP_СЕРВЕРА:1812 SHARED_SECRET 60
где:
- IP_СЕРВЕРА — адрес сервера с RADIUS-адаптером;
- 1812 — порт (если не меняли);
- SHARED_SECRET — значение из кабинета администратора;
- 60 — таймаут ожидания подтверждения.
3. Удалите примеры серверов, если они есть.
4. Сохраните файл.
Шаг 5: Настройка сервера OpenVPN
Подключение PAM-плагина
- Откройте конфигурацию сервера OpenVPN, например:
sudo nano /etc/openvpn/server/server.conf - Добавьте строку подключения плагина:
plugin /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
(путь может отличаться — при необходимости найдите файл через find). - Добавьте параметр отложенной аутентификации:
setenv deferred_auth_pam 1
Настройка PAM-сервиса OpenVPN
- Откройте или создайте файл:
sudo nano /etc/pam.d/openvpn - Добавьте:
- auth required pam_radius_auth.so
- account sufficient pam_permit.so
- session sufficient pam_permit.so
- Сохраните изменения.
- Перезапустите OpenVPN:
- sudo systemctl restart openvpn
Шаг 6: Настройка клиента OpenVPN
Подготовка клиентского профиля
- Откройте клиентский файл.ovpn.
- Добавьте строку:
- auth-user-pass
- Сохраните файл и импортируйте его в OpenVPN Connect или OpenVPN GUI.
Как проходит подключение
При подключении пользователь:
- Вводит логин и пароль.
- Получает запрос второго фактора.
- Вводит одноразовый код из мобильного приложения.
- После проверки устанавливается защищенное VPN-соединение.
Перед первым подключением к VPN необходимо зарегистрировать пользователя в системе двухфакторной аутентификации и привязать его мобильное устройство. Без этого одноразовый код у пользователя не появится, даже если OpenVPN и RADIUS настроены корректно.
Шаг 7: Добавление пользователя в кабинет ID
- Перейдите в кабинет администратора ID
- Откройте раздел Пользователи — Приглашенные
- Отправьте приглашение пользователю на корпоративную почту
После этого пользователь появляется в системе ID, но второй фактор ещё не активирован — требуется привязка мобильного устройства.
Шаг 8: Подключение мобильного приложения и активация OTP
Для генерации одноразовых кодов используется мобильное приложение Коннект.
- Пользователь проходит по ссылке из письма-приглашения, которое ему отправлял администратор.
- Нужно настроить второй фактор для этого в личном кабинете нажать “Начать настройку”, а затем выбрать способ подтверждение через Коннект.
Каждый код:
- действует ограниченное время;
- привязан к конкретному пользователю и устройству;
- не может быть использован повторно.
Если пользователь не зарегистрирован в ID или у него не привязано мобильное устройство, проверка второго фактора завершится ошибкой.
Шаг 9. Проверка и тестирование
Первый запуск подключения
При корректной настройке система запрашивает:
- VPN логин и пароль;
- одноразовый код.
Что делать при ошибках
- openvpn user authentication failed — проверить логин и Shared Secret;
- код не принимается — проверить синхронизацию времени и привязку пользователя;
- таймаут — увеличить время ожидания в настройках RADIUS.
Информационная безопасность бизнеса
Контур.Эгида — сервисы информационной безопасности: уменьшение рисков внутренних угроз и утечек конфиденциальных данных, предотвращение атак злоумышленников.