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

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

Я хочу настроить (один экземпляр) сервер FreeRadius для прослушивания нескольких портов (с кучей разделов 'listen'), а затем передать этот порт 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
    }
[...]
}

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

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

Это возможно?

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

1 Ответ

0 голосов
/ 13 января 2012

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

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

...