VPN¶
VPN-шлюзы с поддержкой аутентификации по протоколу RADIUS делегируют проверку пароля и второго фактора (МФА) в Допуск. Учетные данные на шлюзе не хранятся — шлюз передает их на проверку, Допуск возвращает результат и текст запроса кода подтверждения.
Подробно описано подключение шлюза OpenVPN. Другие VPN-шлюзы с поддержкой аутентификации по протоколу RADIUS подключаются аналогично — достаточно указать на шлюзе адрес сервера Допуска и общий секрет из сервиса.
Подключение OpenVPN¶
При подключении к OpenVPN проверка пароля и второго фактора выполняется в Допуске по протоколу RADIUS. Схема работает поверх любой конфигурации OpenVPN: клиентский сертификат, если он используется, остается первым фактором самого шлюза.
Подключение выполняется в два шага:
- В клиенте OpenVPN ввести логин и пароль пользователя.
- При включенной МФА клиент запрашивает код подтверждения — код из приложения аутентификатора (TOTP) или код, отправленный на контакт пользователя.
Предварительные шаги¶
- OpenVPN-сервер под управлением Linux.
- Открыты порты
1812/udpи1813/udpот OpenVPN-сервера до сервера Допуска. - Клиенты OpenVPN актуальных версий — запрос кода подтверждения требует поддержки challenge/response в клиенте (OpenVPN GUI, OpenVPN Connect).
Настройка в Системе¶
-
В разделе Настройки включить признак RADIUS-сервер включен.
-
В разделе Сервисы создать сервис:
- В поле Протокол -
RADIUS - В поле IP/CIDR NAS - IP-адрес OpenVPN-сервера, подсеть CIDR или
0.0.0.0/0для любого адреса - В поле Общий секрет - произвольная строка, которую затем указываем на сервере OpenVPN
- В поле Требовать MFA - включить, если для подключений к VPN нужен второй фактор
- Включить признак Ограничение доступа по группам (необязательно) и в таблице Разрешенные группы указать группы, которым разрешено подключение
- В поле Протокол -
-
В разделе Настройки в поле Удалять домен из логина выбрать
user@DOMAIN(илиuser@DOMAIN и DOMAIN\user), если пользователи входят FQ-именем видаuser@red.ru. Без этого Допуск не найдет пользователя по имени с@ -
Включить МФА пользователям: в справочнике Пользователи заполнить поле Доступные способы МФА (например, Приложение аутентификатора), либо глобально - Принудительное включение МФА в разделе Настройки.
Настройка OpenVPN-сервера¶
Установить модуль pam_radius_auth:
На Debian/Ubuntu модуль устанавливается пакетом libpam-radius-auth
(sudo apt install libpam-radius-auth), имя модуля и конфигурационного файла те же.
Создать /etc/pam_radius_auth.conf (права 0600, владелец root):
| pam_radius_auth.conf | |
|---|---|
timeout=60 важен для МФА с доставкой кода на контакт (email, СМС).
Для TOTP достаточно меньшего значения.
Создать /etc/pam.d/openvpn:
| openvpn | |
|---|---|
Проверка учетных данных выполняется в Допуске, локальная проверка пароля на сервере OpenVPN не используется.
Добавить в конфигурацию сервера OpenVPN (обычно /etc/openvpn/server.conf) PAM-плагин:
| server.conf | |
|---|---|
Путь к плагину зависит от дистрибутива: /usr/lib64/openvpn/plugins/
или /usr/lib/openvpn/plugins/.
Перезапустить OpenVPN:
Настройка клиента¶
В конфигурационный файл клиента добавить запрос логина и пароля:
| client.ovpn | |
|---|---|
Подключение пользователя¶
- Подключиться к VPN, ввести логин и пароль пользователя в Допуске.
- Ввести код подтверждения — код из приложения аутентификатора или код, отправленный на контакт.
Примечание
По умолчанию OpenVPN переустанавливает криптографическую сессию каждый час
(reneg-sec 3600) и запрашивает учетные данные повторно. Чтобы не вводить код
подтверждения каждый час, увеличить интервал в конфигурации сервера,
например reneg-sec 86400 (сутки).
Проверка¶
Подключиться к VPN и убедиться, что в Журнале событий появилось событие аутентификации с маркером «RADIUS аутентификация», при включенной МФА — событие прохождения второго фактора.