radtest и radclient

Как можно потестировать работу сервера FreeRadius ? Есть два способа:

Для простой проверки с логином-паролем достаточно:

Если же нужно «подробное» тестирование (например при отладке FreeRadius), с эмуляцией авторизации аккаунтингом и прочим, можно воспользоваться radclient.

простая авторизация:

авторизация с необычными параметрами:

аккаунтинг:

FreeRadius и аутентификация через внешний скрипт

Например можно реализовать вот так:

В этом случае, PHP должен только проверить логин&пароль и ответить либо Accept либо Reject.

Добавляем модуль python для FreeRadius3

Случилось так, что стандартными средствами FreeRadius авторизации ну никак не «разрулить» те условия, которые необходимы. Решение: включим/поставим модуль python для FreeRadius и будем использовать его для авторизации и выдачи абонентам сетевых настроек.

Далее пути указаны для Ubuntu.

1) Сделаем симлинк (читай включим модуль) для модуля pyhton в папке

2) В файле настроек пропишем путь для файла написанного на языке python, который будет отвечать за авторизацию, и имя собственно модуля, например work:

Так-же нужно расскоментировать те функции, которые будут вызываться модулем. Например:

 

3) Создадим модуль work. Можно на основе example. В моём случае он адаптирован под python3 (в «базе» он поставляется пот python 2.7):

И чуть изменим файл radiusd.py:

В файле default включим модули в секциях authorize и authenticate:

Запускаем:

В логах наблюдаем:

Отдаем Json в ответе на запрос страницы

Контроллер можно оформить например так:

1 2 3