Налаштування MFA для VPN-аутентифікації TOTP/RADIUS

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

Співробітник втратив ноутбук зі збереженими обліковими даними OpenVPN. Корпоративна мережа була відкрита будь-кому, хто мав його сертифікат та пароль. Саме так виглядає більшість VPN-інцидентів — не злам, а використання вкрадених облікових даних. Другий фактор — 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%. Ми маємо 7-річний досвід впровадження MFA та більше 50 реалізованих проектів — це дозволяє гарантувати якість та надійність.

Як працює 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 у 2 рази безпечніший за SMS за кількістю попереджених інцидентів, а вартість впровадження на 60% нижча завдяки відсутності витрат на SMS-шлюзи. Пропрієтарні рішення MFA потребують суттєвих витрат — від 50 000 грн на 100 користувачів, а наше рішення на базі TOTP та FreeRADIUS коштує від 15 000 грн для тієї ж кількості, що забезпечує економію до 70%.

Як провізіювати TOTP-секрети?

Процес включає 4 кроки:

  1. Генерація секрету — для кожного користувача створюється унікальний base32-ключ (наприклад, openssl rand -base64 20).
  2. Збереження в LDAP — секрет записується в атрибут користувача, наприклад totpSecret. Використовуємо захищене LDAPS-з'єднання.
  3. Видача QR-коду — через self-service портал або захищеним каналом (корпоративна пошта).
  4. Підтвердження — користувач вводить перший згенерований код, система перевіряє та активує секрет.
  5. Backup-коди — генеруються 8–10 одноразових кодів, хешуються та зберігаються для входу при втраті телефону.
#!/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).
  • Навчання користувачів та підтримку при запуску.

Ми надаємо гарантію на всі роботи та сертифікати від виробників (Cisco, Palo Alto). Наш досвід понад 7 років дозволяє уникнути типових помилок.

Типові помилки та як їх уникнути

  • Зберігання TOTP-секретів у відкритому вигляді — обов'язкове шифрування або хешування. В LDAP використовуйте атрибут з типом octet string та вмикайте TLS.
  • Відсутність backup-кодів — без них користувач залишиться без доступу при втраті телефону. Завжди видавайте 8–10 recovery codes.
  • Неправильне налаштування RADIUS-клієнтів — перевірте IP-адреси та shared secret на VPN-сервері та в clients.conf.
  • Ігнорування часу сервера — TOTP прив'язаний до часу; розсинхронізація більше 30 секунд призведе до відмов. Налаштуйте NTP на всіх RADIUS-серверах.
  • Недооцінка навантаження — для 500+ користувачів потрібен кластер з 2+ серверів. Ми рекомендуємо це з досвіду проектів.

Порівняння методів MFA для VPN

Метод Безпека Зручність Залежність від мережі Вартість впровадження
TOTP Висока Висока Немає Середня (від 150 грн/користувач)
SMS Низька (SIM-swap) Середня Так Низька (від 50 грн/користувач, але зростає)
Push Середня Висока Так Висока (від 300 грн/користувач)

TOTP у 2 рази безпечніший за SMS та в 1.5 рази дешевший за Push при масштабуванні.

Терміни впровадження

Сценарій Термін Вартість
FreeRADIUS + OpenVPN, до 50 користувачів 1-2 дні від 10 000 грн
Інтеграція з AD, self-service портал 3-5 днів від 25 000 грн
Cisco ASA / Palo Alto + FreeRADIUS + AD 3-5 днів від 35 000 грн
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