BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 22 июн 2025, 15:34

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




Начать новую тему Ответить на тему  [ Сообщений: 22 ] 
Автор Сообщение
СообщениеДобавлено: 10 авг 2012, 12:36 
Возможно ли сделать авторизацию только по мак адресу полученному из поля радиус пакета.
Например создаем Тип сервиса с галочкой Мак-адрес, На договоре добавляем сервис и указывает мак адрес абонентского устройства.
Далее в настройках устройства ставим поиск сервиса по мак адресу
Код:
radius.servSearchMode=mac address сервиса.

Теперь при приходе радиус пакета вытаскиваем атрибут мак адреса
Код:
# Вендор атрибута, где хранится MAC-адрес
#radius.macAddress.vendor=9
# Код атрибута, где хранится MAC-адрес
#radius.macAddress.type=1

И если мак адрес найдет и статус сервиса включен посылаем ответ Access-Accept


Вернуться к началу
  
 
СообщениеДобавлено: 10 авг 2012, 13:09 
Не в сети
Клиент

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
Может что-то вроде этого?
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, пароль всем назначать один и тот же.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 авг 2012, 14:36 
Ну так можно сделать.
Но хочется чтобы на договоре в сервисе был указан только мак адрес, без указания логина и пароля.
но при этом получается проблема во первых раз нет логина то не найдется договор, во вторых не пройдет авторизация так как нет логина и пароля.
Поэтому и хочется чтобы у клиента был вбит только мак адрес и при запросе по параметру radius.servSearchMode находится договор и проходила авторизация.
Сейчас это работает - так от клиентов приходит запрос в котором Calling-Station-Id=мак адресу устройства, далее скриптом происходит замена username и password на Calling-Station-Id, а на самом договоре заводится сервис с логином и паролем = Calling-Station-Id
Но так как в сервисах имеется поле мак адрес то логично и более удобно было бы сделать то что я описал ранее.


Вернуться к началу
  
 
СообщениеДобавлено: 13 авг 2012, 14:06 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложили обновление. Попробуйте
radius.servSearchMode=5
, если inetServ прописан на NAS'е
radius.servSearchMode=6
, если inetServ прописан на NAS'е или на дочернем для NAS'а устройстве.


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 авг 2012, 14:45 
Цитата:
Но проверка пароля все равно будет, т.е. если пароль не используется, то нужно будет в preprocessAccessRequest устанавливать какой-нибудь.

А вот тут поподробнее, если в договоре на сервисе есть запись в которой имеется только поле Мак-адрес, то какой пароль нужно будет установить preprocessAccessRequest - если в сервисе его вообще нету


Вернуться к началу
  
 
СообщениеДобавлено: 13 авг 2012, 15:11 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Можно было в обработке события изменения сервиса добавлять какой-то по умолчанию и добавлять его же в предобработке.
Но решили, что проще будет, если добавим отключение проверки пароля, в последнем билде:
Код:
radius.password.verification=0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 авг 2012, 15:50 
А эту настройку на сервисе надо ставить или на самом устройстве?


Вернуться к началу
  
 
СообщениеДобавлено: 13 авг 2012, 15:57 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
На устройстве (или в типе устройства, или в устройстве-предке).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2012, 00:56 
Не корректно работает реализованная фича.
На устройстве прописано
Код:
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


Вернуться к началу
  
 
СообщениеДобавлено: 05 сен 2012, 13:56 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Либо в Accounting-пакете нет MAC-адреса, либо предобработка его не проставляет.
Или в конфигурации не указано connection.start.fromAccept=1 или в Access-пакете нет Acct-Session-Id и Nas-Port.
Надо смотреть что InetAccounting пишет при Accounting-Start-пакете.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2012, 17:23 
connection.start.fromAccept=1 прописан в Accounting-пакете мак адрес присутствует.
Acct-Session-Id также есть, но вот скриптом предобработки всем ставится Nas-port=0 так как его нет ни в access ни в accounting.
Но почему тогда при авторизации по username все работает?, как только делаешь авторизацию по mac то перестает работать


Вернуться к началу
  
 
СообщениеДобавлено: 05 сен 2012, 17:47 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Покажите, что в InetAccounting пишет, когда старт-пакет приходит (при поиске по MAC).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2012, 18:00 
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


Вернуться к началу
  
 
СообщениеДобавлено: 05 сен 2012, 18:38 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложили обновление, попробуйте. Нужно будет перекомпилировать динамические классы.
Не было обработки MAC-адреса в preprocessAccountingRequest, т.к. изначально оно не нужно было.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2012, 19:18 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
madmax, у Вас 802.1х?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2012, 19:43 
нет у меня обычная mschap авторизация, и используется железка ASR5000


Вернуться к началу
  
 
СообщениеДобавлено: 05 сен 2012, 20:23 
Не работает, все тоже самое в логах.
Все отрабатывает мак адрес находит, добавляет его в поле для мак адреса на сервисе.
Все также привязывает сессию к fake договору.


Вернуться к началу
  
 
СообщениеДобавлено: 05 сен 2012, 20:31 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Динамические классы перекомпилировали? Accounting перезапускали или делали Перечитать конфигурацию?
Какой обработчик процессора протокола стоит?
Так и пишет в InetAccounting
Код:
InetNas - MAC-address not found.
?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2012, 22:49 
ссори спасибо за подсказку.
был свой кон в котором добавил
super.preprocessAccountingRequest( request, response, connectionSet )
и все заработало


Вернуться к началу
  
 
СообщениеДобавлено: 26 сен 2012, 11:25 
Не в сети

Зарегистрирован: 11 май 2010, 17:57
Сообщения: 93
Карма: 0
Тоже обновились, попробовать.

Авторизация через радиус проходит на ура.
Но вот на парсинге дхцп пакетов какие-то проблемы.

Код:
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


Какие подробности нужны ?


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

Зарегистрирован: 11 май 2010, 17:57
Сообщения: 93
Карма: 0
Уважаемые разработчики, подскажите куда копать. Пожалуйста.

Могу завести в helpdesk, если решение платное.

Спасибо.


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

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


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

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


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

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