Зная, из какого udp-сокета пришел запрос Radius. Использование FreeRadius

Я знаю, что вопрос не очень хороший. Извините мой английский.

Я хочу настроить (один экземпляр) сервера FreeRadius для прослушивания нескольких портов (с кучей секций для прослушивания), а затем передать этот порт udp в качестве параметра вместе с именем пользователя и паролем пользователя в сценарий, который Я хочу использовать для аутентификации.

Основная идея - сделать какое-то разделение доменов. Некоторые брандмауэры используют радиус-порт 2000 для аутентификации. Например, некоторые другие межсетевые экраны (с другим набором пользователей) используют радиус-порт 2020. В конце концов, все запросы попадают в один и тот же сценарий, который знает оба набора пользователей и использует тот или иной в соответствии с заданным дополнительным атрибутом (номером порта).

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

Я попытался добавить атрибут таким образом:

listen {
        ipaddr = *
        port = 0
        type = auth
        update control {         
            Login-TCP-Port = 1812
        }
    }

и попытался прочитать:

autorize {
    if ("%{User-Name}" == "bob") {
        update reply {
            Reply-Message = "This is only %{Login-TCP-Port} an example."
        }
        update control {
            Cleartext-Password := "bob"
        }
        ok
    }
[...]
}

Но не работай.

Как я могу это исправить?

Возможно ли это?

Надеюсь, ты сможешь мне помочь.


person ejmarino    schedule 12.01.2012    source источник


Ответы (1)


Отвечаю сам. Я обнаружил (как и дальше в Google), что атрибут Packet-Dst-Port содержит нужные мне данные.

Я получил его здесь (теперь, когда я это нашел, это выглядит довольно очевидно: P)

person ejmarino    schedule 13.01.2012