URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 69036
[ Назад ]

Исходное сообщение
"freeradius+mpd+mysql отключение пользователя при превышению лимита"

Отправлено shaa , 20-Сен-06 16:46 
Здрасте! Сорри если повторяюсь, но просмотрел все темы по поводу FreeRADIUS+MPD, не нашел подходящее решение или что-то упустил.
Вообщем стоит freeradius+mpd+mysql, все работает отлично, лимит проверяется на этапе логина, но это не решение. Вообщем, каким образом организовать отрубление пользователя во время сессии при превышении лимита трафика, используя только radius и mpd и ессно какой нить самодельный скрипт?
P.S. Юзать freenibs, radacct и т.д. пока нет необходимости и желания.
Мысли: Я так понимаю по событию mpd radius acct-update, вызывается accounting или? session и выполняется запрос из sql.conf accounting_update_query. Можно ли вставить в radiusd.conf в  accounting или? session exec вызов скрипта, который просто сбросит ng интерфейс юзверя???
Сорри если что-то неправильно понял... :-)

Содержание

Сообщения в этом обсуждении
"freeradius+mpd+mysql отключение пользователя при превышению ..."
Отправлено redmoon , 20-Сен-06 16:55 
>Здрасте! Сорри если повторяюсь, но просмотрел все темы по поводу FreeRADIUS+MPD, не
>нашел подходящее решение или что-то упустил.
>Вообщем стоит freeradius+mpd+mysql, все работает отлично, лимит проверяется на этапе логина, но
>это не решение. Вообщем, каким образом организовать отрубление пользователя во время
>сессии при превышении лимита трафика, используя только radius и mpd и
>ессно какой нить самодельный скрипт?
>P.S. Юзать freenibs, radacct и т.д. пока нет необходимости и желания.
>Мысли: Я так понимаю по событию mpd radius acct-update, вызывается accounting или?
>session и выполняется запрос из sql.conf accounting_update_query. Можно ли вставить в
>radiusd.conf в  accounting или? session exec вызов скрипта, который просто
>сбросит ng интерфейс юзверя???
>Сорри если что-то неправильно понял... :-)


хм. а можно более подробную схему.
ну сбросит он интерфейс.
а юзер перелогиниться и фейс опять поднимиться.
у меня так зделано. Юзеры при отрицательном балансе коннектятся к радиусу, входят в сеть, но не идут в интернет.


"freeradius+mpd+mysql отключение пользователя при превышению ..."
Отправлено shaa , 20-Сен-06 16:59 
>хм. а можно более подробную схему.
>ну сбросит он интерфейс.
>а юзер перелогиниться и фейс опять поднимиться.
>у меня так зделано. Юзеры при отрицательном балансе коннектятся к радиусу, входят
>в сеть, но не идут в интернет.
Интерфейс сбросится и юзверь отключится, но заново он залогинится не сможет, т.к. он достиг лимита... :-) Мне интересно как мне его вырубить в процессе работы, когда он достигает лимита.

"freeradius+mpd+mysql отключение пользователя при превышению ..."
Отправлено redmoon , 20-Сен-06 17:05 
>>хм. а можно более подробную схему.
>>ну сбросит он интерфейс.
>>а юзер перелогиниться и фейс опять поднимиться.
>>у меня так зделано. Юзеры при отрицательном балансе коннектятся к радиусу, входят
>>в сеть, но не идут в интернет.
>Интерфейс сбросится и юзверь отключится, но заново он залогинится не сможет, т.к.
>он достиг лимита... :-) Мне интересно как мне его вырубить в
>процессе работы, когда он достигает лимита.


ifconfig ngX delete


"freeradius+mpd+mysql отключение пользователя при превышению ..."
Отправлено shaa , 20-Сен-06 17:14 
>ifconfig ngX delete
Не сочтите за грубость(сарказм), но с ifconfig я пока не ссорился... :-) Наверное вопрос мой неккоректен.
Уточняю:
1. Каким образом мне выключаться пользователя, не прибегая к установке freenibs, radacct и т.д.(биллинг систем) при достижении лимита?
2. Если существует вариант вставить exec вызов скрипта содержащего проверку текущего трафиика и вырубающего интерфейс при достижении лимита в radiusd.conf в accounting или session (что отвечает за апдейт данных о сессии), то куда? (т.к. методом тыка пробовать не очень хоцца, т.к. сервак далеко от меня щаз)
3. snmp тоже не очень хочется юзать... :-) но если нет другого выбора, то придется.


"freeradius+mpd+mysql отключение пользователя при превышению ..."
Отправлено Giro , 20-Сен-06 20:19 
>>ifconfig ngX delete
>Не сочтите за грубость(сарказм), но с ifconfig я пока не ссорился... :-)
>Наверное вопрос мой неккоректен.
>Уточняю:
>1. Каким образом мне выключаться пользователя, не прибегая к установке freenibs, radacct
>и т.д.(биллинг систем) при достижении лимита?
>2. Если существует вариант вставить exec вызов скрипта содержащего проверку текущего трафиика
>и вырубающего интерфейс при достижении лимита в radiusd.conf в accounting или
>session (что отвечает за апдейт данных о сессии), то куда? (т.к.
>методом тыка пробовать не очень хоцца, т.к. сервак далеко от меня
>щаз)
>3. snmp тоже не очень хочется юзать... :-) но если нет другого
>выбора, то придется.


У меня база на Postgres я там прикрутил триггер который сбрасывает с эккаунта лимит раз в 2 минуты. Как сделать это же на MySQL не знаю. Пока не добрался до триггеров думал через тотже MPD выдирать сколько пользователь прокачал...
И внешний скрипт который из crontab раз в 2 минуты проверяет остаток и выкидывает через консоль MPD. Его можно запустить с возможностью коннектиться к нему по консоли. Конечно ноль в ноль не отрубается, но и за 2 минуты сильно в минус уйти у народа не получается. А потом минус погашается при следущей оплате.


"freeradius+mpd+mysql отключение пользователя при превышению ..."
Отправлено shaa , 21-Сен-06 10:36 
>У меня база на Postgres я там прикрутил триггер который сбрасывает с
>эккаунта лимит раз в 2 минуты. Как сделать это же на
>MySQL не знаю. Пока не добрался до триггеров думал через тотже
>MPD выдирать сколько пользователь прокачал...
>И внешний скрипт который из crontab раз в 2 минуты проверяет остаток
>и выкидывает через консоль MPD. Его можно запустить с возможностью коннектиться
>к нему по консоли. Конечно ноль в ноль не отрубается, но
>и за 2 минуты сильно в минус уйти у народа не
>получается. А потом минус погашается при следущей оплате.
:-) Вариант с crontab'ом я обдумывал, не хотелось прибегать к нему... ну думаю на время подойдет... :-) Спасибо.
P.S. Если есть интересней варианты, плз, поведайте...