Мне успешно удалось развернуть сервер freeradius и создать скрипт python, который выполняет дополнительную проверку пользователя (входящий запрос). Я проверил Интернет (ресурсы для freeradius довольно ужасны) и нашел только ветку, в которой объясняются некоторые основы добавления скрипта Python в процесс.
Прямо сейчас он у меня внутри / etc / freeradius / sites-enabled / default под authorize
раздел:
update control {
Auth-Type := `/usr/bin/python /etc/test.py '%{User-Name}' '%{User-Password}'`
}
Мой test.py
файл плевок Reject
или Accept
. у меня тоже есть sql
настройка аутентификации с помощью freeradius, и проблема в том, что если мой скрипт вернется Accept
любой другой запрос авторизации игнорируется; ответ по-прежнему будет Accept
даже если sql
проверка отклоняет пользователя.
Насколько я понимаю, я должен пройти noop
вместо того Accept
чтобы позволить свободному радиусу продолжать и только проходить Reject
если мне нужно отклонить пользователя, но если я отвечу noop
сервер жалуется.
Любые идеи? Может мне нужно добавить свой код в Authentication.
раздел? Как?
... если мой скрипт возвращает Accept, любой другой запрос авторизации игнорируется
Да. Так задумано. Вы говорите FreeRADIUS принять этого пользователя. Он не будет беспокоиться ни о чем другом в вашем разделе авторизации. Я считаю, что вы правы в том, что хотите, чтобы ваш сценарий возвращал noop
вместо Accept
если вы хотите, чтобы вместе с ним использовались другие методы авторизации.
Вам следует просмотреть не язык manpage, если вы еще этого не сделали, а также справочную страницу rlm_python. Также читайте все комментарии в файлах конфигурации.
Вы не указали, что вы пытаетесь заставить FreeRADIUS делать на концептуальном уровне, поэтому я не совсем уверен, что вам посоветовать. Однако у меня были отличные результаты со списком рассылки FreeRADIUS-Users. Его часто посещают разработчики и многие люди, глубоко разбирающиеся в FreeRADIUS и его возможностях. Я бы прочитал их часто задаваемые вопросы перед публикацией (пользователи, которых не часто забанят), опишу, что вы хотите сделать как на широком, концептуальном уровне, так и на уровне реализации (как вы это сделали здесь), и обязательно отправлю весь ваш вывод отладки.
Причина, по которой я предлагаю вам перейти в список рассылки, состоит в том, что я подозреваю, что есть лучший способ достичь ваших целей, но я недостаточно знаком с rlm_python, чтобы предлагать дальнейшие шаги. Тем не менее, использование правил unlang для вызова скрипта python не кажется правильным ...