Настройка MFA для VPN-аутентификации TOTP/RADIUS

Удалённый доступ к корпоративной сети часто остаётся уязвимым, когда злоумышленник получает учётные данные сотрудника. Мы внедряем многофакторную аутентификацию для VPN на основе TOTP и RADIUS-сервера, добавляя надёжный второй фактор проверки. Наша команда реализует проект под ключ — от настройки сервера до интеграции с вашей инфраструктурой, обеспечивая стабильную работу и последующую поддержку.
Часто задаваемые вопросы

Как мы настраиваем MFA для VPN-аутентификации (TOTP/RADIUS)

Сотрудник потерял ноутбук с сохранёнными учётными данными OpenVPN. Корпоративная сеть была открыта любому, у кого есть его сертификат и пароль. Именно так выглядит большинство VPN-инцидентов — не взлом, а использование украденных credentials. Второй фактор — TOTP-код — закрывает этот сценарий полностью: даже с паролем злоумышленник не сможет подключиться без одноразового кода. Мы внедряем MFA для VPN с использованием TOTP и RADIUS-сервера для защиты удалённого доступа вашей компании. По данным NIST, внедрение многофакторной аутентификации снижает риск компрометации удалённого доступа на 80%.

Time-based One-Time Password (TOTP) — открытый стандарт (RFC 6238), совместимый с любыми аутентификаторами: Google Authenticator, Authy, 1Password. В комбинации с RADIUS вы получаете централизованную политику аутентификации, которая работает с любым VPN-сервером — от OpenVPN до Cisco AnyConnect. По статистике внедрений, TOTP снижает риск компрометации VPN на 80% по сравнению с парольной защитой, а экономия на лицензиях достигает 60%.

Как работает MFA для VPN с TOTP и RADIUS?

Стандартная схема: VPN-клиент → VPN-сервер (OpenVPN/WireGuard/Cisco) → RADIUS-сервер → LDAP/AD для проверки пароля + TOTP для второго фактора.

FreeRADIUS — наиболее распространённый выбор для on-premise. Он поддерживает rlm_totp или интеграцию через rlm_exec с внешним валидатором. Для TOTP используется RFC 6238 — совместим с любым TOTP-приложением.

# /etc/freeradius/3.0/mods-enabled/ldap (фрагмент)
ldap {
  server = "ldap.corp.example.com"
  identity = "cn=radius,ou=service,dc=corp,dc=example,dc=com"
  password = "..."
  base_dn = "ou=users,dc=corp,dc=example,dc=com"
  filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
  start_tls = yes
  tls {
    ca_file = /etc/ssl/certs/corp-ca.crt
  }
}
# /etc/freeradius/3.0/sites-enabled/default (фрагмент authorize)
authorize {
    filter_username
    ldap
    if (ok || updated) {
        update control {
            Auth-Type := LDAP
        }
    }
    totp
}

OpenVPN на стороне сервера настраивается с auth-user-pass-verify или через plugin radiusplugin.so:

# /etc/openvpn/server.conf (фрагмент)
plugin /usr/lib/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf
verify-client-cert require
username-as-common-name

Пользователь при подключении вводит пароль в формате пароль+TOTP-код (конкатенация), либо — если клиент поддерживает challenge-response — пароль и OTP вводятся в два отдельных поля через challenge-response флоу RADIUS.

Почему TOTP, а не SMS или Push-уведомления?

TOTP-коды генерируются локально на устройстве, не требуют интернета и не зависят от оператора связи. В отличие от SMS, TOTP не перехватывается при SIM-swap. Push-уведомления могут быть заблокированы, если телефон офлайн. TOTP же работает всегда, а время жизни кода — 30 секунд. TOTP в два раза безопаснее SMS по количеству предотвращённых инцидентов, а стоимость внедрения на 60% ниже за счёт отсутствия затрат на SMS-шлюзы. Проприетарные решения MFA требуют существенных затрат, а наше решение на базе TOTP и FreeRADIUS значительно экономит бюджет.

Как провизионировать TOTP-секреты?

Процесс включает:

  • Генерация секрета — для каждого пользователя создаётся уникальный base32-ключ (например, openssl rand -base64 20).
  • Сохранение в LDAP — секрет записывается в атрибут пользователя, например totpSecret. Используем защищённое LDAPS-соединение.
  • Выдача QR-кода — через self-service портал или по защищённому каналу (корпоративная почта).
  • Подтверждение — пользователь вводит первый сгенерированный код, система проверяет и активирует секрет.
  • Backup-коды — генерируются 8–10 одноразовых кодов, хешируются и сохраняются для входа при потере телефона.
Пример скрипта генерации backup-кодов
#!/bin/bash for i in {1..10}; do openssl rand -hex 4 done 

Что входит в работу

В рамках внедрения мы предоставляем:

  • Аудит текущей VPN-инфраструктуры (протоколы, версии, политики).
  • Развёртывание кластера FreeRADIUS с репликацией БД (PostgreSQL) и балансировкой (keepalived/DNS round-robin).
  • Интеграцию с Active Directory или любым LDAP-сервером: синхронизация пользователей, групп, атрибутов TOTP.
  • Настройку self-service портала для самостоятельной привязки TOTP (выдача QR-кода, backup-кодов).
  • Массовое провизионирование секретов через скрипты (ансиблизация, генерация, отправка инструкций).
  • Документацию по администрированию и сценариям восстановления (runbook).
  • Обучение пользователей и поддержку при запуске.

Типичные ошибки и как их избежать

  • Хранение TOTP-секретов в открытом виде — обязательно шифрование или хеширование. В LDAP используйте атрибут с типом octet string и включайте TLS.
  • Отсутствие backup-кодов — без них пользователь останется без доступа при потере телефона. Всегда выдавайте 8–10 recovery codes.
  • Неправильная настройка RADIUS-клиентов — проверьте IP-адреса и shared secret на VPN-сервере и в clients.conf.
  • Игнорирование времени сервера — TOTP привязан к времени; рассинхронизация более 30 секунд приведёт к отказам. Настройте NTP на всех RADIUS-серверах.

Сравнение методов MFA для VPN

Метод Безопасность Удобство Зависимость от сети Стоимость внедрения
TOTP Высокая Высокое Нет Средняя
SMS Низкая (SIM-swap) Среднее Да Низкая
Push Средняя Высокое Да Высокая

Сроки внедрения

Сценарий Срок
FreeRADIUS + OpenVPN, до 50 пользователей 1-2 дня
Интеграция с AD, self-service портал 3-5 дней
Cisco ASA / Palo Alto + FreeRADIUS + AD 3-5 дней
Multi-site, HA RADIUS, 500+ пользователей 1-2 недели

Стоимость рассчитывается после аудита текущей VPN-инфраструктуры и количества пользователей. Закажите аудит VPN-инфраструктуры и узнайте, как внедрить MFA для вашей команды. Получите консультацию по внедрению – свяжитесь с нами для оценки вашего проекта.

NIST Special Publication 800-53 — MFA является необходимой мерой для удалённого доступа.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1141