Перейти к содержимому

Отключение при отрицательном балансе Radius-0.81beta


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

Странно, но полазив по форуму не нашел обсуждение данной проблемы.

Вообщем ситуация следующая, стоит pptpd, к старгейзеру прикручен radius-0.81beta, авторизация происходит через него. НО при достижении отрицательного баланса счастливые юзеры весят в онлайне пока не надоест:rolleyes:

Есть ли методы борьбы с этим?;)

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

 

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

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

Еслиб он выполнялся, я бы сюда не писал. Стг не дает команды на выполнение скрипта при достижении 0 баланса и не отключает пользователя. Повторяюсь: в конфигураторе юзер висит в онлайн и трафик считается.

Если есть конкретные предложения или вопросы по конфигурации пишите, ну и перед тем как чтото советовать, сами попробуйте поставить :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах
Насколько я понял стг даже не пытается его выполнить. деньги кончаются а в конфигураторе юзер показывается как онлайн, обсчет трафика продолжается и деньги дальше уходят в минус, как при кредите. И так пока юзер не отключиться сам.

 

 

"Онлайн" означает, что пользователь в данный момент авторизован. А вот правила конекта для него не исполняются. Следует различать подсистемы авторизации (которая работает при любом балансе) и выполнения скриптов на подключение/отключение.

 

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

 

Для более глубокого анализа проблемы приведите пожалуйста:

 

1) версию сервера;

2) лог старта сервера и лог в момент того момента когда пользователь должен был быть отключен;

3) лог радиуса в этот момент;

4) лог пользователя в этот промежуток времени.

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

2009-08-09 02:56:39 -- Stg v. Stg 2.404
2009-08-09 02:56:39 -- Message queue created successfully. msgKey=5555 msgID=0
2009-08-09 02:56:39 -- Timer thread started successfully.
2009-08-09 02:56:39 -- Storage plugin: mysql_store v.0.67. Loading successfull.
2009-08-09 02:56:40 -- Users started successfully.
2009-08-09 02:56:40 -- Traffcounter started successfully.
2009-08-09 02:56:40 -- Module: 'ipq_cap v.1.1'. Start successfull. 0
2009-08-09 02:56:40 -- Module: 'Radius modul version 0.72alpha'. Start successfull. 18
2009-08-09 02:56:40 -- Module: 'InetAccess authorizator v.1.2'. Start successfull. 50
2009-08-09 02:56:40 -- Module: 'Always Online authorizator v.1.0'. Start successfull. 70
2009-08-09 02:56:40 -- Module: 'Pinger v.1.01'. Start successfull. 100
2009-08-09 02:56:40 -- Module: 'Stg configurator v.0.07'. Start successfull. 220
2009-08-09 02:56:40 -- Stg started successfully.

 

Простите делитанта, но где лежит лог модуля радиус и лог пользователя?

А в /var/log/stargazer.log у меня кроме ошибок подключения, запуска стг и удаления/добавления пользователя ничего не пишет.

Или необходимо включить debug? как это сделать :rolleyes:

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

А в /var/log/stargazer.log у меня кроме ошибок подключения, запуска стг и удаления/добавления пользователя ничего не пишет.

Или необходимо включить debug? как это сделать :rolleyes:

 

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

 

Добавьте в скрипт OnConnect в самый низ такую строку

echo "`date +%Y-%m-%d` `date +%H:%M:%S` -- User $LOGIN from $IP connected." >> /var/log/stargazer.log

 

Добавьте в скрипт OnDisconnect в самый низ такую строку

echo "`date +%Y-%m-%d` `date +%H:%M:%S` -- User $LOGIN from $IP disconnected." >> /var/log/stargazer.log

 

 

Это даст возможность записывать в лог сервера моменты подключения и отключения пользователей.

 

Отмечу, что логи необходимо привести за тот период времени, когда у пользователя баланс стал меньше 0 и кредита и должно было выполниться отключение.

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

Вставил в скрипты онконнект и ондисконнект строчку для ведения лога подключений и отключений.Добавл пользователя test1 и положил на счет 1рубль.

 

/var/log/stargazer.log

2009-08-10 23:30:01 -- Admin 'admin', 192.168.230.15: User 'test1' added.

2009-08-10 23:30:01 -- Admin 'admin', 192.168.230.15: User 'test1': 'IP' parameter changed from '*' to '10.0.0.7'.

2009-08-10 23:30:01 -- Admin 'admin', 192.168.230.15: User 'test1': 'address' parameter changed from '' to '?'.

2009-08-10 23:30:01 -- Admin 'admin', 192.168.230.15: User 'test1': 'group' parameter changed from '' to 'admin'.

2009-08-10 23:30:01 -- Admin 'admin', 192.168.230.15: User 'test1': 'password' parameter changed from '******' to '******'.

2009-08-10 23:30:01 -- Admin 'admin', 192.168.230.15: User 'test1': 'phone' parameter changed from '' to '?'.

2009-08-10 23:30:01 -- Admin 'admin', 192.168.230.15: User 'test1': 'realName' parameter changed from '' to '?'.

2009-08-10 23:30:01 -- Admin 'admin', 192.168.230.15: User 'test1': 'tariff' parameter changed from '*_NO_TARIFF_*' to 'tariff'.

2009-08-10 23:30:12 -- Admin 'admin', 192.168.230.15: User 'test1': 'cash' parameter changed from '0.000000' to '1.000000'.

