Страница 1 из 1

Freeradius не передаются атрибуты

Добавлено: Чт янв 24, 2008 4:29 pm
Дерзкий Харри
Спасибо ребятам за биллинг...если будет нужна помощь...обращайтесь, безвозмездно помогу, кстати хотелось бы сделать диз на темах...ну да этим я займусь уж после всего остального)))

Все делал по http://abills.net.ua/wiki/doku.php?id=a ... install:ru
поднял сначала rp-pppoe-server (кстати для всех кто сидит на RedHat`овских дистрах...например как я на Slackware....rp-pppoe ы включеным syslog`ом не работает, причину пока не выяснил, bug report отправил) , но потом всетаки решил что pppoe мне не подходит и поднял pptp (для тех у кого ppp-2.4.4 и pptpd-1.3.4: необходимо в исходникак pptpd в файле plugins/patchlevel.h исправить версию на 2.4.4, в противном случае будут проблемы с либой logwtmp)...поднял и его....прикрутил mschap-v2 и mppe...все работает, юзвери лезут в нэт...подошел долгожданный момент разграничения траффика и прикручивание шейпера...тут то все и началось(((
В словарь Radiusclient`a и Freeradius добавил необходимые атрибуты взятые из http://abills.net.ua/wiki/doku.php?id=a ... radattr:ru, но...по велению судьбы нибось...чуда не произошло...
И так, суть проблмы заключается вот в чем: в файлик /var/run/radattr.pppX не пишутся атрибуты необходимые мне для шейпинга(((

radattr.pppX:

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

MS-CHAP2-Success \333S=017AA52DF0238BFBC0B66E4474FEFF661ECBF31A
MS-MPPE-Recv-Key \220\011\024\232\327\265P2\232\304#\223\316\232\367\264\340\206\233\236>d\2677\352\270\362\256\374\372\372\325\215{
MS-MPPE-Send-Key \234\212\211\202\331\2612\311\355\204\245)\322\230\220\262\272\353\242zw\270r\301\316\351\022\244\204'&u,q
MS-MPPE-Encryption-Policy 
MS-MPPE-Encryption-Types 
естетсвенно с выключенным шифрованием он вовсе пуст...проблема где то во freeradius или же radiusclient`е, т.к. аналогичная проблема получается и с pppoe
Подскажите куда копать?! МОЛЮ!!!! Где я мог лоханутся?! не думаю что ток у меня руки не пропатчены :)

запуск radtest 1234 1234 127.0.0.1:1812 0 fuckyourpass 0 127.0.0.1
говорит что всё нормально:

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

Sending Access-Request of id 235 to 127.0.0.1 port 1812
        User-Name = "1234"
        User-Password = "1234"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Framed-Protocol = PPP
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=235, length=20
а в лог абиллса кладётся следующее:

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

 2008-01-24 19:31:31 LOG_WARNING: AUTH [1234] NAS: 0 Unknow server '127.0.0.1' [2] ERROR_NOT_EXIST
хотя NAS 127.0.0.1 прописа везде...и в самом биллинге и в freeradius и в radiusclient...авторизация проходит нормално...юзер подключается...получает ip, ms-dns и т.д.
Мистика прям какая-то, чесн слово))))

версии ПО:
Slackware 12.0
freeradius 1.1.7
radiusclient 0.3.2
abills взят с CVS
ядро 2.6.21.5

P.S. Freeradius 2.0.0 умышленно не стал ставить, т.к. там не работают Exec-Program и Exec-Program-Wait...там это реализованно каким-то скриптом...разбиратся не стал, ибо голова и без того уж болит, а прост поставил freeradius 1.1.7 :)[/code]

Добавлено: Чт янв 24, 2008 6:15 pm
ran
Слишком мало информации. radiusd -X и смотри что он на экран птшет при авторизации

Глядишь и сам увидишь :)

Добавлено: Пт янв 25, 2008 12:54 pm
Дерзкий Харри
лог радиуса в отладочном режиме:

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

ad_recv: Access-Request packet from host 127.0.0.1:33096, id=168, length=144
        Service-Type = Framed-User
        Framed-Protocol = PPP
        User-Name = "1234"
        MS-CHAP-Challenge = 0x30f6b53df3cade1b78e38a15293b0ccf
        MS-CHAP2-Response = 0x6400b4fe3921a7c2bc587b220ab7e46370dd0000000000000000d55c4453ff8f0dbd4a7382f0738fb7db48b2309d050574da
        Calling-Station-Id = "172.16.0.3"
        NAS-IP-Address = 172.16.0.1
        NAS-Port = 1
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 6
Exec-Program output: User-Password == "1234"
Exec-Program-Wait: value-pairs: User-Password == "1234"
Exec-Program: returned: 0
  modcall[authorize]: module "pre_auth" returns ok for request 6
  modcall[authorize]: module "preprocess" returns ok for request 6
  modcall[authorize]: module "attr_filter" returns noop for request 6
  modcall[authorize]: module "chap" returns noop for request 6
  rlm_mschap: Found MS-CHAP attributes.  Setting 'Auth-Type  = mschap'
  modcall[authorize]: module "mschap" returns ok for request 6
    rlm_realm: No '@' in User-Name = "1234", looking up realm NULL
    rlm_realm: No such realm "NULL"
  modcall[authorize]: module "suffix" returns noop for request 6
    users: Matched entry DEFAULT at line 1
  modcall[authorize]: module "files" returns ok for request 6
  rlm_eap: No EAP-Message, not doing EAP
  modcall[authorize]: module "eap" returns noop for request 6
modcall: leaving group authorize (returns ok) for request 6
  rad_check_password:  Found Auth-Type MS-CHAP
auth: type "MS-CHAP"
  Processing the authenticate section of radiusd.conf
modcall: entering group MS-CHAP for request 6
  rlm_mschap: Told to do MS-CHAPv2 for 1234 with NT-Password
rlm_mschap: adding MS-CHAPv2 MPPE keys
  modcall[authenticate]: module "mschap" returns ok for request 6
modcall: leaving group MS-CHAP (returns ok) for request 6
Sending Access-Accept of id 168 to 127.0.0.1 port 33096
        MS-CHAP2-Success = 0x64533d31333430314530353545394437463037444432384136343034453544433541464430414633454543
        MS-MPPE-Recv-Key = 0x0a24eace4c0105249ebda5ffd5feee6a
        MS-MPPE-Send-Key = 0x4ce1e45038a8686bd9f5d796da9db330
        MS-MPPE-Encryption-Policy = 0x00000002
        MS-MPPE-Encryption-Types = 0x00000004
Finished request 6
Going to the next request
--- Walking the entire request list ---
Waking up in 6 seconds...
rad_recv: Accounting-Request packet from host 127.0.0.1:33096, id=169, length=108
        Acct-Session-Id = "4799BD29625000"
        User-Name = "1234"
        Acct-Status-Type = Start
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Calling-Station-Id = "172.16.0.3"
        Acct-Authentic = RADIUS
        NAS-Port-Type = Async
        Framed-IP-Address = 192.168.1.1
        NAS-IP-Address = 172.16.0.1
        NAS-Port = 1
        Acct-Delay-Time = 0
  Processing the preacct section of radiusd.conf
modcall: entering group preacct for request 7
  modcall[preacct]: module "preprocess" returns noop for request 7
rlm_acct_unique: Hashing 'NAS-Port = 1,Client-IP-Address = 127.0.0.1,NAS-IP-Address = 172.16.0.1,Acct-Session-Id = "4799BD29625000",User-Name = "1234"'
rlm_acct_unique: Acct-Unique-Session-ID = "20e1617dae3b8cca".
  modcall[preacct]: module "acct_unique" returns ok for request 7
    rlm_realm: No '@' in User-Name = "1234", looking up realm NULL
    rlm_realm: No such realm "NULL"
  modcall[preacct]: module "suffix" returns noop for request 7
    acct_users: Matched entry DEFAULT at line 1
  modcall[preacct]: module "files" returns ok for request 7
modcall: leaving group preacct (returns ok) for request 7
  Processing the accounting section of radiusd.conf
modcall: entering group accounting for request 7
radius_xlat:  '/usr/local/radiusd/var/log/radius/radacct/127.0.0.1/detail-20080125'
rlm_detail: /usr/local/radiusd/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /usr/local/radiusd/var/log/radius/radacct/127.0.0.1/detail-20080125
  modcall[accounting]: module "detail" returns ok for request 7
  modcall[accounting]: module "unix" returns ok for request 7
