Jump to content

Stg-2.405.9.8+vpn+freeradius


Recommended Posts

Прикольно.

Сделай корку и отправь на faust@stg.dp.ua. А лучше запусти gdb radiusd (потом: r -X) и когда упадет - сделай bt. И покажи что он выведет...

Link to post
Share on other sites

Собственно вот. Сейчас на мыло продублирую.

...
Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1:37444, id=176, length=63
	Service-Type = Framed-User
	Framed-Protocol = PPP
	User-Name = "test"
	Calling-Station-Id = "192.168.1.5"
	NAS-IP-Address = 192.168.1.111
	NAS-Port = 0
 Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 0
 modcall[authorize]: module "preprocess" returns ok for request 0
 modcall[authorize]: module "chap" returns noop for request 0
 modcall[authorize]: module "mschap" returns noop for request 0
rlm_realm: No '@' in User-Name = "test", looking up realm NULL
rlm_realm: No such realm "NULL"
 modcall[authorize]: module "suffix" returns noop for request 0
 rlm_eap: No EAP-Message, not doing EAP
 modcall[authorize]: module "eap" returns noop for request 0
users: Matched entry DEFAULT at line 153
users: Matched entry DEFAULT at line 172
users: Matched entry DEFAULT at line 184
 modcall[authorize]: module "files" returns ok for request 0
rlm_pap: WARNING! No "known good" password found for the user.  Authentication may fail because of this.
 modcall[authorize]: module "pap" returns noop for request 0
rlm_stg: stg_authorize()

Program received signal SIGSEGV, Segmentation fault.
0xb7c6262c in ?? ()
(gdb) bt
#0  0xb7c6262c in ?? ()
#1  0x00000000 in ?? ()
(gdb)

Link to post
Share on other sites

Все плохо.

Сегодня попробую "глазами" поискать, в каком месте у него нарушение сегментации может произойти.

Все плохо...

Link to post
Share on other sites

Предполагаю проблему вот в этом куске кода:

		uname = pairfind(request->packet->vps, PW_USER_NAME);
	if (uname) {
		DEBUG("rlm_stg: stg_authorize() user name defined as '%s'", uname->strvalue);
	} else {
		DEBUG("rlm_stg: stg_authorize() user name undefined");
		return RLM_MODULE_FAIL;
	}

Но самое интересное в том, что pairfind - это API FreeRADIUS :)

То есть - могу только развести руками...

Link to post
Share on other sites

Чем могу помочь?

По небольшому опыту компиляции других модулей, они помещаются в папку "src/modules/" и компилируются совместно с радиусом. Быть может это связано с использованием каких-то общих глобальных переменных?

Link to post
Share on other sites

Нет.

Тем более в документации сказано что можно собирать модуль как в дереве радиуса, так и сам по себе.

Помочь можешь поиском места где падает. Если разбираешся в программировании.

Link to post
Share on other sites

Добавил в указанный кусок два отладочных сообщения "1" и "2"

		/* quiet the compiler */
	instance = instance;
	request = request;
	DEBUG("1");
	uname = pairfind(request->packet->vps, PW_USER_NAME);
	DEBUG("2");

 

Результат radiusd -X:

rlm_stg: stg_authorize()
1
Ошибка сегментирования
root@dm:~#
root@dm:~#

 

На С не пишу. Много пишу на PHP. Во времена студенчества много писал на ассемблере под ВМ86 и Z80. Могу попробовать найти место ошибки в функции pairfind. Вот только где искать саму эту функцию? Если будут какие-то инструкции - готов их выполнить.

Link to post
Share on other sites
Я уже говорил, pairfind это API FreeRADIUS. Можешь написать им багрепорт...

 

Да ну какой багрепорт? Меня пошлют писать багрепорт авторам билингновой системы stargazer или еще дальше. К бабке не ходи. Раз уж у меня одного такие проблемы, то остается только искать другое решение по билингу.

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...