Здрасте! Сорри если повторяюсь, но просмотрел все темы по поводу 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, не
>нашел подходящее решение или что-то упустил.
>Вообщем стоит 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 интерфейс юзверя???
>Сорри если что-то неправильно понял... :-)
хм. а можно более подробную схему.
ну сбросит он интерфейс.
а юзер перелогиниться и фейс опять поднимиться.
у меня так зделано. Юзеры при отрицательном балансе коннектятся к радиусу, входят в сеть, но не идут в интернет.
>хм. а можно более подробную схему.
>ну сбросит он интерфейс.
>а юзер перелогиниться и фейс опять поднимиться.
>у меня так зделано. Юзеры при отрицательном балансе коннектятся к радиусу, входят
>в сеть, но не идут в интернет.
Интерфейс сбросится и юзверь отключится, но заново он залогинится не сможет, т.к. он достиг лимита... :-) Мне интересно как мне его вырубить в процессе работы, когда он достигает лимита.
>>хм. а можно более подробную схему.
>>ну сбросит он интерфейс.
>>а юзер перелогиниться и фейс опять поднимиться.
>>у меня так зделано. Юзеры при отрицательном балансе коннектятся к радиусу, входят
>>в сеть, но не идут в интернет.
>Интерфейс сбросится и юзверь отключится, но заново он залогинится не сможет, т.к.
>он достиг лимита... :-) Мне интересно как мне его вырубить в
>процессе работы, когда он достигает лимита.
ifconfig ngX delete
>ifconfig ngX delete
Не сочтите за грубость(сарказм), но с ifconfig я пока не ссорился... :-) Наверное вопрос мой неккоректен.
Уточняю:
1. Каким образом мне выключаться пользователя, не прибегая к установке freenibs, radacct и т.д.(биллинг систем) при достижении лимита?
2. Если существует вариант вставить exec вызов скрипта содержащего проверку текущего трафиика и вырубающего интерфейс при достижении лимита в radiusd.conf в accounting или session (что отвечает за апдейт данных о сессии), то куда? (т.к. методом тыка пробовать не очень хоцца, т.к. сервак далеко от меня щаз)
3. snmp тоже не очень хочется юзать... :-) но если нет другого выбора, то придется.
>>ifconfig ngX delete
>Не сочтите за грубость(сарказм), но с ifconfig я пока не ссорился... :-)
>Наверное вопрос мой неккоректен.
>Уточняю:
>1. Каким образом мне выключаться пользователя, не прибегая к установке freenibs, radacct
>и т.д.(биллинг систем) при достижении лимита?
>2. Если существует вариант вставить exec вызов скрипта содержащего проверку текущего трафиика
>и вырубающего интерфейс при достижении лимита в radiusd.conf в accounting или
>session (что отвечает за апдейт данных о сессии), то куда? (т.к.
>методом тыка пробовать не очень хоцца, т.к. сервак далеко от меня
>щаз)
>3. snmp тоже не очень хочется юзать... :-) но если нет другого
>выбора, то придется.
У меня база на Postgres я там прикрутил триггер который сбрасывает с эккаунта лимит раз в 2 минуты. Как сделать это же на MySQL не знаю. Пока не добрался до триггеров думал через тотже MPD выдирать сколько пользователь прокачал...
И внешний скрипт который из crontab раз в 2 минуты проверяет остаток и выкидывает через консоль MPD. Его можно запустить с возможностью коннектиться к нему по консоли. Конечно ноль в ноль не отрубается, но и за 2 минуты сильно в минус уйти у народа не получается. А потом минус погашается при следущей оплате.
>У меня база на Postgres я там прикрутил триггер который сбрасывает с
>эккаунта лимит раз в 2 минуты. Как сделать это же на
>MySQL не знаю. Пока не добрался до триггеров думал через тотже
>MPD выдирать сколько пользователь прокачал...
>И внешний скрипт который из crontab раз в 2 минуты проверяет остаток
>и выкидывает через консоль MPD. Его можно запустить с возможностью коннектиться
>к нему по консоли. Конечно ноль в ноль не отрубается, но
>и за 2 минуты сильно в минус уйти у народа не
>получается. А потом минус погашается при следущей оплате.
:-) Вариант с crontab'ом я обдумывал, не хотелось прибегать к нему... ну думаю на время подойдет... :-) Спасибо.
P.S. Если есть интересней варианты, плз, поведайте...