Добрый день!
Подскажите, если кто знает, можно ли организовать на freeradius (или на любом радиусе [RFC2865]) одну из следующих схем:
Есть два радиуса1) При авторизации существующий пользователь получает Reject. Запрос на аутоинтефикацию проксируется на второй радиус.
2) При авторизации пользователь не найден. Запрос проксируется на второй радиус.Заранее спасибо...
>Добрый день!
>Подскажите, если кто знает, можно ли организовать на freeradius (или на любом
>радиусе [RFC2865]) одну из следующих схем:
>Есть два радиуса
>
>1) При авторизации существующий пользователь получает Reject. Запрос на аутоинтефикацию проксируется на
>второй радиус.
>2) При авторизации пользователь не найден. Запрос проксируется на второй радиус.
>
>Заранее спасибо...В догонку
из [RFC2865]:
The choice of which server receives the forwarded
request SHOULD be based on the authentication "realm". The
authentication realm MAY be the realm part of a Network Access
Identifier (a "named realm"). Alternatively, the choice of which
server receives the forwarded request MAY be based on whatever other
criteria the forwarding server is configured to use, such as Called-
Station-Id (a "numbered realm").но у меня немного другая ситуация - реалмов, как таковых, нет.
Привет,>но у меня немного другая ситуация - реалмов, как таковых, нет.
В отсутствии оных, если вам действительно это надо, можно пойти таким (непростым) путем:
1. Ставим XtRadius, он поддерживает аутентификацию через внешнюю программу (например, Perl скрипт).
2. При запросе на наш Radius, он вызывает наш же внешний скрипт. Видя, что ему придется отдать в ответ "Reject" (т.е. exit code > 1), наместо reject-a, скрипт шлет запрос по RADIUS протоколу второму, удаленному Radius серверу. Здесь вам придеться покопаться либо в исходниках radclient на С, либо в каких-нибудь Perl модулях (можно, конечно, и без них на уровне socket programming писать).
3. Получив от удаленного Radius сервера ответ, наш скрипт принимает окончательное решение - если и удаленны сервер ответил "Reject", то говори нашему Radius серверу "Reject"; если удаленный сервер ответил "Accept", то выдаем нашему Radius серверу "Accept"...
WWell,