Просмотр Исходного

{toc:maxLevel=3}

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*. В учётной записи обязательно должен быть указан коммутатор.
* *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

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}