Перейти к содержанию

VPN

VPN-шлюзы с поддержкой аутентификации по протоколу RADIUS делегируют проверку пароля и второго фактора (МФА) в Допуск. Учетные данные на шлюзе не хранятся — шлюз передает их на проверку, Допуск возвращает результат и текст запроса кода подтверждения.

Подробно описано подключение шлюза OpenVPN. Другие VPN-шлюзы с поддержкой аутентификации по протоколу RADIUS подключаются аналогично — достаточно указать на шлюзе адрес сервера Допуска и общий секрет из сервиса.

Подключение OpenVPN

При подключении к OpenVPN проверка пароля и второго фактора выполняется в Допуске по протоколу RADIUS. Схема работает поверх любой конфигурации OpenVPN: клиентский сертификат, если он используется, остается первым фактором самого шлюза.

Подключение выполняется в два шага:

  1. В клиенте OpenVPN ввести логин и пароль пользователя.
  2. При включенной МФА клиент запрашивает код подтверждения — код из приложения аутентификатора (TOTP) или код, отправленный на контакт пользователя.

Предварительные шаги

  • OpenVPN-сервер под управлением Linux.
  • Открыты порты 1812/udp и 1813/udp от OpenVPN-сервера до сервера Допуска.
  • Клиенты OpenVPN актуальных версий — запрос кода подтверждения требует поддержки challenge/response в клиенте (OpenVPN GUI, OpenVPN Connect).

Настройка в Системе

  1. В разделе Настройки включить признак RADIUS-сервер включен.

  2. В разделе Сервисы создать сервис:

    • В поле Протокол - RADIUS
    • В поле IP/CIDR NAS - IP-адрес OpenVPN-сервера, подсеть CIDR или 0.0.0.0/0 для любого адреса
    • В поле Общий секрет - произвольная строка, которую затем указываем на сервере OpenVPN
    • В поле Требовать MFA - включить, если для подключений к VPN нужен второй фактор
    • Включить признак Ограничение доступа по группам (необязательно) и в таблице Разрешенные группы указать группы, которым разрешено подключение
  3. В разделе Настройки в поле Удалять домен из логина выбрать user@DOMAIN (или user@DOMAIN и DOMAIN\user), если пользователи входят FQ-именем вида user@red.ru. Без этого Допуск не найдет пользователя по имени с @

  4. Включить МФА пользователям: в справочнике Пользователи заполнить поле Доступные способы МФА (например, Приложение аутентификатора), либо глобально - Принудительное включение МФА в разделе Настройки.

Настройка OpenVPN-сервера

Установить модуль pam_radius_auth:

sudo dnf install 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
# server[:port]   shared-secret   [timeout]
<адрес-сервера-допуска>   <общий-секрет>   60

timeout=60 важен для МФА с доставкой кода на контакт (email, СМС). Для TOTP достаточно меньшего значения.

Создать /etc/pam.d/openvpn:

openvpn
1
2
3
auth    required    pam_radius_auth.so
account required    pam_permit.so
session required    pam_permit.so

Проверка учетных данных выполняется в Допуске, локальная проверка пароля на сервере OpenVPN не используется.

Добавить в конфигурацию сервера OpenVPN (обычно /etc/openvpn/server.conf) PAM-плагин:

server.conf
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
setenv deferred_auth_pam 1

Путь к плагину зависит от дистрибутива: /usr/lib64/openvpn/plugins/ или /usr/lib/openvpn/plugins/.

Перезапустить OpenVPN:

sudo systemctl restart openvpn@server

Настройка клиента

В конфигурационный файл клиента добавить запрос логина и пароля:

client.ovpn
auth-user-pass

Подключение пользователя

  1. Подключиться к VPN, ввести логин и пароль пользователя в Допуске.
  2. Ввести код подтверждения — код из приложения аутентификатора или код, отправленный на контакт.

Примечание

По умолчанию OpenVPN переустанавливает криптографическую сессию каждый час (reneg-sec 3600) и запрашивает учетные данные повторно. Чтобы не вводить код подтверждения каждый час, увеличить интервал в конфигурации сервера, например reneg-sec 86400 (сутки).

Проверка

Подключиться к VPN и убедиться, что в Журнале событий появилось событие аутентификации с маркером «RADIUS аутентификация», при включенной МФА — событие прохождения второго фактора.