BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 01:52

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Проблема авторизации Freeswitch Bgbilling
СообщениеДобавлено: 21 авг 2014, 07:03 
Не в сети

Зарегистрирован: 07 апр 2014, 15:17
Сообщения: 11
Карма: 0
Добрый день
Помогите пожалуйста разобраться с регистрацией пользователей на биллинге совместно с Freeswitch
freeswitch отправляет REGISTER на биллинг следующего вида

Event: Event-Name: REQUEST_PARAMS
Core-UUID: 811021a8-2729-11e4-b03f-c78fa3d19e8e
FreeSWITCH-Hostname: centos
FreeSWITCH-Switchname: centos
FreeSWITCH-IPv4: 172.22.5.113
FreeSWITCH-IPv6: %3A%3A1
Event-Date-Local: 2014-08-19%2010%3A45%3A14
Event-Date-GMT: Mon,%2018%20Aug%202014%2023%3A45%3A14%20GMT
Event-Date-Timestamp: 1408405514408939
Event-Calling-File: sofia_reg.c
Event-Calling-Function: sofia_reg_parse_auth
Event-Calling-Line-Number: 2662
Event-Sequence: 1058
action: sip_auth
sip_profile: internal
sip_user_agent: Telephone%201.1.4
sip_auth_username: 1000
sip_auth_realm: 172.22.5.113
sip_auth_nonce: b35f4bcc-2731-11e4-b04f-c78fa3d19e8e
sip_auth_uri: sip%3A172.22.5.113
sip_contact_user: 1000
sip_contact_host: 169.254.171.21
sip_to_user: 1000
sip_to_host: 172.22.5.113
sip_via_protocol: udp
sip_from_user: 1000
sip_from_host: 172.22.5.113
sip_call_id: sQ5807XF5jW1GGkn7B84wPmBG8BhB8PB
sip_request_host: 172.22.5.113
sip_auth_qop: auth
sip_auth_cnonce: BjlBr1NFl5q0hxlfIMEXMjGGs9x1W9ZP
sip_auth_nc: 00000001
sip_auth_response: 1110304a99e4d316150e48756d50bd7b
sip_auth_method: REGISTER
client_port: 56459
key: id
user: 1000
domain: 172.22.5.113
ip: 172.22.5.116




В Биллинг в свою очередь в логе наблюдаю вот это:

08-21/04:54:35 WARN [rdsLstnr-p-4-t-20] RadiusListenerWorker - Check message authenticator fault for packet Packet type: Access-Request
Identifier: 111
Authenticator: {CF 2B A4 86 FE 28 25 27 7A 5F B8 DA A4 C2 4E A6}
Attributes:
User-Name=1000
Digest-Response=1110304a99e4d316150e48756d50bd7b
NAS-IP-Address=172.22.5.113
NAS-Port=0
Service-Type=8
Digest-Qop=auth
Digest-Algorithm=MD5
Digest-Method=REGISTER
Digest-URI=sip:172.22.5.113
Digest-Realm=172.22.5.113
Digest-Nonce=b35f4bcc-2731-11e4-b04f-c78fa3d19e8e
Digest-Username=1000
Digest-Nonce-Count=00000001
Digest-CNonce=BjlBr1NFl5q0hxlfIMEXMjGGs9x1W9ZP
Calling-Station-Id=1000
Called-Station-Id=1000


При этом биллинг молчит как партизан в логах и в мониторе .
Глядя на лог биллинга и множество постов с SMG1016 понимаю, что не хватает message-authenticator . Но не понимаю какая переменная должена быть этим message-authenticator и как ее вычислить, чтобы передать биллингу .
Фрисвитч отправляет согласно RFC5090 .
Можно ли как-то сделать регистрацию на стороне биллинга или костылем в фрисвитче это побеждать и на биллинг только acc_start и acc_stop использовать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 авг 2014, 10:10 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Там есть Authenticator. Но он неправильный. Одна из возможных причин в том что на указанный секрет на nas-е не совпадает с тем, что указан в биллинге (в настройке Nas). Этот секрет используется для формирования message-authenticator и должен быть правильно забит в биллинге.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 авг 2014, 11:53 
Не в сети

