Перейти до

Ubilling_Freeradius+mikrotik


Рекомендованные сообщения

Подскажите кто знает, я так понял, что модули хранятся в /usr/lib/stg

Потом мне надо в старгейзер.конф в секции модуль прописать модуль radius. И после этого будут отдаваться команды из биллинга на radius клиенты?

Ссылка на сообщение
Поделиться на других сайтах

Чтобы было понятно, Радиус нужен для передачи информации для НАС не только МАС IP и скорость, а еще и BURST. При чем не хочется каждый раз после обновления редактироваться конфигурационные файлы управления НАС.

Ссылка на сообщение
Поделиться на других сайтах

Подскажите кто знает, я так понял, что модули хранятся в /usr/lib/stg

Потом мне надо в старгейзер.конф в секции модуль прописать модуль radius. И после этого будут отдаваться команды из биллинга на radius клиенты?

Если коротко — нет.
Ссылка на сообщение
Поделиться на других сайтах

1. stg не отдает команд. Концепция RADIUS состоит в предоставлении AAA, а не в управлении клиентским оборудованием.

2. Модуль mod_radius в stg не работает сам по себе - он работает в связке с rlm_stg для freeradius. Начиная с версии 2.408 он сломан (спасибо автору FreeRADIUS Алану ДеКоку).

3. Есть его рабочая замена в ветке stg-2.409-radius. Но она существенно отличается от старого mod_radius и rlm_stg.

Ссылка на сообщение
Поделиться на других сайтах

 

 

stg не отдает команд. Концепция RADIUS состоит в предоставлении AAA, а не в управлении клиентским оборудованием.

Клиент авторизовался, потом ему сменили настройки (тариф например) или МАС, а открытая сессия не завершается. Разве не должно дропать сессию и пересоздать новую с актуальными параметрами? 

Ссылка на сообщение
Поделиться на других сайтах

 

stg не отдает команд. Концепция RADIUS состоит в предоставлении AAA, а не в управлении клиентским оборудованием.

Клиент авторизовался, потом ему сменили настройки (тариф например) или МАС, а открытая сессия не завершается. Разве не должно дропать сессию и пересоздать новую с актуальными параметрами? 

 

Радиус только аутентифицирует, авторизует и проводит аккаунтинг. Он не дропает сессии. Он вообще пассивное звено - только отвечает на запросы радиус-клиентов.

Если радиус-клиент шлет регулярные interim-update запросы на радиус-сервер - можно попытаться дропнуть сессию ответом на interim-update. Но нет никакой гарантии что радиус-клиент в этом случае будет делать реконнет. interim-update служит для передачи статистической информации и вполне может игнорироваться.

Ссылка на сообщение
Поделиться на других сайтах

Получается: абонент прошел авторизацию, потом у него кончились деньги, но он будет работать. Правильно?

Добро пожаловать в мир радиуса. Посмотрите "небыло разрыва" на ютубе, можт поймете, откуда эта тема, с таймаутами сессий.
Ссылка на сообщение
Поделиться на других сайтах

Получается: абонент прошел авторизацию, потом у него кончились деньги, но он будет работать. Правильно?

Именно. Если, конечно, хак с interim-update не прокатил.

Ссылка на сообщение
Поделиться на других сайтах

 

 

Добро пожаловать в мир радиуса. Посмотрите "небыло разрыва" на ютубе, можт поймете, откуда эта тема, с таймаутами сессий.

 

Таким образом не хотелось бы делать. Потому и решил узнать есть ли какой-то механизм реализации без тамаута сессий. Видимо, самый оптимальный вариант использоваться встроенный механизм управления Микротами. Просто есть некие неудобства, связанные со статическими записями, а также ограничениями в количестве передаваемых "атрибутов" 

Ссылка на сообщение
Поделиться на других сайтах

 

 

можно попытаться дропнуть сессию ответом на interim-update.

 

А можно коротко, как можно попытаться это сделать? Я так понимаю, что не просто установкой интервала на Микроте в профайле Хотспот 

Ссылка на сообщение
Поделиться на других сайтах

 

можно попытаться дропнуть сессию ответом на interim-update.

 

А можно коротко, как можно попытаться это сделать? Я так понимаю, что не просто установкой интервала на Микроте в профайле Хотспот 

 

Вдумчивым программированием.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

С этим пока понятно, а как быть с пустой строкой сервис? У кого-то было что-то похожее?

 

