Коллеги, добрый день.
Уже несколько дней пытаюсь поднять двухфакторную аутентификацию для VPN и хочу понять, не упёрся ли я в фундаментальное ограничение.
Конфигурация:
- MikroTik RouterOS 6.49.17
- Windows 11 (стандартный L2TP/IPsec VPN-клиент)
- FreeRADIUS 3.2.5
- privacyIDEA 3.13.3
- Google Authenticator (TOTP)
Схема следующая:
Windows VPN
↓
L2TP/IPsec
↓
MikroTik
↓
FreeRADIUS
↓
privacyIDEA
Что уже проверено:
- пользователь существует;
- токен TOTP назначен пользователю;
- Google Authenticator показывает корректные коды;
- проверка напрямую через API privacyIDEA проходит успешно:
curl -k https://localhost/validate/check \
-d "user=nibbl-test" \
-d "pass=321931"
Ответ:
"authentication":"ACCEPT"
То есть сам privacyIDEA работает без проблем.
Однако при подключении Windows к VPN в режиме отладки FreeRADIUS видно, что приходит только:
MS-CHAP-Challenge
MS-CHAP2-Response
Аутентификация уходит в privacyidea_radius.pm, который вызывает /validate/check, но в итоге получаю:
wrong otp pin
При этом в запросе нет атрибута User-Password.
Вопрос к тем, кто реально настраивал такую связку.
Удалось ли кому-нибудь заставить работать именно:
- Windows L2TP/IPsec
- MikroTik
- FreeRADIUS
- privacyIDEA
- Google Authenticator (TOTP)
именно с MS-CHAPv2?
Или privacyIDEA в принципе не поддерживает такой сценарий, так как для проверки OTP ей необходим пароль в открытом виде (PAP), а MS-CHAPv2 его не передаёт?
Если у кого-то такая схема работает, буду очень признателен за описание конфигурации или ссылки на документацию.