Настройка двухфакторной аутентификации OpenVPN Access Server
Общая информация
Защитите VPN подключения OpenVPN Access Server вторым фактором аутентификации с помощью MFA решения сервиса Мультифактор.
Возможные способы аутентификации:
Мобильное приложение MultiFactor
Telegram
Звонок (нужно принять вызов и нажать #)
Аппаратные OTP токены
Приложения OTP: Google Authenticator или Яндекс.Ключ
Вариант интеграции с Мультифактор зависит от вашего поставщика учётных записей:
- Поставщик учётных записей – Active Directory
Интеграция по RADIUS-протоколу. - Поставщик учётных записей – локальная директория учётных записей OpenVPN AS
Интеграция с помощью Post-auth аутентификации.
Видео-презентация
Схема работы
- RADIUS
- Post-auth
- Пользователь подключается к VPN, вводит логин и пароль учетной записи в клиенте OpenVPN Connect;
- OpenVPN Access Server подтверждает корректность логина и пароля в Active Directory через Multifactor Radius Adapter;
- Мультифактор запрашивает второй фактор аутентификации: push в мобильном приложении или Telegram; одноразовый OTP или СМС-код; звонок, на который необходимо ответить и нажать #;
- Пользователь подтверждает запрос и подключается к VPN.
- Пользователь подключается к VPN, вводит логин и пароль локальной учётной записи в клиенте OpenVPN Connect;
- OpenVPN Access Server подтверждает корректность локального логина и пароля;
- Post-auth плагин Мультифактор запрашивает второй фактор аутентификации: push в мобильном приложении или Telegram, одноразовый OTP или СМС-код, звонок;
- Пользователь подтверждает запрос и подключается к VPN.
I. RADIUS интеграция
Используйте этот вариант интеграции, если ваш поставщик учётных записей – Active Directory.
Первые шаги
- Создайте аккаунт и войдите в административную панель Мультифактор.
- В разделе ресурсы кликните Добавить ресурс. В появившемся списке выберите Другой в разделе Сетевой экран. Заполните необходимые поля для того, чтобы получить параметры NAS Identifier и Shared Secret. Эти параметры потребуются для завершения настройки.
- Загрузите, установите и настройте компонент Multifactor RADIUS Adapter (Windows, Linux).
Настройка OpenVPN Access Server
- Зайдите в административную панель OpenVPN Access Server;
- В разделе Authentication, перейдите в подраздел RADIUS и кликните Use RADIUS;
- В разделе RADIUS Authentication Method выберите метод аутентификации PAP;
- В разделе RADIUS Settings укажите адрес RADIUS-компонента и Shared Secret из настроек компонента;
- Кликните Save Settings для сохранения настроек;
- Чтобы изменения вступили в силу кликните Update Running Server.
Убедитесь, что в списке только один RADIUS сервер, иначе OpenVPN AS будет отправлять запросы во все поочередно.
II. Post-auth интеграция
Используйте этот вариант интеграции, если ваш поставщик учётных записей – локальная директория учётных записей OpenVPN AS.
Первые шаги
- Создайте аккаунт и войдите в административную панель Мультифактор.
- В разделе ресурсы кликните Добавить ресурс. В появившемся списке выберите Другой в разделе Сетевой экран. Заполните необходимые поля для того, чтобы получить параметры NAS Identifier и Shared Secret. Эти параметры потребуются для завершения настройки.
- В случае аутентификации локальных пользователей OpenVPN AS создайте соответствующих пользователей в системе Мультифактор. Перейдите в раздел пользователи и кликните Добавить пользователя или Импортировать.
- Загрузите Post-auth плагин Мультифактор для OpenVPN Access Server.
Настройка Post-auth плагина
Откройте файл
post_auth_multifactor.py
c помощью текстового редактора. В файле необходимо задать значения параметрам NAS_IDENTIFIER и SHARED_SECRET....
NAS_IDENTIFIER = ''
SHARED_SECRET = ''
HOST = 'api.multifactor.ru'
...Сохраните изменения и закройте текстовый редактор.
Разместите скрипт
post_auth_multifactor.py
в директории/usr/local/openvpn_as/scripts/
на сервере OpenVPN Access Server.$ scp post_auth_multifactor.py \
<SSH_USER>@<AS_HOST>:/home/<SSH_USER>/post_auth_multifactor.pyЗамените
<SSH_USER>
и<AS_HOST>
на фактические имя пользователя и IP-адрес сервера. Сначала загрузите скрипт в домашнюю директорию, т.к. по умолчанию у административного пользователя OpenVPN AS нет прав на запись безsudo
.Если сервер был развернут с помощью средств виртуализации Microsoft Hyper-V, VMWare ESXi, Amazon AWS, Microsoft Azure, Google Cloud Platform и других, SSH вход может быть защищён приватным ключом. В таком случае, задайте путь к ключу с помощью опции
-i <PATH_TO_PRIVATE_KEY>
.Откройте новую SSH-сессию.
$ ssh <SSH_USER>@<AS_HOST>
Переместите
post_auth_multifactor.py
в директорию со скриптами.$ sudo mv post_auth_multifactor.py /usr/local/openvpn_as/scripts/ \
post_auth_multifactor.pyУбедитесь, что файл является исполняемым.
$ sudo chmod a+x /usr/local/openvpn_as/scripts/post_auth_multifactor.py
Установка Post-auth плагина
Задайте
post_auth_multifactor.py
Post-auth скриптом по умолчанию с помощью инструмента командной строки sacli. Если у SSH-пользователя нет прав на выполнениеsudo
, задайте имя административного пользователя из веб-консоли с помощью опции-a <USER>
.$ sudo /usr/local/openvpn_as/scripts/sacli \
--key "auth.module.post_auth_script" \
--value_file="/usr/local/openvpn_as/scripts/post_auth_multifactor.py" \
ConfigPutЗапустите сервисы.
$ sudo /usr/local/openvpn_as/scripts/sacli start
Тестирование входа
После настройки и установки Post-auth плагина Мультифактор попробуйте подключиться к VPN с помощью веб-интерфейса или клиента OpenVPN Connect.
Если установка прошла успешно, клиент запросит второй фактор для аутентификации с помощью SMS или OTP-кода.
- Для аутентификации по SMS или OTP-коду введите код в отдельном окне ввода OpenVPN Connect.
- Для аутентификации с помощью мобильного приложения Мультифактор (iOS, Android) или Telegram нажмите Да, это я в уведомлении с запросом подтверждения аутентификации.
Журналы
Журналы доступны в файлах /var/log/syslog
и /var/log/openvpnas.log
.
Решение проблем
Причины наиболее частных проблем с аутентификацией:
- Вы используете bootstrap-пользователя
openvpn
, для которого игнорируются правила post-auth аутентификации. Пользователя рекомендуется отключать после полной настройки сервера. Инструкции по отключению; - Вы используете auto-login профиль, который игнорирует правила Post-auth;
- Логины пользователей в админ-панели Multifactor не соответствуют логинам локальных пользователей в OpenVPN Access Server;
- В файле
post_auth_multifactor.py
неверно указаны NAS Identifier и Shared Secret; - Плагин не имеет прав на исполнение
a+x
; - Плагин некорректно установлен;
- Сервер не был перезапущен после установки плагина.
Смотрите также: