The OpenNET Project / Index page

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



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

"freeradius 3, подмена user-name"  +/
Сообщение от masz (ok), 20-Фев-21, 15:22 
Добрый день!

Может кто поможет побороть или направить в нужное направление.
Имеем сеть с авторизацией по option82(vlan+port):
- option82
- option82+mac
сейчас пытаюсь внедрить ipv6, потому добавляем авторизацию по:
- option37

Freeradius mysql + files, так как username в mysql уникальное значение, а за портом может быть больше одго dhcp-client их пишем в файлы с дополнительным параметром calling-station-id(то есть МАС-адрес). На данный момент, без option37 все работает, в радиус подменяем username на DHCP-RelayCircuitId. И можно было бы закрыть глаза на небольшие костыли в виде mysql + files, но так как хочеться еще внедрить ipv6, надо иметь username = DHCPv6-RelayCircuitId.

Вот собственно и вопрос, как сделать подмену username на нужный параметр в запросе? Если есть option82 то (username=dhcp-relaycircuitid), если есть option37 то (username=dhcpv6-relaycircuitid), если нет ничего то (username).

Спасибо!

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

Оглавление

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

1. Сообщение от gg (??), 21-Фев-21, 12:25   +2 +/
https://networkradius.com/doc/3.0.10/unlang/condition.html

if( ATTR == option82 {
        update request {
                User-Name := "option82"
}
}

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

2. Сообщение от masz (ok), 24-Фев-21, 11:52   +/
> https://networkradius.com/doc/3.0.10/unlang/condition.html
> if( ATTR == option82 {
>         update request {
>            
>     User-Name := "option82"
> }
> }

:)

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

3. Сообщение от masz (ok), 12-Апр-21, 09:27   +/
Наконец-то нашел как и где сделать подмену.
Сделал так в policy.d/filter:

filter_username {
        if (&User-Name) {

                # если есть параметр Param_1, назначаем его как Username
                if (&Param_1) {
                        update request {
                                &User-Name := &Param_1
                        }
                }
                # если Param_1 нет, назначаем Param_2 как Username
                else {
                        update request {
                                &User-Name := &Param_2
                        }
                }

....
skip
....

}

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


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

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




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

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