2009-08-10 23:30:59 -- User test1 from 10.0.0.7 connected.

 

в 23 часа 34 минуты баланс стал равен -0,34р но отключения не последвало, интернет и обсчет продолжает идти, в логах ничего нет.

 

Вот дамп таблицы по этому пользователю.

 

(1203, NULL, NULL, 'test1', ''),

(1204, NULL, NULL, 'test1', ''),

(1205, NULL, NULL, 'test1', ''),

(1206, NULL, NULL, 'test1', ''),

(1207, NULL, NULL, 'test1', ''),

(1208, NULL, NULL, 'test1', ''),

(1209, NULL, NULL, 'test1', ''),

(1210, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"tariff" parameter changed from "*_NO_TARIFF_*" to "tariff".'),

(1211, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"group" parameter changed from "" to "admin".'),

(1212, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"password" parameter changed from "********" to "********".'),

(1213, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"ip" parameter changed from "*" to "10.0.0.7".'),

(1214, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"name" parameter changed from "" to "?".'),

(1215, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"address" parameter changed from "" to "?".'),

(1216, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"phone" parameter changed from "" to "?".'),

(1217, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"notify_method" parameter changed from "0" to "1".'),

(1218, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"dealer_percent" parameter changed from "0" to "".'),

(1219, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', 'User "test1" added.'),

(1220, NULL, NULL, 'test1', ''),

(1221, '2009-08-10 23:30:12', 'WebAdmin "admin" [192.168.230.1]', 'test1', 'Updating of the account (cash) for the sum "1"'),

(1222, NULL, NULL, 'test1', ''),

 

Повисев еще пару минут отключился сам.В логе:

2009-08-10 23:37:51 -- User test1 from 10.0.0.7 disconnected.

в mysql добавилась строчка

(1223, NULL, NULL, 'test1', '');

Ссылка на сообщение
Поделиться на других сайтах
Вставил в скрипты онконнект и ондисконнект строчку для ведения лога подключений и отключений.Добавл пользователя test1 и положил на счет 1рубль.

 

 

в 23 часа 34 минуты баланс стал равен -0,34р но отключения не последвало, интернет и обсчет продолжает идти, в логах ничего нет.

 

Вот дамп таблицы по этому пользователю.

 

Повисев еще пару минут отключился сам.В логе:

2009-08-10 23:37:51 -- User test1 from 10.0.0.7 disconnected.

в mysql добавилась строчка

(1223, NULL, NULL, 'test1', '');

 

 

1) Когда пользователь сам отключился, точно ли в логе сервера не появилось записи про отключение ?

2) Попробуйте выполнить скрипт дисконекта руками для любого работающего пользователя в данный момент. (./OnDisconnect test 10.0.0.7 1). Появится ли запись в логе сервера ?

3) по "(1223, NULL, NULL, 'test1', '');" очень похоже на неверную работу модуля mysql. Напомним, что в данный момент этот модуль не поддерживается и его корректную работу мы гарантировать не можем. Советуем перейти или на файловое хранилище данных или на модуль хранения в БД firebird.

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

...
(1217, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"notify_method" parameter changed from "0" to "1".'),
(1218, '2009-08-10 23:30:01', 'WebAdmin "admin" [192.168.230.1]', 'test1', '"dealer_percent" parameter changed from "0" to "".'),
...

 

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

Ссылка на сообщение
Поделиться на других сайтах
1) Когда пользователь сам отключился, точно ли в логе сервера не появилось записи про отключение ?

Повисев еще пару минут отключился сам.В логе:

2009-08-10 23:37:51 -- User test1 from 10.0.0.7 disconnected.

2) Попробуйте выполнить скрипт дисконекта руками для любого работающего пользователя в данный момент. (./OnDisconnect test 10.0.0.7 1). Появится ли запись в логе сервера ?

Появляется, скрипт выполняется, интернет не идет после его выполнения.

3) по "(1223, NULL, NULL, 'test1', '');" очень похоже на неверную работу модуля mysql. Напомним, что в данный момент этот модуль не поддерживается и его корректную работу мы гарантировать не можем. Советуем перейти или на файловое хранилище данных или на модуль хранения в БД firebird.

Перейти к сожалению не могу изза того что отчеты и админка организованны через STG-web.

 

А если поставлю вопрос по другому, в модуле radius_ia.so вообще предусмотренно отключение пользователя при достижении отрицательного баланса, или это делает само ядро стг?

 

#	<Module radius>
#		Password = *******
#		ServerIP = 127.0.0.1
#		Port = 6666
#		AuthServices = Login-User
#		AcctServices = Framed-User
#	</Module>

<Module radius_ia>
  Secret=*******
  NasIP=127.0.0.1 
  AuthPort=1812
  AcctPort=1813
  UpdateInterval=10 

</Module>

Вот так выглядит кусок конфига, надо ли здесь включать оба модуля или оставить как есть?

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

Вызов скрипта OnDisconnect выполняется самим Stargazer (а не модулями) в том случае если у пользователя на счету <= 0 денег и у него нет кредита.

По поводу модулей радиуса: radius - это наша разработка. Модуль работает в паре с FreeRADIUS + rlm_stg. radius_ia - это сторонняя разработка, работает сам по себе. Так что включать оба можно, но не нужно.

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

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

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

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

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

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

Войти

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

Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...