... {toc:maxLevel=2} h2. Настройка авторизации (RADIUS AUTH) Биллинг может проводить авторизацию через RADIUS по различным входным данным из radius request, который приходит на биллинг. Данные параметры выбираются на вкладке *Оборудование - NAS - Дополнительно* По умолчанию при выборе определенной стандартной OSS схемы данные опции уже выбраны и менять их не нужно, однако Вы так же можете настроить авторизацию под свою пользовательскую схему, если это необходимо. !radius_auth3.png|border=1! Данные настройки отвечают за то, по какому именно полю биллинг будет пытаться найти абонента в БД. h3. Описание полей * *Проверять login* - Поиск пользователя по полю *Логин* в учетной записи * *Проверять IP* - Поиск пользователя по полю IPv4 в учетной записи * *Проверять MAC* - Используется для схемы Mikrotik IPoE + Radius, совместно с опцией *Проверять логин* * *Не отправлять framed-ip-address* - Используется для того, чтобы в *Access-accept*'e от биллинга не отправлялся атрибут *FRAMED-IP-ADDRESS* * *Проверять hwserial(User-name)* - Поиск пользователя идет по полю *Серийный номер оборудования* в учетной записи. Биллинг сравнивает серийный номер оборудования с атрибутом *User-Name* из Radius запроса * *Проверять hwserial(ADSL)* - Поиск пользователя идет по полю *Серийный номер оборудования* в учетной записи. Биллинг сравнивает серийный номер оборудования с атрибутом *ADSL-Agent-Circuit-Id* h3. Примеры {code:title=Пример запроса Access-Request от Microtik CHR} rad_recv: Access-Request packet from host 10.90.185.100 port 38454, id=3, length=133 NAS-Port-Type = Ethernet NAS-Port = 2206203907 Calling-Station-Id = "1:52:54:0:d7:cc:2b" Framed-IP-Address = 10.64.15.20 Called-Station-Id = "mikrotik_carbon_dhcp" User-Name = "test123" User-Password = "" NAS-Identifier = "MikroTik" NAS-IP-Address = 10.90.185.100 {code} В случае, если в настройках NAS'a выбран тип *Проверять login* - биллинг будет пытаться найти абонента в БД, у которого в [поле login|CarbonBilling:Учетная запись. Создание и изменение.] будет *test123*. Сопоставление будет происходить всегда по полю *User-Name* из Access-Request h2. Особые настройки !radius_2.png|border=0! h3. Разрешить переподключаться с первого раза, рекомендуется на время интеграции h4. Включена Все запросы на авторизацию от одного и того же абонента, в случае, если абонент найден и не заблокирован, будут разрешены биллингом и в ответ на них биллинг отправит *Access-Accept*. *Access-Accept* будет отправлен независимо от того авторизован пользователь уже на биллинге или не авторизован. h4. Отключена Если на биллинг придет запрос на авторизацию от абонента, который считается биллингом уже авторизованным - биллинг сначала отправит на оборудование команду user_disconnect и сбросит сессию на своей стороне. При этом на первый запрос авторизации будет отправлен *Access-reject* с ошибкой *you already logged in* h2. Основные настройки !osnov.png|border=0! h3. Описание полей * *Пересоздавать сессию*. В случае, если по какой то причине на биллинге будет информация о том, что авторизованный на оборудовании пользователь не авторизован в данный момент (например, не пришел *radius accounting start* пакет), при включении данной опции сессия будет создана при получении *radius accounting update*. * *Передавать пароль в скрипт событий*. Если данная опция включена - биллинг будет передавать пароль из учетной записи пользователя в скрипт событий session в поле *user_psw*. h2. RADIUS shared secret, пароль и порт COA, общий IPoE пароль !nas_radius_settings.png|border=0,width=400! RADIUS пароли и порт CoA указываются в [настройках NAS|CarbonBilling:Справочник NAS], на вкладке "*Описание*", в области "*Дополнительно*": * *Radius_secret*: RADIUS shared secret, пароль RADIUS-клиента (=NAS/BRAS) * *Coa_port - порт для управления через radclient*: порт NAS, на который будут отправляться запросы Change of Authorization при изменении состояния абонента в биллинге * *Coa_psw - пароль для radclient*: Пароль для Change of Authorization запросов
|
... h3. Отладка авторизации # В [настройках в файле|CarbonBilling:Настройки (в файле)] включите опцию "Включить DEBUG для Radius демона" # В терминале запустите мониторинг лога {code}tail -f /app/asr_billing/var/log/radius/radius_debug.log{code} # Совершите авторизацию # Дальше - по ситуации, но нужно помнить что для успешной авторизации в логе должны быть три SQL-запроса: #* Первый возвращает радиусу информацию о наличии учётной записи {code}SELECT ... FROM RAD6_CHECK ('CHECK'{code} #* Второй возвращает необходимые атрибуты, которые нужно отправить в Access-Accept {code}SELECT ... FROM RAD6_CHECK ('REPLY'{code} #* Третий проводит дополнительные проверки. Должен вернуть "0" {code}SELECT ... FROM RAD6_CHECK ('SIMUL'{code} h3. Отладка команд отправляемых после авторизации * Если после авторизации сессия сбрасывается или по ней приходят какие-то команды, это можно отладить по [логам отправленных событий учётной записи|https://docs.carbonsoft.ru/display/CarbonBilling/nas_event_daemon#nas_event_daemon-Проверьтелоги] * Например, для абонента ID 5473 и учётной записи ID 4809 следующей командой можно смотреть отправляемые команды: {code}tail -f -n 1000 /app/asr_billing/var/log/abonents/5473/event_4809.log | grep auth_type | awk '{print $1,$2,$7}'{code} Если нужно отслеживать какие-то определённые команды, то можно такой командой: {code}tail -f -n 1000 /app/asr_billing/var/log/abonents/5473/event_4809.log | grep auth_type | awk '{print $1,$2,$7}' | grep -E 'rad_acc_start|rad_acc_stop|user_disconnect'{code}
|