Співробітник втратив ноутбук зі збереженими обліковими даними 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 кроки:
- Генерація секрету — для кожного користувача створюється унікальний base32-ключ (наприклад, openssl rand -base64 20).
- Збереження в LDAP — секрет записується в атрибут користувача, наприклад totpSecret. Використовуємо захищене LDAPS-з'єднання.
- Видача QR-коду — через self-service портал або захищеним каналом (корпоративна пошта).
- Підтвердження — користувач вводить перший згенерований код, система перевіряє та активує секрет.
- 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 є необхідним заходом для віддаленого доступу.