radius_xlat:  '/usr/local/radiusd/var/log/radius/radutmp'
radius_xlat:  '1234'
  modcall[accounting]: module "radutmp" returns ok for request 7
modcall: leaving group accounting (returns ok) for request 7
Sending Accounting-Response of id 169 to 127.0.0.1 port 33096
Finished request 7
Going to the next request
--- Walking the entire request list ---
Waking up in 4 seconds...
--- Walking the entire request list ---
Cleaning up request 6 ID 168 with timestamp 4799bd27
Waking up in 2 seconds...
--- Walking the entire request list ---
Cleaning up request 7 ID 169 with timestamp 4799bd29
Nothin to do.  Sleeping until we see a request.
Вроде бы ничего, лично мне, в глаза не бросается
Включил логирование в радиусе:
/var/log/radius/radacct/127.0.0.1/detail-20080125

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

Fri Jan 25 14:52:48 2008
	Acct-Session-Id = "4799BF8077BC00"
	User-Name = "1234"
	Acct-Status-Type = Start
	Service-Type = Framed-User
	Framed-Protocol = PPP
	Calling-Station-Id = "172.16.0.3"
	Acct-Authentic = RADIUS
	NAS-Port-Type = Async
	Framed-IP-Address = 192.168.1.1
	NAS-IP-Address = 172.16.0.1
	NAS-Port = 1
	Acct-Delay-Time = 0
	Client-IP-Address = 127.0.0.1
	Acct-Unique-Session-Id = "cc1ac02dfac7812f"
	Timestamp = 1201258368

Добавлено: Пт янв 25, 2008 2:16 pm
Дерзкий Харри
удалосьб установить где же все таки проблемма....а проблема в скрипте /usr/abills/libexec/rauth.pl
не срабатует именно он, ибо когда я в users его отключаю и раскоментирую дэфолтовые конфиги радиуса...то в radattr.pppX атрибуты пишутся нормально...продолжаем поиски)))

Добавлено: Пт янв 25, 2008 3:22 pm
Дерзкий Харри
YYYYYYYYYYEEEEEEEEESSSSSSSSSS!!!!!!!!!!!!!!
Посмотрев и проверив файлая rauth.pl и racct.pl оказалось, что по какой-то неведанной причине он не берет с базы `nas_identifier`, хотя он везде указан.... :!: :!: :!:
Посему, в этих файлах (строка примерно 89 для rauth.pl) грубо и цинично меняем строку:

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

 $NAS_PARAMS{NAS_IDENTIFIER}=$RAD->{NAS_IDENTIFIER} if (defined($RAD->{NAS_IDENTIFIER}));
на:

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

$NAS_PARAMS{NAS_IDENTIFIER}="PPPD";
и все теперь тип топ)))
Причина сего недорозумения не ясна, посему продолжу её поиски уж после празднования перехода на Abills)))
Успехов начинающим)))

P.S. Я наверн чуть не правильно понял :roll: и...NAS_IDENTIFIER должен браться не с базы а передаватся радиусом....тогда, хмммм...почему же он его не передает....любопытно блин...

Добавлено: Пт янв 25, 2008 3:50 pm
HikeR
я просто оставил это поле незаполненным (в настройках NAS-а)

Добавлено: Пт янв 25, 2008 4:03 pm
Дерзкий Харри
я тоже сначала не заполнял, но....но увы не помогло

Добавлено: Пн дек 01, 2008 4:24 pm
core
2 НАС на линукс pppd. NAS#1 там же где абиллис, NAS#2 другой сервер.

Если в настройках радиусклиента выставить значение NAS_identifier, то в мониторинге все правильно показывает - отдельно для каждого NAS, но клиент не получает нужные атрибуты - например скорость.
Если оставить по умолчанию то атрибуты получает, но в мониторинге все сессии отображаются в одном НАС, и те у которых одинаковые порты выделяются зеленым цветом.

Баг или я чтото не докрутил?

Добавлено: Пн дек 01, 2008 5:17 pm
core
Увидел решение в соседней ветке. Спасибо ran!

стоит поиграться с файликом hosts чтобы имя компа резолвилось как нормальный IP а не 127.0.0.1