Когда-то давно успешно настроил freeradius + freenibs по мануалам, особо не вникая что он делает, и как работает.Теперь стоит обратная задача :)
Разбирая конфиг радиуса, и копаясь в его структуре понял следующее:
(поправьте меня в тех местах, где я заблуждаюсь)
а) радиус почти на каждый чих имеет по модулю, который выполняет одну или несколько следующих вещей сразу: аутентификацию, авторизацию, аккаунтинг, и еще несколько редких действий.
б) модули, хоть и имеют одинаковый интерфейс к программе, служат разным целям
в) конфиг радиуса состоит из нескольких частей, как то:
modules {} - настройка параметов модулей
authorize {}
authenticate {}
accounting {}
и нескольких менее важных.
г) в зависимости от того, в какой части стоит имя модуля - вызывается соответствующая его функция...
Так вот возникает ряд вопросов:
1) чем отличаются authorize и authenticate. какое действие делают модули, описанные соответственно, в каждом из них.
2) есть модули pap, chap, mschap - не пойму откуда они берут данные для аутентификации? и делают ли они вообще аутентификацию юзера. или все таки авторизацию? я путаю эти понятия.
3) собственно откуда возникла вообще надобность разобраться с радиусом: необходимо сделать внешнюю аутентификацию через стороннюю программу. известно, что на вход ей нужно подавать логин, и пароль пользователя, а она уже на выходе сработает как модуль радиуса - вернет 0, 1, ... и пары атрибутов. Для этого нашел модуль exec - но почему-то простейшая программа в теле которой только int main(...){exit(0);} не авторизует пользователей.
Буду благодарен за любые комментарии и разъяснения относительно того, как работает фрирадиус.