LINUX.ORG.RU
ФорумAdmin

FreeIPA LDAP+TOTP + RADIUS + Mikrotik возможно?

 , ,


0

2

Привет, ЛОР!

Есть L2TP/IPSec сервер на Микротике. Внутри локалки есть LDAP на базе FreeIPA. Хочу к VPN подключаться с учётками LDAP, только усилить их TOTP от FreeIPA (надо будет рулить возможностью подключаться к VPN на основе групп и оч мне нравится что юзер может сам себе добавить TOTP из своего «ЛК»,).

Насколько я понимаю, для этого всего нужен RADIUS. Я развернул FreeRADIUS, который смотрит учётки в LDAP (FreeIPA) и отдаёт их Микротику. Но т.к. клиент RADIUS в Микротике умеет только MS-CHAPv2, то я вынужден во FreeIPA добавить NT-hash для пароля.

Теперь это всё работает так:

  • Юзер ломится в Микротик;
  • Микротик стучится в RADIUS;
  • RADIUS смотрит в LDAP, видит там учётку и пароль NT-hash;
  • Юзер проходит аутентификацию в RADIUS
  • Микротик пускает в VPN

Если втупую приписать к этому ещё и TOTP, то, понятно дело, ничего не заработает.

Можно ли как-то приделать TOTP к этой конструкции? Если нет, то может быть для достижения этой цели можно развернуть standalone сервер L2TP/IPSec (strongSwan или что-то ещё) на чём-то с такой аутентификацией?

В систему-клиент-IPA я могу ходить по password+TOTP, т.е. TOTP я настроил корректно.

Даже вот переделал специально пароли на CLEARTEXT в LDAP, чтобы оно там могло спокойно модифицировать как нужно. Всё равно не срабатывает TOTP при логине в VPN.

CentOS 8.2; FreeIPA 4.8.4; FreeRADIUS 3.0.17; RouterOS 6.47

★★★★

Последнее исправление: kma21 (всего исправлений: 1)

Можно ли как-то приделать TOTP к этой конструкции? Если нет, то может быть для достижения этой цели можно развернуть standalone сервер L2TP/IPSec (strongSwan или что-то ещё) на чём-то с такой аутентификацией?

А где тут связь? RouterOS знает про RADIUS, больше Микротику ничего не интересно и не нужно. Дальше вопрос в прикручивании всего к FreeRADIUS.

AS ★★★★★
()
Ответ на: комментарий от AS

Я хотел сказать о том, что может быть с RADIUS это невозможно реализовать и надо использовать некий VPN-сервер, который умеет напрямую в LDAP + OTP, т.е. без RADIUS.

kma21 ★★★★
() автор топика
Ответ на: комментарий от kma21

Я хотел сказать о том, что может быть с RADIUS это невозможно реализовать

https://ru.wikipedia.org/wiki/RADIUS

То есть вопрос вовсе не имеет отношения к протоколу RADIUS и NAS (в данном случае Микротику). А вот к RADIUS-серверу имеет. Сервер, работая с NAS по протоколу RADIUS, сам может реализовывать какие угодно механизмы подготовки паролей. Так что вопрос в том, умеет ли запрашиваемое FreeRADIUS.

Хотя если NAS умеет что-то такое без RADIUS, то к NAS это может иметь отношение. Но тогда FreeRADIUS уже не при чём.

AS ★★★★★
()
Ответ на: комментарий от AS

Я покопался и пока реализовал такую схему (вероятно не самую правильную):

В Микротике включил PAP для L2TP/IPSec сервера (MS CHAPv2 only только для логина в роутер, для L2TP/IPSec выбор есть)

В RADIUS заново сделал аутентификацию по LDAP.

И теперь я могу логиниться в L2TP/IPSec сервере (который предоставляет Микротик) со своими учётными данными LDAP и с применением OTP.

но теперь не могу применить HBAC. вернее RADIUS сервер разрешает логин юзера невзирая на политики HBAC в FreeIPA, хотя allow_all отключено и логина быть не должно.

Выглядит так, будто бы RADIUS в LDAP только учётные данные смотрит, а решение об аутентификации принимает сам.

Мне ещё посоветовали второй вариант - настроить RADIUS с бэкендом PAP вместо бэкенда LDAP. и тогда (если я всё правильно понял) можно будет оставить MS CHAP и должны будут применяться политики HBAC и вообще аутентификацией рулить FreeIPA (что я бы хотел в конце концов).

Но вероятно настройка RADIUS + PAM это больше, чем прст закомментить упоминание LDAP в конфигах и раскоментить PAM.

Можешь ли ты что-нибудь подсказать по этому поводу?

kma21 ★★★★
() автор топика

сервер L2TP/IPSec с такой аутентификацией

мне тоже эта связка интересна, и я курил какие-то маны, но дальше теории не зашло.

основной вопрос: как клиент l2tp будет запрашивать TOTP токен у пользователя.

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

но это же костылище..

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)
Ответ на: комментарий от aol

как я выше описал, я сейчас заставил работать связку ldap credentials + TOTP.

для юзера это выглядит достаточно прозрачно - пароль вводится ввиде «password+TOTP». т.е. при password=qwerty1234 и TOTP=2020 юзер должен ввести в поле пароля «qwerty12342020».

правда есть пара моментов - протокол PAP, который передаёт пароли от клиента к серверу. говорят, что при применении RADIUS пароль хэшируется с учётом preshared_secret и вроде как при применении L2TP/IPSec это всё должно быть внутри IPSec.

ну и пока не получилось реализовать управление через LDAP, типа только члены группы могут подключаться к VPN и т.п.

kma21 ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.