openvpn-2fa-otp-freeradius-ldap

Форк
0

3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
README.md

Пример полностью настроенной системы

Для облегчения изучения, тестирования и развертывания всех компонентов в своей инфраструктуре подготовлен пример полностью работоспособной системы состоящей из:

  • OpenVPN.
  • плагин openvpn-multi-authentication-plugin для OpenVPN.
  • FreeRADIUS.
  • плагин strongpass-otp для FreeRADIUS.
  • lldap.

В отличие от конфигурации описанной в https://strongpass.ru/blog/openvpn-2fa-otp-freeradius-ldap в данном примере все компоненты работают в Docker-контейнерах.

Параметры настройки OpenVPN сервера таковы, что после подключения он не перенаправляет весь траффик через себя и не добавляет каких-либо маршрутов клиенту. Цель примера - показать какие настройки должны быть у компонентов системы для успешной аутентификации пользователя и установления VPN-туннеля.

В примере используются учетные записи со следующими реквизитами:

  1. lldap

    Url административного веб-интерфейса http://172.21.2.2:17170/

    • Администратор сервера lldap admin/password.
    • Пользователь для тестирования аутентификации без OTP-кода user-test1/ 5221ug71z7ij
    • Пользователь для тестирования аутентификации с OTP-кодом user-test2 / dltuzhgk0e1g
    • Пользователь для подключения плагина FreeRADIUS strongpass-otp к lldap freeradius_ldap_user/ 587MVkETPhRf
  2. PostgreSQL

  • Пользователь для плагина FreeRADIUS. Пользователь может только читать seed-коды. freeradius_user / 7xFWnt8BN6Ww.
  • для технической поддержки. Пользователь может только создавать, обновлять, удалять секреты генератора OTP-кодов, но не может их читать. helpdesk_user / Tpog9TPuNtd0.

Установка

Предполагается, что на сервере, где происходит тестирование, используется дистрибутив Debian 12 и установлены docker, docker-compose.

Склонируйте репозиторий.

git clone https://gitverse.ru/sc/strongpass/openvpn-2fa-otp-freeradius-ldap.git
cd openvpn-2fa-otp-freeradius-ldap

Соберите Docker-образ FreeRADIUS с плагином и необходимыми зависимостями.

sudo docker build -f src/freeradius/docker/Dockerfile -t freeradius:otp .

Соберите Docker-образ OpenVPN на базе Debian 12.

sudo docker build -f example/openvpn/docker/Dockerfile -t openvpn:otp .

Установите разрешения на файлы.

chmod +x example/openvpn/auth-service/auth-service
chmod +x example/openvpn/openvpn-plugin/libopenvpn_auth_plugin.so

Запуск

sudo docker-compose -f example/docker-compose.yaml up

Проверьте журналы на отсутствие ошибок. В случае появления ошибок устраните их.

Установите зависимости и приложение для управления секретами генератора OTP-кодов в виртуальное окружение.

sudo apt update
sudo apt install pipx
pipx ensurepath
pipx install --include-deps ./src/manage_otp

После установки будет доступна команда manage-otp. Создайте секрет для генератора OTP-кодов для пользователя user-test2. Находясь в каталоге openvpn-2fa-otp-freeradius-ldap выполните команду:

manage-otp -c example/manage_otp/config.yaml create user-test2

Добавьте на смартфоне в приложение для генерации OTP-кодов учетную запись с полученным секретом.

Подключитесь клиентом openvpn к серверу используя реквизиты пользователя user-test2.

sudo openvpn --config example/openvpn/client/openvpn-client.ovpn

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.