Зарегистрирован: 07 апр 2014, 15:17
Сообщения: 11
Карма: 0
Спасибо.
Сверил секреты , в настройках свитча и в биллинге в "Редактор NASов" совпадают.
это в freeswitch в настройке mod_xml_radius
<auth_reg>
<connection name="testing">
<param name="authserver" value="1.1.1.1:1812:111111"/>
в базе
mysql> select * from nas_1;
+----+------------+--------+------------+------+------------+-------+-----------+-----------+--------+--------+------------------+
| id | identifier | secret | ipaddr | type | date1 | date2 | comment | config_id | vendor | script | common_config_id |
+----+------------+--------+------------+------+------------+-------+-----------+-----------+--------+--------+------------------+
| 1 | Freeswitch | 111111 | 2887124337 | 0 | 2014-08-01 | NULL | easyroute | 1 | 9 | | |
+----+------------+--------+------------+------+------------+-------+-----------+-----------+--------+--------+------------------+

А что значит не правильный? "Там есть Authenticator. Но он неправильный"


Ниже логи повторно


Event-Name: REQUEST_PARAMS
Core-UUID: 811021a8-2729-11e4-b03f-c78fa3d19e8e
FreeSWITCH-Hostname: centos
FreeSWITCH-Switchname: centos
FreeSWITCH-IPv4: 172.22.5.113
FreeSWITCH-IPv6: %3A%3A1
Event-Date-Local: 2014-08-19%2015%3A42%3A37
Event-Date-GMT: Tue,%2019%20Aug%202014%2004%3A42%3A37%20GMT
Event-Date-Timestamp: 1408423357163512
Event-Calling-File: sofia_reg.c
Event-Calling-Function: sofia_reg_parse_auth
Event-Calling-Line-Number: 2662
Event-Sequence: 3973
action: sip_auth
sip_profile: internal
sip_user_agent: Telephone%201.1.4
sip_auth_username: 1000
sip_auth_realm: 172.22.5.113
sip_auth_nonce: 3e7a0912-275b-11e4-b0ae-c78fa3d19e8e
sip_auth_uri: sip%3A172.22.5.113
sip_contact_user: 1000
sip_contact_host: 172.22.5.116
sip_to_user: 1000
sip_to_host: 172.22.5.113
sip_via_protocol: udp
sip_from_user: 1000
sip_from_host: 172.22.5.113
sip_call_id: gCo01LUE0CR1z7NuTs-tgPYray3DlSqV
sip_request_host: 172.22.5.113
sip_auth_qop: auth
sip_auth_cnonce: GQ8gsDXzIlufRLqdORuLigg3.yCHpPZ1
sip_auth_nc: 00000001
sip_auth_response: 10c260aec4a1408c83defcf9edad709a
sip_auth_method: REGISTER
client_port: 56459
key: id
user: 1000
domain: 172.22.5.113
ip: 172.22.5.116


2014-08-19 15:42:37.163512 [ERR] mod_xml_radius.c:843 Section: directory
Tag: domain
Key_name: name
Key_value: 172.22.5.113






08-21/09:51:58 WARN [rdsLstnr-p-4-t-11] RadiusListenerWorker - Check message authenticator fault for packet Packet type: Access-Request
Identifier: 200
Authenticator: {F1 1C A2 E4 46 55 89 C1 D8 56 0D 0C 3D 9D 45 1D}
Attributes:
User-Name=1000
Digest-Response=10c260aec4a1408c83defcf9edad709a
NAS-IP-Address=172.22.5.113
NAS-Port=0
Service-Type=8
Digest-Qop=auth
Digest-Algorithm=MD5
Digest-Method=REGISTER
Digest-URI=sip:172.22.5.113
Digest-Realm=172.22.5.113
Digest-Nonce=3e7a0912-275b-11e4-b0ae-c78fa3d19e8e
Digest-Username=1000
Digest-Nonce-Count=00000001
Digest-CNonce=GQ8gsDXzIlufRLqdORuLigg3.yCHpPZ1
Calling-Station-Id=1000
Called-Station-Id=1000
cisco-avpair=request-type=user
cisco-avpair=src-gw-ip=172.22.5.116
cisco-avpair=src-gw-name=1000
h323-conf-id=gCo01LUE0CR1z7NuTs-tgPYray3DlSqV


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 авг 2014, 12:07 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
На основе всего содержимого пакета и секрета, вычисляется хэш с помощью алгоритма HMAC_MD5 . Это и есть есть Message_Authenticator. На стороне radius-а происходит аналогичная проверка на основе содержимого пакета и секрета на nas. Полученный хэш не совпадает с переданным Message_Authenticator.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 2014, 12:47 
Не в сети

