forum.bitel.ru http://forum.bitel.ru/ |
|
Проблема авторизации Freeswitch Bgbilling http://forum.bitel.ru/viewtopic.php?f=6&t=9596 |
Страница 1 из 1 |
Автор: | karabas [ 21 авг 2014, 07:03 ] |
Заголовок сообщения: | Проблема авторизации Freeswitch Bgbilling |
Добрый день Помогите пожалуйста разобраться с регистрацией пользователей на биллинге совместно с 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 использовать? |
Автор: | stark [ 21 авг 2014, 10:10 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
Там есть Authenticator. Но он неправильный. Одна из возможных причин в том что на указанный секрет на nas-е не совпадает с тем, что указан в биллинге (в настройке Nas). Этот секрет используется для формирования message-authenticator и должен быть правильно забит в биллинге. |
Автор: | karabas [ 21 авг 2014, 11:53 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
Спасибо. Сверил секреты , в настройках свитча и в биллинге в "Редактор 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 |
Автор: | stark [ 21 авг 2014, 12:07 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
На основе всего содержимого пакета и секрета, вычисляется хэш с помощью алгоритма HMAC_MD5 . Это и есть есть Message_Authenticator. На стороне radius-а происходит аналогичная проверка на основе содержимого пакета и секрета на nas. Полученный хэш не совпадает с переданным Message_Authenticator. |
Автор: | karabas [ 22 авг 2014, 12:47 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
А подскажите пожалуйста как посчитать самому и попытаться понять почему получается не тот результат ? Из чего должно все складываться и что должно получиться? Или в ХД? |
Автор: | stark [ 22 авг 2014, 13:27 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
Прошу прощения, я ошибся. Атрибута message-authenticator у вас нет вообще в пакете. А по стандарту должен быть. |
Автор: | Amir [ 22 авг 2014, 13:32 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
В том же 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 опциональной. |
Автор: | karabas [ 22 авг 2014, 16:50 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
А как от теории к практике приступить, попробовать? Какими то шаманскими действиями или в клиенте можно? |
Автор: | stark [ 22 авг 2014, 17:29 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
karabas писал(а): А как от теории к практике приступить, попробовать? Какими то шаманскими действиями или в клиенте можно? Проблема в том что мы плохо знаем Freeswitch. Его нужно настроить. Надо с его стороны либо перестать слать Digest-Method чтобы мы не проверяли Message-Authenticator либо настроить чтобы слался Message-Authenticator. |
Автор: | Amir [ 22 авг 2014, 20:22 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
Не слать Digest-Method не получится, т.к. это идет Digest авторизация. Либо в freeswitch сделать чтобы посылался Message-Authenticator. Либо в freeswitch поменять тип авторизации на другой (не RFC5090). Либо нам делать доработку, чтобы можно было не проверять Message-Authenticator (т.е. чтобы биллинг мог работать не совсем по RFC5090, как, похоже, в данном случае работает freeswitch). |
Автор: | karabas [ 25 авг 2014, 12:18 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
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 |
Автор: | karabas [ 27 авг 2014, 18:04 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
Up. Any news? |
Автор: | Amir [ 27 авг 2014, 18:20 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
5090 основан на 2617. А 2617 для HTTP. Версия биллинга? |
Автор: | karabas [ 27 авг 2014, 20:08 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
6.0 |
Автор: | karabas [ 28 авг 2014, 09:47 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
Ура!!! Спасибо огромное!!!!!! Новое обновление и добавление в конфигурацию модуля voiceip параметра radius.messageAuthenticator.validate=0 Решило проблемы авторизации Freeswitch и Radius - авторизация проходит на ура !!!! Еще раз огромное человеческое спасибо!!! |
Автор: | Amir [ 28 авг 2014, 13:23 ] |
Заголовок сообщения: | Re: Проблема авторизации Freeswitch Bgbilling |
Забыл отписать о том что выложили обновление ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |