LINUX.ORG.RU
ФорумAdmin

FreeRadius — «один пользователь - одна сессия»

 


0

1

Есть сервер FreeRadius. Через него происходит ААА пользователей Wi-Fi на роутер Микротик по WPA2-Enterprise. Пользователи записываются в файл freeradius/users.

Задача: сделать так, что бы один пользователь имел право иметь лишь одну активную сессию. То есть, что бы лишь один пользователь использовал свой акк, и не мог передать его другому. В случае если он передал, то нужно, что бы его сессия прекратилась, а началась новая сессия и была лишь одна сессия. Так же это делается для того, что бы пользователь мог подключить к роутеру только один гаджет.

Вопрос: как это реализовать?



Последнее исправление: slutandr (всего исправлений: 1)

Ответ на: комментарий от anonymous

FreeRadius — "один пользователь - одна сессия"

Ну это понятно в теории. А куда пихать скрипт? Где нужно прописать путь к скрипту? Где взять API? Я понимаю теорию, а на практике не знаю как к этому приступить...

slutandr
() автор топика

радиус или авторизирует или нет. У него есть параметр Simultaneous-Use и настройки, где хранить сессии. Сам радиус может ограничить авторизацию по этому параметру. Если вам надо продолжать авторизацию много раз, но рубить сессии сервиса, то это задача не радиуса, а сервиса, который его использует. Грубо говоря, самого роутера.

anonymous
()
Ответ на: FreeRadius — "один пользователь - одна сессия" от slutandr

схема там такая, если коротко. Приходит авторизация - радиус говорит ОК и возвращает на микротик параметры сессии. Микротик поднимает сессию клиента и должен (как нормальный nas) - прислать стартовую аккаунтинговую запись обратно на радиус. Радиус (например через модуль mysql) - кладет ее в базу. Когда приходит очередная авторизация и есть check параметр Simultaneous-use - он делает query в базу с логином и проверяет нет ли там актуальной стартовой записи. Если есть и Simultaneous-use меньше или равно кол-ву сессий - посылает reject. Соответственно, когда сессия разрывается, приходит аккаунтинговая стоп запись и из базы все вычищаешь. Можешь исключить базу и ходить сразу в микротик за сессиями (Это даже лучше, потому что исключает ряд проблем с залипшими записями). Как, что и куда пихать - все есть в документации freeradius (и уверен, что в куче статей в гугле про связку с микротиком)

anonymous
()
Ответ на: комментарий от anonymous

Можешь исключить базу и ходить сразу в микротик за сессиями (Это даже лучше, потому что исключает ряд проблем с залипшими записями)

Во-первых, как это поможет решить вопрос? Во-вторых это, в общем-то, медленно и не универсально в плане разнообразия устройств. Хотя, если одни Микротики, на «не универсально» можно забить.

AS ★★★★★
()

Вопрос: как это реализовать?

Тебе, видимо, этот Simultaneous-Use надо будет реализовать по своему. Надо пускать всегда, а внешним скриптом (либо по крону, либо по приходу стартового пакета запускать) проверять сессии и срубать все, кроме последней.

AS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.