В статье описана настройка OpenVPN-сервера для включения двухфакторной аутентификации с помощью Telegram-бота, который будет отправлять запрос на подтверждение при подключении.
OpenVPN — это известный бесплатный VPN-сервер с открытым исходным кодом, который широко используется для организации безопасного доступа сотрудников к внутренним ресурсам организации.
В качестве аутентификации для подключения к VPN-серверу обычно используется комбинация ключа и логина/пароля пользователя.
При этом пароль, хранящийся на клиенте, превращает весь набор в единый фактор, не обеспечивающий должного уровня безопасности.
Злоумышленник, получив доступ к клиентскому компьютеру, также получает доступ к VPN-серверу.
Это особенно актуально для подключений с компьютеров под управлением Windows. Использование второго фактора снижает риск несанкционированного доступа на 99% и совершенно не усложняет процесс подключения для пользователей.
Сразу оговорюсь: для реализации вам потребуется подключить сторонний сервер аутентификации multifactor.ru, на котором вы сможете использовать бесплатный тариф для своих нужд.
Принцип действия
- OpenVPN использует плагин openvpn-plugin-auth-pam для аутентификации.
- Плагин проверяет пароль пользователя на сервере и запрашивает второй фактор по протоколу RADIUS в сервисе «Мультифактор».
- Мультифактор отправляет пользователю через Telegram-бот сообщение с подтверждением доступа
- Пользователь подтверждает запрос доступа в чате Telegram и подключается к VPN.
Установка сервера OpenVPN
В Интернете есть множество статей, описывающих процесс установки и настройки OpenVPN, поэтому не будем их дублировать.Если вам нужна помощь, в конце статьи есть несколько ссылок на учебные пособия.
Настройка мультифактора
Идти к Многофакторная система управления , перейдите в раздел «Ресурсы» и создайте новый VPN. После создания вам будут доступны два варианта: NAS-идентификатор И Общий секрет , они потребуются для последующей настройки.
В разделе «Группы» перейдите в настройки группы «Все пользователи» и снимите флажок «Все ресурсы», чтобы к VPN-серверу могли подключаться только пользователи определенной группы.
Создайте новую группу «Пользователи VPN», отключите все методы аутентификации, кроме Telegram, и укажите, что у пользователей есть доступ к созданному VPN-ресурсу.
В разделе «Пользователи» создайте пользователей, которые будут иметь доступ к VPN, добавьте их в группу «Пользователи VPN» и отправьте им ссылку для настройки второго фактора аутентификации.
Логин пользователя должен совпадать с логином на VPN-сервере.
Настройка OpenVPN-сервера
Открыть файл /etc/openvpn/server.conf и добавьте плагин для аутентификации с помощью модуля PAMПлагин может находиться в каталоге /usr/lib/openvpn/plugins/ или /usr/lib64/openvpn/plugins/ в зависимости от вашей системы.plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
Далее вам необходимо установить модуль pam_radius_auth. $ sudo yum install pam_radius
Откройте файл для редактирования /etc/pam_radius.conf и укажите адрес RADIUS-сервера Мультифактора radius.multifactor.ru shared_secret 40
Где:
- radius.multifactor.ru — адрес сервера
- shared_secret — копия из соответствующего параметра настроек VPN
- 40 секунд - таймаут ожидания запроса с большим запасом
Остальные сервера необходимо удалить или закомментировать (поставить точку с запятой в начале)Далее создайте файл для сервиса типа 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
Первая строка подключает модуль PAM pam_radius_auth с параметрами:
- Skip_passwd — отключает передачу пароля пользователя на сервер RADIUS Multifactor (ему его знать не обязательно).
- client_id — замените [NAS-Identifier] на соответствующий параметр из настроек VPN-ресурса.
Все возможные параметры описаны в документация к модулю .
Перезапустите OpenVPN. $ sudo systemctl restart openvpn@server
Настройка клиента
Включить запрос логина и пароля пользователя в файл конфигурации клиента.
auth-user-pass
обследование
Запустите клиент OpenVPN, подключитесь к серверу, введите имя пользователя и пароль.
Бот Telegram отправит запрос на доступ двумя кнопками
Одна кнопка разрешает доступ, вторая блокирует. Теперь вы можете безопасно сохранить свой пароль на клиенте; второй фактор надежно защитит ваш OpenVPN-сервер от несанкционированного доступа.
Если что-то не работает
Последовательно проверяйте, ничего ли вы не пропустили:- На сервере есть пользователь с OpenVPN с установленным паролем.
- Сервер имеет доступ через UDP порт 1812 к адресу radius.multifactor.ru.
- Параметры NAS-Identifier и Shared Secret указаны правильно.
- В системе Мультифактор создан пользователь с таким же логином и ему предоставлен доступ к группе пользователей VPN.
- Пользователь настроил метод аутентификации через Telegram
Инструкции составлены с примерами на CentOS 7. Теги: #информационная безопасность #Администрирование сервера #openvpn #Telegram #2fa-аутентификация
-
Хамлейн, Октава
19 Oct, 24 -
Чопперы И Автомобили Из Компьютерных Отходов
19 Oct, 24 -
Поздравления С Новым Годом В Стиле Brainfuck
19 Oct, 24 -
Проверка Галактики На Прочность
19 Oct, 24