Freebsd & freeradius 2.2.1 sqlcounter.

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
amv
рядовой
Сообщения: 23
Зарегистрирован: 2008-03-21 17:37:03

Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение amv » 2013-10-29 3:04:19

Почему проходит авторизция?

Код: Выделить всё

authorize {
	preprocess
	chap
	mschap
	digest
	suffix
	eap {
		ok = return
	}
	sql
	noresetcounter
	octetslimit
	expire_on_login
	expiration
	logintime
}
debug:

Код: Выделить всё

...
rlm_sqlcounter: Entering module authorize code 
rlm_sqlcounter: Could not find Check item value pair 
++[noresetcounter] = noop 
rlm_sqlcounter: Entering module authorize code 
WARNING: Please replace '%k' with '${key}' 
sqlcounter_expand:  'SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='%{User-Name}'' 
[octetslimit] 	expand: SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='%{User-Name}' -> SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15' 
WARNING: Please replace '%S' with '${sqlmod-inst}' 
sqlcounter_expand:  '%{sql:SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15'}' 
[octetslimit] sql_xlat 
[octetslimit] 	expand: %{User-Name} -> garzot15 
[octetslimit] sql_set_user escaped user --> 'garzot15' 
[octetslimit] 	expand: SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15' -> SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15' 
rlm_sql (sql): Reserving sql socket id: 3 
[octetslimit] sql_xlat finished 
rlm_sql (sql): Released sql socket id: 3 
[octetslimit] 	expand: %{sql:SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15'} -> 87050165 
[b]rlm_sqlcounter: (Check item - counter) is less than zero 
rlm_sqlcounter: Rejected user garzot15, check_item=52428800, counter=87050165 
++[octetslimit] = reject [/b]  ####################################### Здесь авторизация должна была остановиться. 
rlm_sqlcounter: Entering module authorize code 
WARNING: Please replace '%k' with '${key}' 
sqlcounter_expand:  'SELECT TIME_TO_SEC(TIMEDIFF(NOW(), acctstarttime)) 		 FROM radacct 		 WHERE UserName='%{User-Name}' 		 ORDER BY acctstarttime 		 LIMIT 1;' 
[expire_on_login] 	expand: SELECT TIME_TO_SEC(TIMEDIFF(NOW(), acctstarttime)) 		 FROM radacct 		 WHERE UserName='%{User-Name}' 		 ORDER BY acctstarttime 		 LIMIT 1; -> SELECT TIME_TO_SEC(TIMEDIFF(NOW(), acctstarttime)) 		 FROM radacct 		 WHERE UserName='garzot15' 		 ORDER BY acctstarttime 		 LIMIT 1; 
WARNING: Please replace '%S' with '${sqlmod-inst}' 
sqlcounter_expand:  '%{sql:SELECT TIME_TO_SEC(TIMEDIFF(NOW(), acctstarttime)) 		 FROM radacct 		 WHERE UserName='garzot15' 		 ORDER BY acctstarttime 		 LIMIT 1;}' 
[expire_on_login] sql_xlat 
[expire_on_login] 	expand: %{User-Name} -> garzot15 
[expire_on_login] sql_set_user escaped user --> 'garzot15' 
[expire_on_login] 	expand: SELECT TIME_TO_SEC(TIMEDIFF(NOW(), acctstarttime)) 		 FROM radacct 		 WHERE UserName='garzot15' 		 ORDER BY acctstarttime 		 LIMIT 1; -> SELECT TIME_TO_SEC(TIMEDIFF(NOW(), acctstarttime)) 		 FROM radacct 		 WHERE UserName='garzot15' 		 ORDER BY acctstarttime 		 LIMIT 1; 
rlm_sql (sql): Reserving sql socket id: 2 
[expire_on_login] sql_xlat finished 
rlm_sql (sql): Released sql socket id: 2 
[expire_on_login] 	expand: %{sql:SELECT TIME_TO_SEC(TIMEDIFF(NOW(), acctstarttime)) 		 FROM radacct 		 WHERE UserName='garzot15' 	 ORDER BY acctstarttime 		 LIMIT 1;} -> 239033 
rlm_sqlcounter: Check item is greater than query result 
rlm_sqlcounter: Authorized user garzot15, check_item=432000, counter=239033 
rlm_sqlcounter: Sent Reply-Item for user garzot15, Type=Session-Timeout, value=192967 
++[expire_on_login] = ok 
++[expiration] = noop 
++[logintime] = noop 
++[pap] = updated 
+} # group authorize = updated 
Found Auth-Type = PAP 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
!!!    Replacing User-Password in config items with Cleartext-Password.     !!! 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
!!! Please update your configuration so that the "known good"               !!! 
!!! clear text password is in Cleartext-Password, and not in User-Password. !!! 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
# Executing group from file /usr/local/etc/raddb/sites-enabled/default 
+group PAP { 
[pap] login attempt with password "nidpokak" 
[pap] Using clear text password "nidpokak" 
[pap] User authenticated successfully 
++[pap] = ok 
+} # group PAP = ok 
# Executing section session from file /usr/local/etc/raddb/sites-enabled/default 
+group session { 
++[sql] = noop 
+} # group session = noop 
Login OK: [garzot15/nidpokak] 
Последний раз редактировалось f_andrey 2013-10-29 5:57:11, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума, оформляйте сообщение по человечески.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение Гость » 2013-10-29 9:05:59