При чем, на некоторых уже существующий сетях меняю на "use radius" yes и сервис написано название услуги, а на некоторых - пусто. В чем дело может быть? И не тех сетях, где строка пустая, в таблицу БД заносить данные о атрибутах, но на самом НАСе выдает ошибку, такие чувства, что макрос не считывает

Відредаговано Golthana
Ссылка на сообщение
Поделиться на других сайтах

Проблема с сервисом решена. Обязательное требования для работы Freeradius чтобы ID сети соответствовало ID названия услуги, иначе макросы не работают.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Теперь просто маросы не работают. В частности {nethosts[mac]}. А если в строку значение вставляю мас пользователя, то авторизация проходит

 

Извиняюсь, макрос работает, проблема в том, что на Микроте МАС в верхнем регистре, а в Ubilling - в нижнем, потом авторизация не проходит. Это можно как-то исправить?

 

Как можно во freeradius перевести передаваемый Cleartext-Password в верхний регистр?

Відредаговано Golthana
Ссылка на сообщение
Поделиться на других сайтах

Скорее всего, вопрос разработчикам. Где описаны макросы? Нужно, например, в запрос к БД касательно МАСа добавить параметр ucase, чтобы МАС выдавался в верхнем регистре.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

С макросами тоже разобрался. А при смене тех параметров, при которых вызывается ресет. Все они вызывают один модуль reset?

Коротко говоря нужно вместе с ресетом выполнить еще один скрипт, который будет сбрасывать сессию на NAS для применения актуальных параметров.

Відредаговано Golthana
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Вообщем удалось сделать так: на удаленный NAS передаются атрибуты: для авторизации {nethost[mac]}, потом Mikrotik-Address-List передаю состояние пользователя {user[state]} (далее в зависимости от названия листа, перенаправляю на нужную страницу(у кого нет денег - страница о уведомлении о состоянии счета, кто заморожен - уведомление о том, что, вероятнее всего, абонент приостановил услуги и так далее), потом передаю Mikrotik-Rate-Limit, здесь я добавил макрос {speed[burst]}, которых в одной строке передает: "скорость отдачи/скорость приема+бурст лимт(скорость приема+128)+бурст трешолд(скорость приема-128)+бурст тайм 30 сек". 

 

Все это работает нормально, теперь надо, чтобы во всех тех случаях, когда при смене параметров выполняется сброс пользователя, еще и (в случае включенного radius в alter.ini) выполнялся еще один скрипт, который в текстовый файл вносит нужные параметры. Вот пример файла

User-Name=MAC of users
NAS-IP-Address=IP of NAS
Framed-IP-Address=User's ip address
 
И далее должна выполнится команда cat /part-to-txtfile |  radclient -r 1 ip_of_nas:pod_port(default 1700) 'disconnect' 'secret for nas'
 
Сам скрипт я напишу, мне нужна помощь, в частности подсказать куда вписывать или нужно вписывать в каждый модуль, где предусмотрен reset user?
Обратил внимание на $billing->resetuser($login). Где он описан?
 
Кроме того, все те строки, которые я впишу в модули, удалятся вместе в обновлением. Уважаемые разработчики, можно ли данный механизм включить в официальный релиз, с учетом того, что скрипт, который я попытаюсь сделать будет выполнятся только если включен radius в alter.ini, то есть, кому не надо, тому мешать не будет, а кто все же будет использовать radius авторизацию на Mikrotik, тому, может, и пригодится. Заранее спасибо за ответ. 
 
P.S. Все скрипты и изменения я готов предоставить для проверки со стороны разработчиков
Відредаговано Golthana
Ссылка на сообщение
Поделиться на других сайтах

.../billing/api/api.stargazer там есть функция resetuser. Я так понимаю, это то место, где мне надо дописать. Вопрос остался только с обновлением, а точнее включением всего этого в релиз

Ссылка на сообщение
Поделиться на других сайтах

Все готово и работает. Если, все же, есть вероятность внесение в оф. релиз, то дайте знать. Я напишу какие изменения я внес. Всем спасибо за помощь.

Также, если тема будет кому-то актуальна, тоже дайте знать. А то писать много, если никому не надо... ну сами понимаете.

Ссылка на сообщение
Поделиться на других сайтах

Вопрос с обновлениями снят, так как все изменения перенес в скрипты OnConnect OnDisconnect. Если я правильно понял, то они не попадают под автообновления.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...