Categories: Ai

Двухфакторная аутентификация (OTP) в OpenVPN с использованием FreeRADIUS и LDAP

Существующие варианты реализации 2FA для OpenVPN основываются на модуле google-authenticator-libpam для OTP‑кодов и плагинов аутентификации OpenVPN libpam-radius-auth, openvpn-plugin-auth-pam, openvpn-auth-ldap и имеют ряд недостатков как для пользователя так и для администратора.

Поскольку и OpenVPN, и FreeRADIUS позволяют подключать плагины мы можем, написав собственный плагин, реализовать такую схему, которая позволит нам:

использовать для аутентификации пользователей логин и пароль из LDAP‑каталога.

удобно вводить логин, пароль, OTP в отдельные независимые поля интерфейса, а не после пароля или вместо пароля.

реализовать различные комбинации использования логина, пароля, OTP в зависимости от задач.

обеспечить отказоустойчивость, возможность использования нескольких серверов аутентификации.

использовать LDAP‑каталог для централизованного управления пользователями.

хранить seed‑значения для генератора OTP независимо от того, какой LDAP‑каталог используется (ActiveDirectory, FreeIPA, lldap или другие).

передать функцию создания, обновления seed‑значений для генератора OTP техподдержке без необходимости подключаться к серверам OpenVPN.

использовать на смартфонах любое приложение для генерации OTP (Яндекс.Ключ, FreeOTP Authenticator и др.).

не зависеть от работоспособности облачных провайдеров 2FA.

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

доступ пользователей через OpenVPN в инфраструктуру компании.

резервный самодостаточный безопасный удаленный доступ в инфраструктуру для администраторов на случай аварий или сбоев.

В обоих сценариях:

не предполагается использование персональных сертификатов для каждого пользователя. Однако, это не исключает использования сертификатов в качестве дополнительной меры защиты.

для аутентификации используется логин, пароль и OTP.

Читать далее

Recent Posts

Магия CSS на практике: советы по вёрстке от гика. Часть 4

Хабр, привет! Я снова пришёл к вам со статьёй, где показываю мои любимые техники вёрстки.…

1 неделя ago

JavaScript: структуры данных и алгоритмы. Часть 5

Привет, друзья! В этой серии статей мы разбираем структуры данных и алгоритмы, представленные в этом…

1 неделя ago

Реализация событий через HTTP

Для некоторых задач, связанных с обновлением данных в реальном времени — например, новостные ленты, уведомления…

1 неделя ago

Каннибализм трафика. Нужно ли вести контекст по брендовым запросам?

Со времён появления контекстной рекламы маркетологов не перестаёт мучить вопрос:"А есть ли смысл вести контекст по…

1 неделя ago

Презентация Apple 2024: новая кнопка на iPhone 16, функция слухового аппарата у AirPods, кинокамера в iPhone Pro

Накануне в прямом эфире прошла большая презентация новой техники от компании Apple. Команда Тима Кука…

1 неделя ago

Сразу два аналога Notion, бесплатный сервис аналитики для продавцов на WB – эти и другие российские стартапы

10 новых российских сервисов для нарезки шортсов при помощи ИИ, публикации в цифровых СМИ, авто-ответов…

1 неделя ago