forum.bitel.ru http://forum.bitel.ru/ |
|
Возможна ли Radius авторизация только по Mac http://forum.bitel.ru/viewtopic.php?f=44&t=7084 |
Страница 1 из 1 |
Автор: | madmax [ 10 авг 2012, 12:36 ] |
Заголовок сообщения: | Возможна ли Radius авторизация только по Mac |
Возможно ли сделать авторизацию только по мак адресу полученному из поля радиус пакета. Например создаем Тип сервиса с галочкой Мак-адрес, На договоре добавляем сервис и указывает мак адрес абонентского устройства. Далее в настройках устройства ставим поиск сервиса по мак адресу Код: radius.servSearchMode=mac address сервиса. Теперь при приходе радиус пакета вытаскиваем атрибут мак адреса Код: # Вендор атрибута, где хранится MAC-адрес #radius.macAddress.vendor=9 # Код атрибута, где хранится MAC-адрес #radius.macAddress.type=1 И если мак адрес найдет и статус сервиса включен посылаем ответ Access-Accept |
Автор: | borisk [ 10 авг 2012, 13:09 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Может что-то вроде этого? http://wiki.bgbilling.ru/index.php/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0#.D0.9C.D0.BE.D0.B4.D1.83.D0.BB.D1.8C_Inet_.2F_C.D0.BA.D1.80.D0.B8.D0.BF.D1.82.D1.8B_.D0.BF.D1.80.D0.B5.D0.B4.D0.BE.D0.B1.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8_RADIUS_.D0.B7.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D0.BE.D0.B2 Идея такова - вынести MAC в определенном в формате в User-Name, пароль всем назначать один и тот же. |
Автор: | madmax [ 10 авг 2012, 14:36 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Ну так можно сделать. Но хочется чтобы на договоре в сервисе был указан только мак адрес, без указания логина и пароля. но при этом получается проблема во первых раз нет логина то не найдется договор, во вторых не пройдет авторизация так как нет логина и пароля. Поэтому и хочется чтобы у клиента был вбит только мак адрес и при запросе по параметру radius.servSearchMode находится договор и проходила авторизация. Сейчас это работает - так от клиентов приходит запрос в котором Calling-Station-Id=мак адресу устройства, далее скриптом происходит замена username и password на Calling-Station-Id, а на самом договоре заводится сервис с логином и паролем = Calling-Station-Id Но так как в сервисах имеется поле мак адрес то логично и более удобно было бы сделать то что я описал ранее. |
Автор: | Amir [ 13 авг 2012, 14:06 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Выложили обновление. Попробуйте radius.servSearchMode=5 , если inetServ прописан на NAS'е radius.servSearchMode=6 , если inetServ прописан на NAS'е или на дочернем для NAS'а устройстве. |
Автор: | Amir [ 13 авг 2012, 14:39 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Но проверка пароля все равно будет, т.е. если пароль не используется, то нужно будет в preprocessAccessRequest устанавливать какой-нибудь. |
Автор: | madmax [ 13 авг 2012, 14:45 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Цитата: Но проверка пароля все равно будет, т.е. если пароль не используется, то нужно будет в preprocessAccessRequest устанавливать какой-нибудь. А вот тут поподробнее, если в договоре на сервисе есть запись в которой имеется только поле Мак-адрес, то какой пароль нужно будет установить preprocessAccessRequest - если в сервисе его вообще нету |
Автор: | Amir [ 13 авг 2012, 15:11 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Можно было в обработке события изменения сервиса добавлять какой-то по умолчанию и добавлять его же в предобработке. Но решили, что проще будет, если добавим отключение проверки пароля, в последнем билде: Код: radius.password.verification=0
|
Автор: | madmax [ 13 авг 2012, 15:50 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
А эту настройку на сервисе надо ставить или на самом устройстве? |
Автор: | Amir [ 13 авг 2012, 15:57 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
На устройстве (или в типе устройства, или в устройстве-предке). |
Автор: | madmax [ 05 сен 2012, 00:56 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Не корректно работает реализованная фича. На устройстве прописано Код: radius.password.verification=0 radius.servSearchMode=5 radius.disable.accessCodes=1,2,10,11,12,44,20 radius.disable.servId=43 По логам access все ровно, по мак адресу находится договор, выходит access code=0, выдается ip, но в мониторе сессия привязывается к договору 43 который указан как radius.disable.servId=43 И что интересно ip address выдается с нормального пула а не с radius.disable.ipCategories. Код: 09-05/00:27:59 DEBUG [rdsLstnr-p-8-t-3] RadiusProcessor - Create new radius session.
09-05/00:27:59 INFO [rdsLstnr-p-8-t-3] InetNas - Search by mac on device and descendants=0021071bcbcc 09-05/00:27:59 DEBUG [rdsLstnr-p-8-t-3] InetRadiusProcessor - Password verification disabled. 09-05/00:27:59 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - [username=0021071BCBCC] Authenticated as inetServId:66 09-05/00:27:59 DEBUG [rdsLstnr-p-8-t-3] InetRadiusProcessor - MAC-address from request: 0021071BCBCC 09-05/00:27:59 DEBUG [rdsLstnr-p-8-t-3] InetAccountingPeriodList - Create: 09-05/00:27:59 DEBUG [rdsLstnr-p-8-t-3] InetAccountingPeriodList - AccountingPeriod: 72: 01.09.2012 00:00:00.0 - 30.09.2012 23:59:59.999 09-05/00:27:59 INFO [rdsLstnr-p-8-t-3] InetApplication - inetServ[id=66] balance ok: 0.81 [0] 09-05/00:27:59 INFO [rdsLstnr-p-8-t-3] InetApplication - TariffOptionMap: {} 09-05/00:27:59 DEBUG [rdsLstnr-p-8-t-3] InetNas - agentRemoteId=null 09-05/00:27:59 DEBUG [rdsLstnr-p-8-t-3] IpResourceReserveManager - Deleted 3 old IPs 09-05/00:27:59 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - Set ip from pool 09-05/00:27:59 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - Write new waiting connection to DB 09-05/00:27:59 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - New connection id=138166 09-05/00:27:59 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - Return code=0 09-05/00:27:59 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: Packet type: Access-Accept Identifier: 220 Authenticator: {} Attributes: Acct-Interim-Interval=600 |
Автор: | Amir [ 05 сен 2012, 13:56 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Либо в Accounting-пакете нет MAC-адреса, либо предобработка его не проставляет. Или в конфигурации не указано connection.start.fromAccept=1 или в Access-пакете нет Acct-Session-Id и Nas-Port. Надо смотреть что InetAccounting пишет при Accounting-Start-пакете. |
Автор: | madmax [ 05 сен 2012, 17:23 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
connection.start.fromAccept=1 прописан в Accounting-пакете мак адрес присутствует. Acct-Session-Id также есть, но вот скриптом предобработки всем ставится Nas-port=0 так как его нет ни в access ни в accounting. Но почему тогда при авторизации по username все работает?, как только делаешь авторизацию по mac то перестает работать |
Автор: | Amir [ 05 сен 2012, 17:47 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Покажите, что в InetAccounting пишет, когда старт-пакет приходит (при поиске по MAC). |
Автор: | madmax [ 05 сен 2012, 18:00 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS: Packet type: Accounting-Request Identifier: 195 Authenticator: {0B 98 28 89 82 E7 69 3C 8C E6 D9 68 24 36 B7 91} Attributes: User-Name=0021071B75AD NAS-Identifier=asngw Proxy-State=245 NAS-IP-Address=1.1.1.1 NAS-Port=0 Service-Type=2 Framed-IP-Address=5.104.232.73 Acct-Status-Type=1 NAS-Port-Type=27 Acct-Session-Id=04AC3F82 Calling-Station-Id=0021071B75AD 09-05/17:54:54 WARN [rdsLstnr-p-7-t-9] InetNas - MAC-address not found. 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] InetRadiusProcessor - InetServ not found for username=0021071B75AD. Use radius.disable.servId=43 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] InetRadiusProcessor - Creating NasConnection from radius accounting packet 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] InetRadiusProcessor - Parent: null 09-05/17:54:54 DEBUG [rdsLstnr-p-7-t-9] InetRadiusProcessor - ipResourceId=3 09-05/17:54:54 DEBUG [rdsLstnr-p-7-t-9] InetAccountingPeriodList - Create: 09-05/17:54:54 DEBUG [rdsLstnr-p-7-t-9] InetAccountingPeriodList - AccountingPeriod: 547: 01.09.2012 00:00:00.0 - 30.09.2012 23:59:59.999 09-05/17:54:54 DEBUG [rdsLstnr-p-7-t-9] Accounting - Load deviceOptions from serv and tariff 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] InetApplication - TariffOptionMap: {} 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] Accounting - Write new connection to DB 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] Accounting - New connection id=138 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] Accounting - Write new session to DB 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] Accounting - New session's id=145 09-05/17:54:54 DEBUG [rdsLstnr-p-7-t-9] Accounting - Created new AccountingSession. 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] connection - 138891:145852 Register ip: 2.2.2.2 09-05/17:54:54 DEBUG [rdsLstnr-p-7-t-9] IpResourceRuntimeManager - Subscribing 2.2.2.2 to contractId=36 09-05/17:54:54 DEBUG [rdsLstnr-p-7-t-9] Accounting - InetConnection [id=138891-0, iface=4:0, sessId=04AC3F82, start=05.09.2012 17:54:54, uname=0021071B75AD, addr=2.2.2.2] 09-05/17:54:54 DEBUG [rdsLstnr-p-7-t-9] ProcessorRequest - Sending to /1.1.1.2:1814 09-05/17:54:54 INFO [rdsLstnr-p-7-t-9] RadiusListenerWorker - RESPONSE: Packet type: Accounting-Response Identifier: 195 Authenticator: {95 A0 17 24 1E 6B 2F 7E 11 13 AB F9 96 56 05 5D} Attributes: Proxy-State=245 Process time start: 151 |
Автор: | Amir [ 05 сен 2012, 18:38 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Выложили обновление, попробуйте. Нужно будет перекомпилировать динамические классы. Не было обработки MAC-адреса в preprocessAccountingRequest, т.к. изначально оно не нужно было. |
Автор: | snark [ 05 сен 2012, 19:18 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
madmax, у Вас 802.1х? |
Автор: | madmax [ 05 сен 2012, 19:43 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
нет у меня обычная mschap авторизация, и используется железка ASR5000 |
Автор: | madmax [ 05 сен 2012, 20:23 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Не работает, все тоже самое в логах. Все отрабатывает мак адрес находит, добавляет его в поле для мак адреса на сервисе. Все также привязывает сессию к fake договору. |
Автор: | Amir [ 05 сен 2012, 20:31 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Динамические классы перекомпилировали? Accounting перезапускали или делали Перечитать конфигурацию? Какой обработчик процессора протокола стоит? Так и пишет в InetAccounting Код: InetNas - MAC-address not found. ?
|
Автор: | madmax [ 05 сен 2012, 22:49 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
ссори спасибо за подсказку. был свой кон в котором добавил super.preprocessAccountingRequest( request, response, connectionSet ) и все заработало |
Автор: | Zar1n [ 26 сен 2012, 11:25 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Тоже обновились, попробовать. Авторизация через радиус проходит на ура. Но вот на парсинге дхцп пакетов какие-то проблемы. Код: dhcp 09-26/16:22:15 DEBUG [dhcpLstnr-p-11-t-1] InetDhcpDeviceMap - Found device by giaddr id=19 dhcp 09-26/16:22:15 INFO [dhcpLstnr-p-11-t-1] InetAbstractDhcpProcessor - REQUEST: Message type: BOOT_REQUEST Dhcp message type: DHCP Discover{1} htype: 1, hlen: 6, hops: 1 xid: -2053650193, secs: 1280, flags: 0 Client IP: 0.0.0.0 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 192.168.192.194 Client MAC: {001A6BD267C6} {61}={01001A6BD267C6} Host name{12}={Zarin-NB} {60}={4D53465420352E30} Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, 43} Agent information{82}= sub{9}={000000091A0A18000000005212010600040CE4000502080006FC7516F2B320} sub{2}={020A0000AC100001F2000CE4} sub{-105}={00696E6672612D77616E2D696E65742D776966692D666978} sub{-106}={AC100001} sub{-104}={AC100001} dhcp 09-26/16:22:15 INFO [dhcpLstnr-p-11-t-1] InetAbstractDhcpProcessor - REQUEST_AFTER_PREPROCESS: Message type: BOOT_REQUEST Dhcp message type: DHCP Discover{1} htype: 1, hlen: 6, hops: 1 xid: -2053650193, secs: 1280, flags: 0 Client IP: 0.0.0.0 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 192.168.192.194 Client MAC: {001A6BD267C6} {61}={01001A6BD267C6} Host name{12}={Zarin-NB} {60}={4D53465420352E30} Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, 43} Agent information{82}= sub{9}={000000091A0A18000000005212010600040CE4000502080006FC7516F2B320} sub{2}={0006FC7516F2B320} sub{-105}={00696E6672612D77616E2D696E65742D776966692D666978} sub{-106}={AC100001} sub{-104}={AC100001} sub{1}={00040CE40005} dhcp 09-26/16:22:15 DEBUG [dhcpLstnr-p-11-t-1] InetAbstractDhcpProcessor - OP_BOOT_REQUEST dhcp 09-26/16:22:15 DEBUG [dhcpLstnr-p-11-t-1] InetDhcpHelperProcessor - request.giaddr = 192.168.192.194 dhcp 09-26/16:22:15 ERROR [dhcpLstnr-p-11-t-1] InetAbstractDhcpProcessor - java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768) at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpHelperProcessor.processOption82Request(InetDhcpHelperProcessor.java:575) at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processRequestImpl(InetAbstractDhcpProcessor.java:203) at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processRequest(InetAbstractDhcpProcessor.java:119) at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processRequest(InetAbstractDhcpProcessor.java:1) at ru.bitel.bgbilling.kernel.network.dhcp.DhcpListenerWorker.runImpl(DhcpListenerWorker.java:58) at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40) Код: Packet type: Access-Request Identifier: 8 Authenticator: {} Attributes: User-Name=001a.6bd2.67c6 NAS-Identifier= NAS-Port-Id=15/0/2/3300 User-Password=123 NAS-IP-Address=192.168.192.194 NAS-Port=0 Service-Type=5 Acct-Session-Id=024FC243 NAS-Port-Type=5 cisco-avpair=circuit-id-tag=00040ce40005 cisco-avpair=remote-id-tag=0006fc7516f2b320 cisco-avpair=vendor-class-id-tag=MSFT 5.0 cisco-NAS-Port=15/0/2/3300 radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS: Packet type: Access-Request Identifier: 8 Authenticator: {} Attributes: User-Name=001a.6bd2.67c6 NAS-Identifier= NAS-Port-Id=15/0/2/3300 User-Password=123 NAS-IP-Address=192.168.192.194 NAS-Port=0 Service-Type=5 Calling-Station-Id=001a.6bd2.67c6 Acct-Session-Id=024FC243 NAS-Port-Type=5 cisco-avpair=circuit-id-tag=00040ce40005 cisco-avpair=remote-id-tag=0006fc7516f2b320 cisco-avpair=vendor-class-id-tag=MSFT 5.0 cisco-NAS-Port=15/0/2/3300 Common options: {agentRemoteId=fc7516f2b320, macAddress=001a.6bd2.67c6, agentCircuitId=0ce40005} radius 09-27/10:59:28 DEBUG [rdsLstnr-p-9-t-9] RadiusProcessor - Create new radius session. radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetNas - Search by mac on device=001a6bd267c6 radius 09-27/10:59:28 DEBUG [rdsLstnr-p-9-t-9] InetRadiusProcessor - Password verification disabled. radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetRadiusProcessor - [username=001a.6bd2.67c6] Authenticated as inetServId:19 radius 09-27/10:59:28 DEBUG [rdsLstnr-p-9-t-9] InetNas - agentRemoteId=fc7516f2b320 radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetNas - AgentDevice not found. radius 09-27/10:59:28 DEBUG [rdsLstnr-p-9-t-9] InetRadiusProcessor - Identifier from request: null radius 09-27/10:59:28 DEBUG [rdsLstnr-p-9-t-9] InetRadiusProcessor - MAC-address from request: 001A6BD267C6 radius 09-27/10:59:28 DEBUG [rdsLstnr-p-9-t-9] InetAccountingPeriodList - Create: radius 09-27/10:59:28 DEBUG [rdsLstnr-p-9-t-9] InetAccountingPeriodList - AccountingPeriod: 9: 13.09.2012 00:00:00.0 - 30.09.2012 23:59:59.999 radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetApplication - inetServ[id=19] balance ok: -5829.57 [-6000.00] radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetApplication - TariffOptionMap: {} radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetRadiusProcessor - Set ip from pool radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetRadiusProcessor - Write new waiting connection to DB radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetRadiusProcessor - New connection id=129 radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetRadiusProcessor - Return code=0 radius 09-27/10:59:28 INFO [rdsLstnr-p-9-t-9] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: Packet type: Access-Accept Identifier: 8 В конфиге BRAS так: Код: radius.servSearchMode=5 radius.password.verification=0 connection.start.fromAccept=1 Какие подробности нужны ? |
Автор: | Zar1n [ 27 сен 2012, 20:34 ] |
Заголовок сообщения: | Re: Возможна ли Radius авторизация только по Mac |
Уважаемые разработчики, подскажите куда копать. Пожалуйста. Могу завести в helpdesk, если решение платное. Спасибо. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |