Могу ли я использовать libfreeradius, чтобы создать собственный радиус-сервер? - PullRequest
0 голосов
/ 07 октября 2018

Мне нужен сервер, который может обрабатывать двух клиентов с разным секретом за одним IP .Freeradius не может меня остановить.Он использует статическую привязку ip-secret для динамических клиентов.

Не могу подключить собственный модуль во Freeradius 2 и 3.

Как я могу использовать lira freeradius для анализа необработанного пакета udp и изменения Message-Authenticator?Где функции парсера?

Я хочу сделать прокси-сервер, похожий на сервер ..

Клиентские запросы с secret1, мой прокси-пакет аутентификации с секретным1, копирование данных в новый пакет, шифрование его с помощью localhost constant secret2 и пошлите это Фрарадиусу.Ответ Freeradius будет перекодирован и отправлен обратно клиенту.

Теперь пытаемся установить связь с радиусом libradius ...

1 Ответ

0 голосов
/ 31 октября 2018

FreeRADIUS 4 будет поддерживать динамическое связывание кортежей IP / портов с секретами, что эффективно решает вашу проблему.Если вы хотите что-то создать самостоятельно, то вы можете использовать libfreeradius, но, честно говоря, он предназначен для внутреннего потребления утилитами, которые поставляются с FreeRADIUS и двоичным файлом с радиусом, API (не говоря уже о ABI) чрезвычайно изменчив и часто меняется между незначительнымивыпусков, поэтому вам может потребоваться потратить много времени на поддержание того, что вы придумали.

Если вы настроены на это, вам может оказаться проще работать с FreeRADIUS 4 HEAD, так какпарсеры протоколов разделены на отдельные независимые библиотеки, которые очень легко инициализировать вне основного сервера.

Основные функции, которые вам нужно вызвать, это fr_radius_init для инициализации библиотеки протокола, а затем fr_radius_encodeдля кодирования пакетов и fr_radius_decode для декодирования пакетов.

Вам нужно придумать свои собственные функции ввода-вывода, хотя некоторые из них в src/lib/util/socket.c предлагают базовые абстракции.

...