- Начало работы
- Интеграция
- HTTP API
- OpenID Connect
- RADIUS протокол
- RADIUS адаптер
- LDAP адаптер
- Портал самообслуживания
- MULTIFACTOR Directory Sync
- Windows Logon
- Регистрация пользователей
- .NET Core
- 1с-Bitrix24
- 1с-плагин двухфакторной аутентификации
- ADFS
- ASP.NET
- Ansible AWX
- Atlassian Cloud
- BearPass
- Check Point VPN
- Cisco ASA VPN
- Citrix Gateway
- FortiGate VPN
- HRBOX
- Huawei Cloud
- Huawei VPN
- Ideco UTM
- Keycloak
- Let's Encrypt Windows Server
- Linux logon (GUI)
- Linux SSH
- Linux SUDO
- Microsoft Entra ID
- MikroTik L2TP VPN
- NGate VPN
- Network Policy Server (NPS)
- Nextcloud
- OpenVPN
- OpenVPN + AD
- OpenVPN Access Server
- OpenVPN pfSense
- Outlook Web Access (OWA)
- Passwork
- RD Gateway (RDGW)
- Redmine
- UserGate VPN
- VMware Horizon Cloud
- VMware Horizon View
- VMware vCloud Director
- VMware vSphere
- Vault
- ViPNET
- Windows VPN
- Yandex.Cloud
- Yandex 360
- Zabbix
- АйТи-Бастион
- Континент 4 VPN
- МТС Линк (бывш. webinar.ru)
- WordPress
- С-Терра VPN
- Точка доступа Wi-Fi
- ФПСУ-IP/Клиент
Настройка двухфакторной аутентификации в OpenVPN
В статье описывается настройка сервера OpenVPN для включения двухфакторной аутентификации.
OpenVPN — широко известный, бесплатный VPN сервер с открытым исходным кодом, который повсеместно используется для предоставления защищенного доступа сотрудников к внутренним ресурсам организации.
В качестве проверки подлинности для подключения к VPN серверу, как правило используется комбинация из ключа и логина/пароля пользователя. При этом, сохраненный на клиенте пароль превращает весь набор в единый фактор, не обеспечивающий должный уровень безопасности. Злоумышленник, получив доступ к клиентскому компьютеру, получает доступ и к VPN серверу в том числе. Особенно это касается подключения с машин под управлением Windows.
Использование второго фактора на 99% сокращает риск неправомерного доступа и совершенно не усложняет процесс подключения для пользователей.
Возможные способы аутентификации:
Мобильное приложение Multifactor
Telegram
Звонок (нужно принять вызов и нажать #)
Аппаратные OTP токены
Приложения OTP: Google Authenticator или Яндекс.Ключ
Принцип работы
- OpenVPN использует плагин openvpn-plugin-auth-pam для проверки подлинности
- Плагин запрашивает второй фактор через RADIUS протокол в сервисе MULTIFACTOR
- Пользователь подтверждает в телефоне запрос доступа или вводит одноразовый код и подключается к VPN
OpenVPN можно настроить в двух конфигурациях: с проверкой логина и пароля пользователя на сервере и без проверки. Во втором случае, одним из факторов аутентификации будет являться сертификат пользователя.
Установка OpenVPN сервера
В интернете множество статей, описывающих процесс установки и настройки OpenVPN, поэтому мы не будем их дублировать. Если вам нужна помощь, в конце статьи есть несколько ссылок на обучающие материалы.
Настройка MULTIFACTOR
Зайдите в систему управления MULTIFACTOR, зайдите в раздел "Ресурсы" и создайте новый OpenVPN. После создания вам будут доступны два параметра: NAS-IDentifier и Shared Secret, они потребуются для последующий настройки.
Настройка OpenVPN сервера
Откройте файл /etc/openvpn/server.conf и добавьте плагин для аутентификации с помощью PAM модуля
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn setenv deferred_auth_pam 1
Плагин может находиться в директории /usr/lib/openvpn/plugins/ или /usr/lib64/openvpn/plugins/ в зависимости от вашей системы.
Далее создайте файл для service-type openvpn
$ sudo vi /etc/pam.d/openvpn
и впишите в него
auth required pam_radius_auth.so skip_passwd client_id=NAS-IDentifier
auth substack password-auth
account substack password-auth
auth sufficient pam_radius_auth.so skip_passwd client_id=NAS-IDentifier
account sufficient pam_permit.so
session sufficient pam_permit.so
auth sufficient pam_radius_auth.so client_id=NAS-IDentifier
account sufficient pam_permit.so
session sufficient pam_permit.so
первая строчка подключает PAM модуль pam_radius_auth с параметрами:
- skip_passwd — отключает передачу в RADIUS сервер MULTIFACTOR пароль пользователя.
- client_id — вставьте вместо NAS-Identifier соответствующий параметр из настроек VPN ресурса Мультифактор. Все возможные параметры описаны в документации к модулю.
Вторая и третья строки включают системную проверку логина, пароля и прав пользователя на вашем сервере вместе с вторым фактором аутентификации.
Далее необходимо установить модуль pam_radius_auth
$ sudo yum -y install epel-release $ sudo yum -y install pam_radius
Откройте для редактирования файл /etc/pam_radius.conf и укажите адрес RADIUS сервера Мультифактора
radius.multifactor.ru shared_secret 40
где:
- radius.multifactor.ru — адрес сервера
- shared_secret — скопируйте из соответствующего параметра настроек VPN ресурса Мультифактор
- 40 — таймаут ожидания запроса
Примечание
Остальные сервера необходимо удалить или закомментировать (поставить в начале точку с запятой)
Перезапустите OpenVPN
$ sudo systemctl restart openvpn@server
Настройка клиента
Включите в конфигурационный файл клиента запрос логина и пароля пользователя
auth-user-pass
Примечание
Если вы настроили OpenVPN без проверки логина и пароля, то указывайте логин, который знает Мультифактор и произвольный пароль.
Проверка
Запустите клиента для OpenVPN, подключитесь к серверу, укажите логин и пароль. На телефон придет запрос доступа с двумя кнопками

Одна кнопка разрешает доступ, вторая блокирует.
Теперь смело можно сохранять пароль на клиенте, второй фактор надежно защитит ваш OpenVPN сервер от несанкционированного доступа.
Если что-то не работает
Последовательно проверьте, что вы ничего не упустили:
- С сервера открыт доступ по UDP порту 1812 на адрес radius.multifactor.ru
- Параметры NAS-Identifier и Shared Secret указаны корректно
- В системе MULTIFACTOR заведен пользователь и ему предоставлен доступ в группу пользователей VPN
- Пользователь настроил способ аутентификации через Telegram
Если ничего не сработало, обращайтесь, поможем.
Смотрите также:
- How To Set Up and Configure an OpenVPN Server on CentOS 7
- Настройка сервера OpenVPN в Ubuntu 18.04
- Установка и настройка OpenVPN на сервере под управлением CentOS 7