Зарегистрирован: 07 апр 2014, 15:17
Сообщения: 11
Карма: 0
А подскажите пожалуйста как посчитать самому и попытаться понять почему получается не тот результат ? Из чего должно все складываться и что должно получиться?
Или в ХД?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 2014, 13:27 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Прошу прощения, я ошибся. Атрибута message-authenticator у вас нет вообще в пакете. А по стандарту должен быть.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 2014, 13:32 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
В том же 5090:
The Message-Authenticator Attribute, described in [RFC3579], Section
3.2 MUST be included in Access-Request, Access-Challenge, Access-
Reject, and Access-Accept messages that contain attributes described
in this specification.

The following table provides a guide to which attributes may be found
in which kinds of packets, and in what quantity.
Код:
Access- Access- Access- Access-    Acct-
 Request Accept  Reject  Challenge  Req   #  Attribute
  0-1      0      0      0          0-1   1  User-Name
  0-1      0      0      1          0    24  State [4]
  1        1      1      1          0-1  80  Message-Authenticator


Т.е. вроде как сам freeswitch работает не по rfc5090.
Как вариант, можно попробовать сделать проверку на наличие Message-Authenticator опциональной.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 2014, 16:50 
Не в сети

Зарегистрирован: 07 апр 2014, 15:17
Сообщения: 11
Карма: 0
А как от теории к практике приступить, попробовать? Какими то шаманскими действиями или в клиенте можно?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 2014, 17:29 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
karabas писал(а):
А как от теории к практике приступить, попробовать? Какими то шаманскими действиями или в клиенте можно?

Проблема в том что мы плохо знаем Freeswitch. Его нужно настроить. Надо с его стороны либо перестать слать Digest-Method чтобы мы не проверяли Message-Authenticator либо настроить чтобы слался Message-Authenticator.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 2014, 20:22 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Не слать Digest-Method не получится, т.к. это идет Digest авторизация.

Либо в freeswitch сделать чтобы посылался Message-Authenticator. Либо в freeswitch поменять тип авторизации на другой (не RFC5090).
Либо нам делать доработку, чтобы можно было не проверять Message-Authenticator (т.е. чтобы биллинг мог работать не совсем по RFC5090, как, похоже, в данном случае работает freeswitch).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 авг 2014, 12:18 
Не в сети

Зарегистрирован: 07 апр 2014, 15:17
Сообщения: 11
Карма: 0
Amir похоже прав, ни какой это не RFC 5090, очень похоже , что rfc2617
вообщем что выяснил .
что freeswitch пишет в аттрибут значение Digest-Response посчитанное в переменной Resp2 вот такого скрипта

#!/bin/sh

v_username='1000'

v_realm='172.22.5.113'

v_password='111111'

v_method='REGISTER'
v_digest_uri='sip: 172.22.5.113'

v_nonce='1b28b260-28c8-11e4-b80b-175cdc5c3992'
v_nonce_cnt='00000001'
v_client_nonce='lbTPMT7TI769eBB-5HFvcopX6uNAFApl'

ha1=`echo -n "$v_username:$v_realm:$v_password" | md5sum | cut -d ' ' -f 1`
echo "HA1=$ha1"

ha2=`echo -n "$v_method:$v_digest_uri" | md5sum | cut -d ' ' -f 1`
echo "HA2=$ha2"

resp1=`echo -n "$ha1:$v_nonce:$ha2" | md5sum | cut -d ' ' -f 1`
echo "RESP1=$resp1"

resp2=`echo -n "$ha1:$v_nonce:$v_nonce_cnt:$v_client_nonce:auth:$ha2" | md5sum | cut -d ' ' -f 1`
echo "RESP2=$resp2"


HA1=089757d5a9801f464627a0eb234f6ea3
HA2=14502416eca416b159dbaea6d2990d90
RESP1=152b847104ddc3f99269fce1a1ecb562
RESP2=f15cf6c0d9a8c1cd8d6b1888c65a0e3e

Скрипт дернут от сюда viewtopic.php?f=6&t=5694&start=15

Соответственно вопрос , можно ли как-то сделать проверку md5 исходя HA1 , Digest-Nonce-Count , Digest-Nonce, Digest-CNonce , Digest-Qop , HA2 , как рассчитывается RESP2?


Core-UUID: 906e147e-28bf-11e4-b7fb-175cdc5c3992
FreeSWITCH-Hostname: centos
FreeSWITCH-Switchname: centos
FreeSWITCH-IPv4: 172.22.5.113
FreeSWITCH-IPv6: %3A%3A1
Event-Date-Local: 2014-08-21%2011%3A14%3A24
Event-Date-GMT: Thu,%2021%20Aug%202014%2000%3A14%3A24%20GMT
Event-Date-Timestamp: 1408580064217464
Event-Calling-File: sofia_reg.c
Event-Calling-Function: sofia_reg_parse_auth
Event-Calling-Line-Number: 2662
Event-Sequence: 1069
action: sip_auth
sip_profile: internal
sip_user_agent: Telephone%201.1.4
sip_auth_username: 1000
sip_auth_realm: 172.22.5.113
sip_auth_nonce: 1b28b260-28c8-11e4-b80b-175cdc5c3992
sip_auth_uri: sip%3A172.22.5.113
sip_contact_user: 1000
sip_contact_host: 172.22.5.107
sip_to_user: 1000
sip_to_host: 172.22.5.113
sip_via_protocol: udp
sip_from_user: 1000
sip_from_host: 172.22.5.113
sip_call_id: YAZsgdzoruDKHFMdQ5DMAS8W7fMvndzK
sip_request_host: 172.22.5.113
sip_auth_qop: auth
sip_auth_cnonce: lbTPMT7TI769eBB-5HFvcopX6uNAFApl
sip_auth_nc: 00000001
sip_auth_response: f15cf6c0d9a8c1cd8d6b1888c65a0e3e
sip_auth_method: REGISTER
client_port: 58901
key: id
user: 1000
domain: 172.22.5.113
ip: 172.22.5.107




User-Name=1000
Digest-Response=f15cf6c0d9a8c1cd8d6b1888c65a0e3e
NAS-IP-Address=172.22.5.113
NAS-Port=0
Service-Type=8
Digest-Qop=auth
Digest-Algorithm=MD5
Digest-Method=REGISTER
Digest-URI=sip:172.22.5.113
Digest-Realm=172.22.5.113
Digest-Nonce=1b28b260-28c8-11e4-b80b-175cdc5c3992
Digest-Username=1000
Digest-Nonce-Count=00000001
Digest-CNonce=lbTPMT7TI769eBB-5HFvcopX6uNAFApl
Calling-Station-Id=1000
Called-Station-Id=1000
cisco-avpair=request-type=user
cisco-avpair=src-gw-ip=172.22.5.107
cisco-avpair=src-gw-name=1000
h323-conf-id=YAZsgdzoruDKHFMdQ5DMAS8W7fMvndzK


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 авг 2014, 18:04 
Не в сети

Зарегистрирован: 07 апр 2014, 15:17
Сообщения: 11
Карма: 0
Up. Any news?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 авг 2014, 18:20 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
5090 основан на 2617. А 2617 для HTTP.
Версия биллинга?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 авг 2014, 20:08 
Не в сети

Зарегистрирован: 07 апр 2014, 15:17
Сообщения: 11
Карма: 0
6.0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 авг 2014, 09:47 
Не в сети

Зарегистрирован: 07 апр 2014, 15:17
Сообщения: 11
Карма: 0
Ура!!!
Спасибо огромное!!!!!!
Новое обновление и добавление в конфигурацию модуля voiceip параметра
radius.messageAuthenticator.validate=0
Решило проблемы авторизации Freeswitch и Radius - авторизация проходит на ура !!!!
Еще раз огромное человеческое спасибо!!!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 авг 2014, 13:23 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Забыл отписать о том что выложили обновление :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 1.142s | 50 Queries | GZIP : On ]