а там не должно быть что то типа err = return в каждом модуле?

amv
рядовой
Сообщения: 23
Зарегистрирован: 2008-03-21 17:37:03

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение amv » 2013-10-29 9:17:41

На freeradius-2.1.12 работает нормально. То есть user не проходит авторизацию.

Гость
проходил мимо

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение Гость » 2013-10-29 10:59:38

ну покажите лог 2.1.12
чем обусловлен переход на новую версию? простым желанием апдейтится?
сделайте полный лог радиуса от начала его загрузки на двух версиях
и потом эти два лога сравните через diff -urN
и посмотри что там радикально так сменилось в этапах инициализации радиуса и дальнейшей работы

amv
рядовой
Сообщения: 23
Зарегистрирован: 2008-03-21 17:37:03

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение amv » 2013-10-29 14:48:07

Хотим осуществить постепенный переход со старой системы (FreeBSD 7.0), на более современную (9.1).
А вот лог (freeradius 2.1.12):

Код: Выделить всё

# Executing section authorize from file /usr/local/etc/raddb/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "garzot15", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
[sql] 	expand: %{User-Name} -> garzot15
[sql] sql_set_user escaped user --> 'garzot15'
rlm_sql (sql): Reserving sql socket id: 4
[sql] 	expand: SELECT id, username, attribute, value, op           FROM radcheck           WHERE username = '%{SQL-User-Name}'           ORDER BY id -> SELECT id, username, attribute, value, op           FROM radcheck           WHERE username = 'garzot15'           ORDER BY id
[sql] User found in radcheck table
[sql] 	expand: SELECT id, username, attribute, value, op           FROM radreply           WHERE username = '%{SQL-User-Name}'           ORDER BY id -> SELECT id, username, attribute, value, op           FROM radreply           WHERE username = 'garzot15'           ORDER BY id
[sql] 	expand: SELECT groupname           FROM usergroup           WHERE username = '%{SQL-User-Name}'           ORDER BY priority -> SELECT groupname           FROM usergroup           WHERE username = 'garzot15'           ORDER BY priority
[sql] 	expand: SELECT id, groupname, attribute,           Value, op           FROM radgroupcheck           WHERE groupname = '%{Sql-Group}'           ORDER BY id -> SELECT id, groupname, attribute,           Value, op           FROM radgroupcheck           WHERE groupname = '50_mb_aero'           ORDER BY id
[sql] User found in group 50_mb_aero
[sql] 	expand: SELECT id, groupname, attribute,           value, op           FROM radgroupreply           WHERE groupname = '%{Sql-Group}'           ORDER BY id -> SELECT id, groupname, attribute,           value, op           FROM radgroupreply           WHERE groupname = '50_mb_aero'           ORDER BY id
rlm_sql (sql): Released sql socket id: 4
++[sql] returns ok
rlm_sqlcounter: Entering module authorize code
rlm_sqlcounter: Could not find Check item value pair
++[noresetcounter] returns noop
rlm_sqlcounter: Entering module authorize code
WARNING: Please replace '%k' with '${key}'
sqlcounter_expand:  'SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='%{User-Name}''
[octetslimit] 	expand: SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='%{User-Name}' -> SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15'
WARNING: Please replace '%S' with '${sqlmod-inst}'
sqlcounter_expand:  '%{sql:SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15'}'
[octetslimit] sql_xlat
[octetslimit] 	expand: %{User-Name} -> garzot15
[octetslimit] sql_set_user escaped user --> 'garzot15'
[octetslimit] 	expand: SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15' -> SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15'
rlm_sql (sql): Reserving sql socket id: 3
[octetslimit] sql_xlat finished
rlm_sql (sql): Released sql socket id: 3
[octetslimit] 	expand: %{sql:SELECT IFNULL(SUM(acctoutputoctets),0) from radacct WHERE UserName='garzot15'} -> 88010172
rlm_sqlcounter: (Check item - counter) is less than zero
rlm_sqlcounter: Rejected user garzot15, check_item=52428800, counter=88010172
++[octetslimit] returns reject
Invalid user (rlm_sqlcounter: Maximum never usage time reached): [garzot15/nidpokak] (from client private-network-Sonata port 1 cli 40-FC-89-D6-14-38)
Using Post-Auth-Type Reject
# Executing group from file /usr/local/etc/raddb/sites-enabled/default
+- entering group REJECT {...}
[attr_filter.access_reject] 	expand: %{User-Name} -> garzot15
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
Delaying reject of request 0 for 1 seconds
Going to the next request
Waking up in 0.9 seconds.
Sending delayed reject for request 0
Sending Access-Reject of id 0 to x.x.x.x port 32774
	Reply-Message = "Your maximum never usage time has been reached"
