The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Radius и PortSlave (radius dialup)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: radius, dialup,  (найти похожие документы)
From: Oleg I. Petrov <ol@donapex.net.ua> Newsgroup: blackcat-list@geon.donetsk.ua Date: Mon, 25 Sep 2003 14:31:37 +0000 (UTC) Subject: Radius и PortSlave > Проблема в чем, что я хочу перейти с > dialup-овских серверов построенных на mgetty > (на каждом сервере одинаковая база юзеров) > на radius сервер с одной базой, и у меня уже есть > валом юзеров, которые имеют и uucp и online, то есть > у них есть Uuser - с одним паролем и user с другим, > обходить и всех перестраивать большой напряг, вот я и думаю > как бы это заставить радиус проверять юзеров в базе > с префиксом (а разбивать по префиксам надо, так как > различный сервис). Тогда могу посоветовать следующие варианты: Вариант 1 (самый простой) Рассылаешь всем пользователям с логином типа Uuser письма о том, что, например, с 1 января 2000 г. они должны заходить с логином UUuser, и вводишь radius сервер с 1 января 2000 г. Вариант 2 Не знаю как на остальных radius серверах, а на xtradius у нас работает следующая конструкция: DEFAULT Auth-Type = External, Prefix = "cb#" Service-Type =Framed-User, Exec-Program-Wait = "/usr/local/bin/cblogin %u %w", Ascend-Callback = Callback-Yes, Ascend-Data-Svc = Switched-modem, Ascend-Send-Auth = Send-Auth-None, Ascend-CBCP-Enable = CBCP-Enabled, Ascend-CBCP-Mode = CBCP-User-Callback, Framed-Protocol = PPP, Fall-Through = Yes DEFAULT Auth-Type = External User-Service-Type = Framed-User, Exec-Program-Wait = "/usr/local/bin/login %u %w", Framed-Protocol=PPP, Idle-Timeout = 900, Ascend-Maximum-Channels=1 , Ascend-Assign-IP-Pool=1, Framed-Routing = None Здесь cblogin и login перловые скрипты, в которых происходит аутификация через СУБД, а параметры %u и %w соответственно логин и пароль. Если аутификация успешна, то скрипт выдает на стандартный вывод: print"Session-Timeout = ",$session_time,"\n"; print"Auth-Type = Accept\n"; exit(0); а если не прошла, то: print"Session-Timeout = ",$session_time,"\n"; print"Auth-Type = Reject\n"; exit(-1); Фишка в том, что в скрипт передается весь логин ( в нашем случае например cb#test и нам приходится скриптом обрезать первые три символа). В твоем случае вместо обращения к базе данных можно шифровать пароль (здесь как-то пробигало как это делать), а затем сравнивать с данными из файла passwd. Однако есть нюанс - после аутификации для системы твой Uuser бедет все равно user. И если ты для учета используешь sac -p Uuser то получишь 0 часов, т.к. твой Uuser уже не Uuser, а user. Тоже самое и для логов радиуса. Так что насчет биллинга подумать надо.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру