... {info} !radius_auth3.png|border=1! h3. Описание полей Поля для аутентификации абонента: * *Проверять login* - Поиск пользователя по полю *Логин* в учетной записи * *Проверять IP* - Поиск пользователя по полю IPv4 в учетной записи * *Проверять MAC* - Используется для схемы Mikrotik IPoE + Radius, совместно с опцией *Проверять login* * *Проверять hwserial(User-name)* - Поиск пользователя идет по полю *Серийный номер оборудования* в учетной записи. Биллинг сравнивает серийный номер оборудования с атрибутом *User-Name* из Radius запроса. В учётной записи обязательно должен быть указан коммутатор. * *Проверять hwserial(ADSL)* - Поиск пользователя идет по полю *Серийный номер оборудования* в учетной записи. Биллинг сравнивает серийный номер оборудования с атрибутом *ADSL-Agent-Circuit-Id*. В учётной записи обязательно должен быть указан коммутатор. {note} Для включения параметра *Проверять hwserial(ADSL)* требуются дополнительные действия. Обратитесь в [техническую поддержку|https://www.carbonsoft.ru/support/]. {note} Не отправлять IP адрес: * *Не отправлять framed-ip-address* - Используется для того, чтобы в *Access-accept*'e от биллинга не отправлялся атрибут *FRAMED-IP-ADDRESS* Не используются, оставлены для совместимости: * *OPT82 VLAN* * *OPT82_PORT* * *OPT82 SWITCH_IP* 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 запросов * *Users_psw - общий пароль ipoe*: Общий пароль абонента, используется при IPoE автризации с использованием RADIUS h2. Адреса и порты серверов авторизации и аккаунтинга h3. IP-адрес Адрес RADIUS-сервера авторизации и аккаунтинга - это все адреса биллинга, указанные в [настройках сети|CarbonBilling:Настройки сети] h3. Порты * *Авторизация*: 1812 * *Аккаунтинг*: 1813 h2. Атрибуты Файл стандартных атрибутов freeradius: {code} /app/asr_billing/usr/share/freeradius/dictionary {code} Дополнительные словари с атрибутами хранятся в каталоге: {code} /app/asr_billing/var/local/etc/raddb/ {code} Доступны словари оборудования: * *Carbon Soft* - dictionary.carbon * *MikroTik* - dictionary.mikrotik * *VASExperts* - dictionary.vasexperts Чтобы атрибут был отправлен клиенту, он должен присутствовать в одном из словарей. Если атрибута нет в словаре, при попытке авторизации в логе отладки *radius_degug.log* вы увидите сообщение *Unknown attribute*: {code} rlm_sql: Failed to create the pair: Unknown attribute "VasExperts-L2-User" requires a hex string, not "1" {code} h2. Отладка авторизации h3. Отладка авторизации # В [настройках в файле|CarbonBilling:Настройки (в файле)] включите опцию "Включить DEBUG для Radius демона" # Перезапустите Radius сервер для вступления измений в силу: {code} chroot /app/asr_billing/ service radiusd restart {code} # В терминале запустите мониторинг лога {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} h3. Отладка аккаунтинга # В [настройках в файле|CarbonBilling:Настройки (в файле)] включите опцию "Включить DEBUG для Radius Accounting" # Перезапустите RadiusAccaunting сервер для вступления измений в силу: {code} chroot /app/asr_billing/ service radiusd restart {code} # В терминале запустите мониторинг лога {code} tail -f /app/asr_billing/var/log/radius_acc/radius_debug.log {code} # Совершите авторизацию, дождитесь отправки аккаунтинга. # Дальше просмотрите SQL-запросы по сессии: #* Старт сессии {code}SELECT ... FROM RAD6_ACCT_START{code} #* Обновление состояния сессии {code}SELECT ... FROM RAD6_ACCT_UPDATE{code} #* Окончание сессии {code}SELECT ... FROM RAD6_ACCT_STOP{code}
|