Waking up in 4.9 seconds.
Cleaning up request 0 ID 0 with timestamp +37
Ready to process requests.

Гость
проходил мимо

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение Гость » 2013-10-29 17:52:12

octetslimit это ваше локальное правило на машине, хз смотрите в конфиги
что то у вас там не то
вы на одной и той же машине запускаете эти два радиуса по очереди? ил машины разные? может конфиги не все перенесли

amv
рядовой
Сообщения: 23
Зарегистрирован: 2008-03-21 17:37:03

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение amv » 2013-10-30 2:14:33

машины разные.
Тот который работает FreeBSD 7.0 freeradius 2.1.12
На котором "не правильно" работает FreeBSD 8.3 freeradius 2.2.1
Конфиги пробовал по разному:
1. Установил с портов радиус, потом менял, что надо.
2. Полностью перетаскивал "рабочие" конфиги с "рабочей" машины.
Результат одинаковый.

Гость
проходил мимо

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение Гость » 2013-10-30 9:06:02

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

по самому модулю sql_counter особой разницы вверсиях нет
врядли глюк радиуса

может из за того что в ручную тестируете а не на реальном пользователе?

amv
рядовой
Сообщения: 23
Зарегистрирован: 2008-03-21 17:37:03

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение amv » 2013-10-30 9:28:14

Да согласен, что модуль sql_counter свое отрабатывает. Его задача задача выявить нарушения правил, которые я установил.
В данном случае превышения трафика четко выявляется и возвращается reject,
а radius запускает следующую проверку
rlm_sqlcounter: Entering module authorize code
expire_on_login
в место того, чтобы прекратить обслуживать этого юзера.

Гость
проходил мимо

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение Гость » 2013-10-30 9:31:41

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

amv
рядовой
Сообщения: 23
Зарегистрирован: 2008-03-21 17:37:03

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение amv » 2013-10-30 9:36:33

Я об этом думал. Не смог откатить назад порт freeradius2.

Гость
проходил мимо

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение Гость » 2013-10-30 9:43:34

вручную соберите и поставте
или через websvn найдите старую версию
или или, миллион вариантов

Гость
проходил мимо

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение Гость » 2013-10-30 9:44:24

ой плять, webcvs

amv
рядовой
Сообщения: 23
Зарегистрирован: 2008-03-21 17:37:03

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение amv » 2013-10-30 9:54:16

Мдя ... Похоже другого выхода нет (. Попробую поставить, как нить.

Гость
проходил мимо

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение Гость » 2013-10-30 10:17:12

ну как вариант бинарники перетяните с модулями

amv
рядовой
Сообщения: 23
Зарегистрирован: 2008-03-21 17:37:03

Re: Freebsd & freeradius 2.2.1 sqlcounter.

Непрочитанное сообщение amv » 2013-11-05 4:48:10

Откатиться на 2.1.12 не удалось.
Пока я занимался "откатами", в портах появилась версия 2.2.2 в котором исправили проблему.
То есть с установкой с портов версии 2.2.2 проблема исчезла.