The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"FreeRadius, 2FA "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Авторизация и аутентификация, LDAP / Linux)
Изначальное сообщение [ Отслеживать ]

"FreeRadius, 2FA "  +/
Сообщение от maxnetstat (ok), 27-Мрт-24, 18:05 
Привет!

Помогите решить проблему с настройкой двухфакторной авторизации на FreeRadius.
FreeRADIUS Version 3.0.20


В целом, я настроил второй фактор для всех подключающихся пользователей,
но не получается настроить таким образом, чтобы только определенные пользователи
должны были проверяться на второй фактор.

сейчас схема работы такая:
все пользователи проверяются на LDAP и на второй фактор при подключении.

Как надо:
Все пользователи проверяются на LDAP сервере,
а пользователи, которые определены в отдельном файле (только их LDAP логины)
проверялись также на второй фактор.

Вот пример моего конфига, который работает для все пользователей:
cat /etc/raddb/sites-enabled/default

authorize {
    filter_username
    filter_google_otp
    preprocess

    if ((ok || updated) && Google-Password && !control:Auth-Type) {
        update control {
            Auth-Type := `/path_to_script/auth_2fa.py %{User-Name} %{Google-Password}`
        }
    }
}


Моя идея в том, чтобы после filter_username добавить проверку на соответствие User-Name пользователя на юзеру из файла. И если это соответствие найдено выполнить проверку на 2 фактор.

если нет - идем дальше.

толком не смог найти ничего подобного в инете.
Возможно моя идея реализации не подходит.

кто-то сталкивался с такой проблемой?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "FreeRadius, 2FA "  +/
Сообщение от maxnetstat (ok), 28-Мрт-24, 11:30 
Проблема решена.
Проверкой наличия пользователя в списке занимается  отдельный скрипт: check_user_2fa.sh,
который отдает "ok" в консоль:

    authorize {
        filter_username
        if (`/path_to_script/check_user_2fa.sh %{User-Name}`) {
            filter_google_otp
            ldap
            if ((ok || updated) && Google-Password && !control:Auth-Type) {
                update control {
                    Auth-Type := `/path_to_script/google_2fa.py %{User-Name} %{Google-Password}`
                }
            }
        } else {
            update {
                control:Auth-Type := ldap
             }

        }
        preprocess
    }

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру