forum.bitel.ru http://forum.bitel.ru/ |
|
OpenSER+Radius http://forum.bitel.ru/viewtopic.php?f=6&t=3070 |
Страница 1 из 2 |
Автор: | homer [ 23 окт 2009, 18:25 ] |
Заголовок сообщения: | OpenSER+Radius |
Здравствуйте. Тестируем вашу систему в связке с OpenSER(Kamailio-1.5.2)+BGbilling_4.6. Появились пока две проблемы при аутентификации по радиусу. 1--- Если в запрос добавляю аттрибуты: h323-call-type и h323-call-origin, то в логах радиуса сообщение - "ERROR [pool-1-thread-14] radius - NAS not found for Packet!!!". Без этих атрибутов аутентификация проходит(без галочки "проверять пароль" в установках типов логинов) и пользователь регистрируется на SIP-сервере. 2 --- Ставим галочку проверять пароль - выдаёт 2 код ошибки (Не верный пароль) - перепроверил и на радиус-клиенте и в установках NAS - секрет один и тот же, пароли клиента одни и те же (OpenSER использует DIgest). В чем может быть проблема ? какие логи или настройки показать, если нужно ? |
Автор: | iONE [ 23 окт 2009, 23:36 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Этот скрипт предобработки радиус атрибутов избавит тебя от необходимости этих атрибутов. Код: import bitel.billing.server.radius.*;
// установка всех звонков как исходящие, 2 - входящие // тут должна-быть какая-то логика, например анализ vendor атрибутов request.setFlag( 1 ); sessionId = request.getStringAttribute( 44 ); if( sessionId != null ) { request.setVendorStringAttribute(24, sessionId ); } |
Автор: | homer [ 26 окт 2009, 15:14 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Ну с выбором направлений допустим разобрались. А с аутентификацией чего-то не выходит - h323-return-code=2. Есть мысли ? secret совпадают, пароли тоже проверял;( |
Автор: | Администратор [ 26 окт 2009, 17:11 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Вы бы конфиги выложили, запросы из radius.log.. |
Автор: | homer [ 03 ноя 2009, 20:07 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Выкладываю конфиги: конфиг NAS Цитата: #код услуги привязанная к NAS service=1 #методы определения типа звонка auth.out=all/all acct.out=all/all из файла processor.log Цитата: 11-03/15:06:35 INFO [main] VoiceIpProcessor - [ NAS-Identifier: localhost; NAS-IP-Address: 127.0.0.1; SECRET: 123; Vendor: 9 ] find modes: Sip-URI-User=ALIAS User-Name=LOGIN User-Name=ALIAS Calling-Station-Id=ALIAS Тип логина - все определяется по связке Sip-URI-User=ALIAS radius.log Цитата: 11-03/17:02:00 DEBUG [pool-1-thread-10] VoiceIpProcessor - Process outgoing auth
Type=AUTHENTICATION_REQUEST Attributes: User-Name=vasya@212.1.224.117 Digest-Attributes= vasya Digest-Attributes=212.1.224.117 Digest-Attributes=24af037f600000001793e8b064520beda38ee1715235a70b8 Digest-Attributes=sip:212.1.224.117 Digest-Attributes= REGISTER Digest-Attributes=auth Digest-Attributes= 00000001 Digest-Attributes= 62b00646 Digest-Response=90d0b165d13cd7583cf81ab847f7eab7 NAS-IP-Address=127.0.0.1 NAS-Port=5060 Service-Type=15 Sip-URI-User=vasya 11-03/17:02:00 DEBUG [pool-1-thread-10] VoiceIpProcessor - Finding login.. 11-03/17:02:00 DEBUG [pool-1-thread-10] VoiceIpProcessor - Found login type 1 11-03/17:02:00 DEBUG [pool-1-thread-10] VoiceIpProcessor - Login found. 11-03/17:02:00 DEBUG [pool-1-thread-10] VoiceIpProcessor - Checking access allow.. 11-03/17:02:00 DEBUG [pool-1-thread-10] VoiceIpProcessor - Checking password.. 11-03/17:02:00 DEBUG [pool-1-thread-10] VoiceIpProcessor - Login password error 11-03/17:02:00 INFO [pool-1-thread-10] radius - RESPONSE: Type=AUTHENTICATION_REJECT Process time auth: 75 common_auth: 64 Attributes: h323-return-code=2 |
Автор: | homer [ 12 ноя 2009, 16:26 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Проблема еще актуальна, может подскажете чего не так ? |
Автор: | iONE [ 17 ноя 2009, 18:56 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
у Вас User-Name=vasya@212.1.224.117. Логин в договоре должен быть таким же. |
Автор: | ilya6 [ 07 сен 2010, 13:42 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Здравствуйте, пытаюсь соединить bgbilling и kamailio. Не проходит аутентификация пользователя, когда стоит галочка проверять пароль. iONE, Homer вы нашли решение? Советы приведенные на форуме применял : Скрипт предобработки радиус атрибутов выставлен. в конфиге NAS auth.out=all/all acct.out=all/all 09-07/12:10:12 DEBUG [pool-1-thread-1] VoiceIpProcessor - Process outgoing auth Type=AUTHENTICATION_REQUEST Attributes: User-Name=103@kamailio.local Digest-Attributes= 103 Digest-Attributes= kamailio.local Digest-Attributes= 24c8219920000011eee8fc7a1849674f0f28b33cea3d17559 Digest-Attributes= sip:10.88.88.127 Digest-Attributes= REGISTER Digest-Attributes= auth Digest-Attributes= 00000001 Digest-Attributes= "e9d86f71a562359256594048ce813e73 Digest-Response=5c485d31f40bf8f92fecde99ebdc16fa NAS-IP-Address=10.88.88.127 NAS-Port=5060 Service-Type=15 <AttrCode[208]>=undef Acct-Session-Id=MzdmMjJhZDFhODg1ZjU4YTBhZDY2YWRkMGI5MGNiMTI. h323-conf-id=MzdmMjJhZDFhODg1ZjU4YTBhZDY2YWRkMGI5MGNiMTI. 09-07/12:10:12 DEBUG [pool-1-thread-1] VoiceIpProcessor - Finding login.. 09-07/12:10:12 DEBUG [pool-1-thread-1] VoiceIpProcessor - Found login type 1 09-07/12:10:12 DEBUG [pool-1-thread-1] VoiceIpProcessor - Checking access allow.. 09-07/12:10:12 DEBUG [pool-1-thread-1] VoiceIpProcessor - Checking password.. 09-07/12:10:12 DEBUG [pool-1-thread-1] VoiceIpProcessor - Login password error 09-07/12:10:12 INFO [pool-1-thread-2] radius - AUTH: |
Автор: | ilya6 [ 07 сен 2010, 16:41 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Обратил внимание на строку в дебаге <AttrCode[208]>=undef Т.к в Bgbilling используется радиус атрибуты циско, а там это ATTRIBUTE Cisco-PW-Lifetime 208 integer Cisco у openser этот же атрибут 208 ATTRIBUTE Sip-Uri-User 208 string # Proprietary, auth_radius Может авторизация не проходит из-за отсутствия атрибута Sip-Uri-User? В таком случае какой должен быть скрипт предобработки для преобразования атрибута? |
Автор: | ilya6 [ 14 сен 2010, 15:31 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Разработчики могут что-ниубудь подсказать? почему не работает авторизация? вопрос с ATTRIBUTE Sip-Uri-User 208 string решили, добавив в словарь bgbilling, в остальном ситуация та же Цитата: 09-14/16:24:51 DEBUG [pool-1-thread-4] VoiceIpProcessor - Process outgoing auth Type=AUTHENTICATION_REQUEST Attributes: User-Name=101@kamailio.local Digest-Attributes= 101 Digest-Attributes= kamailio.local Digest-Attributes= 24c8f441900000062067ed1547a8c5bb7ea9964ae4f4471e3 Digest-Attributes= sip:10.88.88.127 Digest-Attributes= REGISTER Digest-Attributes= auth Digest-Attributes= 00000001 Digest-Attributes= "8fa4eb353e13de635d20a36374615739 Digest-Response=d0bf2089565a29bd6087382044ab414c NAS-IP-Address=10.88.88.127 NAS-Port=5060 Service-Type=15 Sip-URI-User=o101 09-14/16:24:51 DEBUG [pool-1-thread-4] VoiceIpProcessor - Finding login.. 09-14/16:24:51 DEBUG [pool-1-thread-4] VoiceIpProcessor - Found login type 1 09-14/16:24:51 DEBUG [pool-1-thread-4] VoiceIpProcessor - Checking access allow.. 09-14/16:24:51 DEBUG [pool-1-thread-4] VoiceIpProcessor - Checking password.. 09-14/16:24:51 DEBUG [pool-1-thread-4] VoiceIpProcessor - Login password error 09-14/16:24:51 INFO [pool-1-thread-4] radius - RESPONSE: Type=AUTHENTICATION_REJECT Process time auth: 78 common_auth: 31 Attributes: h323-return-code=2 Trace: Login found. секреты совпадают processor.log Цитата: 09-14/16:23:54 INFO [main] processor - Loading NAS list...
09-14/16:23:54 INFO [main] processor - LOADED NAS: [ NAS-Identifier: kamailio.local; NAS-IP-Address: 10.88.88.127; SECRET: testing123; Vendor: 9 ] CONFIG: service=1 service=2 auth.out=all/all acct.out=all/all find.order=0,1,2,3 09-14/16:23:54 INFO [main] VoiceIpProcessor - [ NAS-Identifier: kamailio.local; NAS-IP-Address: 10.88.88.127; SECRET: testing123; Vendor: 9 ] find modes: User-Name=LOGIN User-Name=ALIAS Calling-Station-Id=ALIAS Sip-URI-User=ALIAS |
Автор: | Администратор [ 22 сен 2010, 16:51 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Вот код проверки digest-md5 авторизации. Там должны приходить отдельные атрибуты. Digest_Username, Digest_Method и т.п. Код: RadiusAttribute digestResponse = getAttribute( RadiusStandartAttributes.Digest_Response );
if( digestResponse != null ) { try { RadiusAttribute userName = getAttribute( RadiusStandartAttributes.Digest_Username ); RadiusAttribute method = getAttribute( RadiusStandartAttributes.Digest_Method ); RadiusAttribute uri = getAttribute( RadiusStandartAttributes.Digest_URI ); RadiusAttribute realm = getAttribute( RadiusStandartAttributes.Digest_Realm ); RadiusAttribute nonce = getAttribute( RadiusStandartAttributes.Digest_Nonce ); RadiusAttribute algoritm = getAttribute( RadiusStandartAttributes.Digest_Algorithm ); if( algoritm != null && !"md5".equalsIgnoreCase( algoritm.getStringValue() ) ) { logger.warn( "Unsupported Digest-Algorithm=" + algoritm.getStringValue() ); return false; } if( userName == null || method == null || uri == null || realm == null || nonce == null ) { logger.warn( "Incorrect Digest-Authentication attributes." ); return false; } final byte[] colon = ":".getBytes( "UTF-8" ); MessageDigest md5 = MessageDigest.getInstance( "MD5" ); md5.update( userName.getByteValue() ); md5.update( colon ); md5.update( realm.getByteValue() ); md5.update( colon ); md5.update( openPassw.getBytes( "UTF-8" ) ); byte[] a1 = md5.digest(); a1 = Utils.toHexString( a1 ).toLowerCase().getBytes( "UTF-8" ); md5.reset(); md5.update( method.getByteValue() ); md5.update( colon ); md5.update( uri.getByteValue() ); byte[] a2 = md5.digest(); a2 = Utils.toHexString( a2 ).toLowerCase().getBytes( "UTF-8" ); final byte[] nonceBytes = nonce.getStringValue().getBytes( "UTF-8" ); md5.reset(); md5.update( a1 ); md5.update( colon ); md5.update( nonceBytes ); md5.update( colon ); md5.update( a2 ); byte[] resp = md5.digest(); if( Arrays.equals( digestResponse.getByteValue(), resp ) ) { md5.reset(); md5.update( colon ); md5.update( uri.getByteValue() ); a2 = md5.digest(); a2 = Utils.toHexString( a2 ).toLowerCase().getBytes( "UTF-8" ); md5.reset(); md5.update( a1 ); md5.update( colon ); md5.update( nonceBytes ); md5.update( colon ); md5.update( a2 ); resp = md5.digest(); response.setByteAttribute( RadiusStandartAttributes.Digest_Response_Auth, resp ); return true; } } catch( Exception e ) { e.printStackTrace(); } } return false; |
Автор: | dangerkoffe [ 04 мар 2011, 18:31 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
У кого нибудь получилось решить проблему с авторизацией? Ситуация та-же: Код: 03-04/14:43:01 INFO [pool-1-thread-28] radius - AUTH: Type=AUTHENTICATION_REQUEST Attributes: User-Name=2219001@example.com NAS-Identifier=kamserv.example.com Digest-Attributes= 2219001 Digest-Attributes=example.com Digest-Attributes="TXDRcE1w0ERKshyo0hJpTOOjiBM8k2SJ Digest-Attributes=sip:example.com Digest-Attributes= REGISTER Digest-Attributes=auth Digest-Attributes= 00000001 Digest-Attributes= 2804ce5702 Proxy-State=112 Digest-Response=e79b47955c02401fe52d05f7956609aa NAS-IP-Address=127.0.0.1 NAS-Port=5060 Service-Type=15 Sip-Uri-User=2219001 03-04/14:43:01 INFO [pool-1-thread-28] radius - RESPONSE: Type=AUTHENTICATION_REJECT Process time auth: 12 common_auth: 2 Attributes: Proxy-State=112 h323-return-code=2 Trace: Login found. Цитата: Вот код проверки digest-md5 авторизации. Там должны приходить отдельные атрибуты. Digest_Username, Digest_Method и т.п. В словаре bgbilling нет перечисленных атрибутов, если добавить их в ручную, модуль не поднимается и выводит следующее в лог: Код: 03-04/12:33:33 INFO [main] DefaultServerSetup - Init DB connection pools 03-04/12:33:33 INFO [main] DefaultServerSetup - Init trash pools.. 03-04/12:33:33 ERROR [main] LoggingPrintStream - java.lang.ArrayIndexOutOfBoundsException: 1063 03-04/12:33:33 ERROR [main] LoggingPrintStream - at bitel.billing.server.radius.RadiusAttributes.loadDictionary(RadiusAttributes.java:184) 03-04/12:33:33 ERROR [main] LoggingPrintStream - at bitel.billing.server.radius.RadiusAttributes.loadDictionary(RadiusAttributes.java:89) 03-04/12:33:33 ERROR [main] LoggingPrintStream - at bitel.billing.server.radius.RadiusAttributes.<init>(RadiusAttributes.java:54) 03-04/12:33:33 ERROR [main] LoggingPrintStream - at bitel.billing.server.radius.RadiusAttributes.init(RadiusAttributes.java:21) 03-04/12:33:33 ERROR [main] LoggingPrintStream - at bitel.billing.server.radius.Radius.<init>(Radius.java:29) 03-04/12:33:33 ERROR [main] LoggingPrintStream - at bitel.billing.server.radius.Radius.main(Radius.java:94) 03-04/12:33:33 ERROR [main] LoggingPrintStream - Error of dictonary loading!!! после добавления этих атрибутов в словарь: Код: <attribute name="Digest-Realm" type="string" code="1063"/>
<attribute name="Digest-Nonce" type="string" code="1064"/> <attribute name="Digest-Method" type="string" code="1065"/> <attribute name="Digest-URI" type="string" code="1066"/> <attribute name="Digest-User-Name" type="string" code="1072"/> |
Автор: | dangerkoffe [ 11 мар 2011, 14:53 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Есть кто живой? Тема актуальна. В моём случае меня смущают непонятные символы в значениях digest атрибутов и атрибут Proxy-State=112. Связку настраивал через freeradius, при обработке запроса он проверяет digest атрибуты на корректность и у него в логе этих символов нет: Код: [digest] Checking for correctly formatted Digest-Attributes [digest] Digest-Attributes look OK. Converting them to something more usful. Digest-User-Name = "2219001" Digest-Realm = "example.com" Digest-Nonce = "TXnbuE152ox/k47eGupW9aZqnQVqQjFw" Digest-URI = "sip:example.com" Digest-Method = "REGISTER" Digest-QOP = "auth" Digest-Nonce-Count = "00000001" Digest-CNonce = "7b468dea57" [digest] Adding Auth-Type = DIGEST ++[digest] returns ok Версия системы: Linux sipserver 2.6.32-5-amd64 #1 SMP Wed Jan 12 03:40:32 UTC 2011 x86_64 GNU/Linux (Debian Squeeze) Версия BGB: 5.0 Версия jre: 1.6.0_24 Версия модуля VoiceIP от 10.08.10 14:08 Версия RADIUS сервера для модуля VoiceIP от 09.12.10 19:01 |
Автор: | stark [ 07 сен 2011, 17:06 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
dangerkoffe писал(а): после добавления этих атрибутов в словарь: Код: <attribute name="Digest-Realm" type="string" code="1063"/> <attribute name="Digest-Nonce" type="string" code="1064"/> <attribute name="Digest-Method" type="string" code="1065"/> <attribute name="Digest-URI" type="string" code="1066"/> <attribute name="Digest-User-Name" type="string" code="1072"/> Зачем ? Они там уже есть Цитата: <attribute name="Digest-Response" type="string" code="103"/> <attribute name="Digest-Realm" type="string" code="104"/> <attribute name="Digest-Nonce" type="string" code="105"/> <attribute name="Digest-Response-Auth" type="string" code="106"/> <attribute name="Digest-Nextnonce" type="string" code="107"/> <attribute name="Digest-Method" type="string" code="108"/> <attribute name="Digest-URI" type="string" code="109"/> <attribute name="Digest-Qop" type="string" code="110"/> <attribute name="Digest-Algorithm" type="string" code="111"/> <attribute name="Digest-Entity-Body-Hash" type="string" code="112"/> <attribute name="Digest-CNonce" type="string" code="113"/> <attribute name="Digest-Nonce-Count" type="string" code="114"/> <attribute name="Digest-Username" type="string" code="115"/> <attribute name="Digest-Opaque" type="string" code="116"/> <attribute name="Digest-Auth-Param" type="string" code="117"/> <attribute name="Digest-AKA-Auts" type="string" code="118"/> <attribute name="Digest-Domain" type="string" code="119"/> <attribute name="Digest-Stale" type="string" code="120"/> <attribute name="Digest-HA1" type="string" code="121"/> Проблема в том, что они у вас в запросе не приходят как отдельные атрибуты . |
Автор: | stark [ 07 сен 2011, 17:42 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Проблема, похоже в том, что у вас приходят атрибуты вот в таком вот формате : http://www.axlradius.com/clientdocs/doc ... sip-00.txt У нас такое не поддерживается ..Можно скриптом предобработки разобрать эти атрибуты на отдельные составляющие . |
Автор: | stark [ 07 сен 2011, 17:57 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Насколько я понимаю это был черновой стандарт RFC(draft RFC), который так и не был принят . |
Автор: | stark [ 07 сен 2011, 18:22 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
А хотя нет , я ошибся . У нас поддерживается такой вид атрибутов. Проблема не в этом . Попробуйте настроить логи так ,чтобы они выводили DEBUG . Нужно найти такие строки в логах Код: try checkDigestMD5Password И показать что он выводит дальше |
Автор: | stark [ 07 сен 2011, 18:26 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
И еще в догонку. Это оказывается реализовано недавно , в июле: http://bgbilling.ru/v5.1/download/voiceip/fixed_rad Так что вам надо просто обновить радиус. |
Автор: | dangerkoffe [ 03 окт 2011, 17:22 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Обновил радиус до версии 5.1_175 авторизация всё равно не проходит Код: 10-03/15:09:24 DEBUG [radiusListener-p-3-t-11] RadiusUtils - try checkDigestMD5Password
10-03/15:09:24 DEBUG [radiusListener-p-3-t-11] RadiusUtils - digestAttributes=[^[4953319002@example.ru, ^A^Pexample.ru, ^B"TomZEU6Jl+Xt4ymUvNG30jzB4CtsYKVc, ^D^\sip:3390555@example.ru, ^C^HINVITE, ^E^Fauth,00000001, ^H5bcf0548] 10-03/15:09:24 DEBUG [radiusListener-p-3-t-11] RadiusUtils - digestResponse=f78e3258f8e687ed657afd77897a8ed7 10-03/15:09:24 DEBUG [radiusListener-p-3-t-11] RadiusUtils - user =4953319002 realm =example.ru nonce = TomZEU6Jl+Xt4ymUvNG30jzB4CtsYKVc method = INVITE uri = sip:3390555@example.ru 10-03/15:09:24 DEBUG [radiusListener-p-3-t-11] AbstractRadiusProcessor - Login password error 10-03/15:09:24 INFO [radiusListener-p-3-t-11] RadiusListenerWorker - RESPONSE: Packet type: Access-Reject |
Автор: | ЛИС [ 04 окт 2011, 18:09 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
У меня все работает! Скорее всего, Вы делаете что-то не так... Что у Вас не идет регистрация или инвайты? покажите часть конфига kamailio, где радиус прописан. |
Автор: | dangerkoffe [ 05 окт 2011, 17:53 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Авторизация не проходит ни при регистрации ни при инвайтах. Не думаю, что проблема в конфиге камаилио, насколько я знаю там нет особых настроек касающихся digest-авторизации, тем более что digest-response вычисляется на клиенте. Я нашел другую возможную причину. В этом посте(http://forum.bgbilling.ru/viewtopic.php?f=6&t=3070#p32110) используется устаревший алгоритм вычисления дайджест-респонса, описанный в rfc2069(http://tools.ietf.org/html/rfc2069), который был позднее заменен rfc2617(http://tools.ietf.org/html/rfc2617). Подробно написано на википедии http://en.wikipedia.org/wiki/Digest_acc ... entication Если кратко, то в случае, когда qop=auth, вместо "response = MD5(HA1:nonce:HA2)" должно быть "response = MD5(HA1:nonce:nonceCount:clientNonce:qop:HA2)". Если в версии 5.1 сохранился устаревший алгоритм, то возможно проблема заключается в этом. Я вручную посчитал респонс сгенерированный клиентским линксисом по второй формуле, всё сошлось. |
Автор: | ЛИС [ 06 окт 2011, 15:03 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
А Вы не думали, что проблема гораздо проще, а именно в Вашем неправильном конфигурировании сабжа для работы с замечательным BGBilling`ом? Да, еще, если Вы хотите "вместо "response = MD5(HA1:nonce:HA2)" должно быть "response = MD5(HA1:nonce:nonceCount:clientNonce:qop:HA2)", то надо послать заявочку, оплатить счетик и замечательные разработчики все быстро и недорого сделают! Сам это делал и не раз! а пока попробуйте такую конструкцию: if (!www_authorize("$td", "subscriber")) { www_challenge("$td", "0"); exit; } ЗЫ Нолик там)))) |
Автор: | dangerkoffe [ 06 окт 2011, 15:48 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Ну я бы не стал называть это "неправильным" конфигурированием. Интересно, что в документации к модулю Auth флаг "0" для функции www_challenge не описан http://www.kamailio.org/docs/modules/3. ... _challenge Но Вы оказались правы. Похоже, что проблема наконец-то решена. Огромное спасибо за подсказку!! |
Автор: | ЛИС [ 07 окт 2011, 01:35 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
dangerkoffe писал(а): Ну я бы не стал называть это "неправильным" конфигурированием. Интересно, что в документации к модулю Auth флаг "0" для функции www_challenge не описан http://www.kamailio.org/docs/modules/3. ... _challenge Но Вы оказались правы. Похоже, что проблема наконец-то решена. Огромное спасибо за подсказку!! Всегда пожалуйста! По поводу платных доработок, Вы обдумайте. Вот, думаю, Вы скоро будете юзать (совершенно бесплатно) пару фич в части SIP, за которые я пару месяцев назад заплатил)))) Так может стоит доработать так как Вы писали, внесете свою небольшую лепту? А по поводу документации Вы правы. Я сам на эти грабли наступил в свое время и нашел выход опытным путем (научный тык)... И еще, я заметил, что админы очень неохотно делятся наработками в конфигурировании Kamailio. В частности, я тут вопросик iONE задавал, так ни ответа, ни привета.... |
Автор: | georgdts [ 07 окт 2011, 02:19 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Ну правильно, все же думают что выдумывают самолёт, а получается то, что давным-давно выдумали и называется колесо... |
Автор: | mikos [ 08 фев 2012, 14:09 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Подскажите пожалуйста по этому скрипту? Что такое openPassw и logger? Они нигде в скрипте не объявлены. Классов не импортируется. Откуда их брать? Код: RadiusAttribute digestResponse = getAttribute( RadiusStandartAttributes.Digest_Response );
if( digestResponse != null ) { try { RadiusAttribute userName = getAttribute( RadiusStandartAttributes.Digest_Username ); RadiusAttribute method = getAttribute( RadiusStandartAttributes.Digest_Method ); RadiusAttribute uri = getAttribute( RadiusStandartAttributes.Digest_URI ); RadiusAttribute realm = getAttribute( RadiusStandartAttributes.Digest_Realm ); RadiusAttribute nonce = getAttribute( RadiusStandartAttributes.Digest_Nonce ); RadiusAttribute algoritm = getAttribute( RadiusStandartAttributes.Digest_Algorithm ); if( algoritm != null && !"md5".equalsIgnoreCase( algoritm.getStringValue() ) ) { logger.warn( "Unsupported Digest-Algorithm=" + algoritm.getStringValue() ); return false; } if( userName == null || method == null || uri == null || realm == null || nonce == null ) { logger.warn( "Incorrect Digest-Authentication attributes." ); return false; } final byte[] colon = ":".getBytes( "UTF-8" ); MessageDigest md5 = MessageDigest.getInstance( "MD5" ); md5.update( userName.getByteValue() ); md5.update( colon ); md5.update( realm.getByteValue() ); md5.update( colon ); md5.update( openPassw.getBytes( "UTF-8" ) ); byte[] a1 = md5.digest(); a1 = Utils.toHexString( a1 ).toLowerCase().getBytes( "UTF-8" ); md5.reset(); md5.update( method.getByteValue() ); md5.update( colon ); md5.update( uri.getByteValue() ); byte[] a2 = md5.digest(); a2 = Utils.toHexString( a2 ).toLowerCase().getBytes( "UTF-8" ); final byte[] nonceBytes = nonce.getStringValue().getBytes( "UTF-8" ); md5.reset(); md5.update( a1 ); md5.update( colon ); md5.update( nonceBytes ); md5.update( colon ); md5.update( a2 ); byte[] resp = md5.digest(); if( Arrays.equals( digestResponse.getByteValue(), resp ) ) { md5.reset(); md5.update( colon ); md5.update( uri.getByteValue() ); a2 = md5.digest(); a2 = Utils.toHexString( a2 ).toLowerCase().getBytes( "UTF-8" ); md5.reset(); md5.update( a1 ); md5.update( colon ); md5.update( nonceBytes ); md5.update( colon ); md5.update( a2 ); resp = md5.digest(); response.setByteAttribute( RadiusStandartAttributes.Digest_Response_Auth, resp ); return true; } } catch( Exception e ) { e.printStackTrace(); } } return false; |
Автор: | mikos [ 13 фев 2012, 21:02 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
up |
Автор: | mikos [ 17 фев 2012, 20:52 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
Все еще ОЧЕНЬ актуально. Помогите уже разобраться в этом скрипте |
Автор: | mikos [ 20 фев 2012, 21:56 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
up |
Автор: | stark [ 21 фев 2012, 12:34 ] |
Заголовок сообщения: | Re: OpenSER+Radius |
openPassw - это пароль от логина в открытом виде logger - это логер log4j вообще можно убрать если не нужен . Этот код вообще от версии 4.6, устарел вроде. |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |