Jump to content

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


Recommended Posts

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

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

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

Link to post
Share on other sites
OnDisconnect в такой связке не выполняется?

 

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

Link to post
Share on other sites

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

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

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

 

 

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

 

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

 

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

 

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

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

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

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

Link to post
Share on other sites

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:

Link to post
Share on other sites
/var/log/radius/

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

Link to post
Share on other sites
Простите делитанта, но где лежит лог модуля радиус и лог пользователя?

А в /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 и кредита и должно было выполниться отключение.

Link to post
Share on other sites

Вставил в скрипты онконнект и ондисконнект строчку для ведения лога подключений и отключений.Добавл пользователя 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', '');

Link to post
Share on other sites
Вставил в скрипты онконнект и ондисконнект строчку для ведения лога подключений и отключений.Добавл пользователя 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.

Link to post
Share on other sites

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

Link to post
Share on other sites
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>

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...