Авторизация по RADIUS

Skip to end of metadata
Go to start of metadata

Настройка авторизации (RADIUS AUTH)

Биллинг может проводить авторизацию через RADIUS по различным входным данным из radius request, который приходит на биллинг. Данные настройки отвечают за то, по какому именно полю биллинг будет пытаться найти абонента в БД. Параметры выбираются на вкладке Оборудование - NAS - Дополнительно. По умолчанию при выборе определенной стандартной OSS схемы данные опции уже выбраны и менять их не нужно, однако вы можете настроить авторизацию под свою пользовательскую схему, если это необходимо.

Рекомендуем ставить один параметр во избежание коллизий. Если в БД есть два подходящих пользователя, запрос авторизации будет отброшен.

Описание полей

Поля для аутентификации абонента:

  • Проверять IP+VLAN - Поиск пользователя по полям NAS-Port и Framed-IP-Address в радиус пакете, и полям VLAN и IP в учётной записи пользователя соответственно. Подробней схема описана статье о СКАТ
  • Проверять login - Поиск пользователя по полю Логин в учетной записи
  • Проверять IP - Поиск пользователя по полю IPv4 в учетной записи
  • Проверять MAC - Используется для схемы Mikrotik IPoE + Radius, совместно с опцией Проверять login
  • Проверять hwserial(User-name) - Поиск пользователя идет по полю Серийный номер оборудования в учетной записи. Биллинг сравнивает серийный номер оборудования с атрибутом User-Name из Radius запроса. В учётной записи обязательно должен быть указан коммутатор.
  • Проверять hwserial(Remote) - Поиск пользователя идет по полю Серийный номер оборудования в учетной записи. Биллинг сравнивает серийный номер оборудования с атрибутом AGENT-REMOTE-ID из Radius запроса.
  • Проверять hwserial(ADSL) - Поиск пользователя идет по полю Серийный номер оборудования в учетной записи. Биллинг сравнивает серийный номер оборудования с атрибутом ADSL-Agent-Circuit-Id. В учётной записи обязательно должен быть указан коммутатор.
    Для включения параметра Проверять hwserial(ADSL) требуются дополнительные действия. Обратитесь в техническую поддержку.

Не отправлять IP адрес:

  • Не отправлять framed-ip-address - Используется для того, чтобы в Access-accept'e от биллинга не отправлялся атрибут FRAMED-IP-ADDRESS

Не используются, оставлены для совместимости:

  • OPT82 VLAN
  • OPT82_PORT
  • OPT82 SWITCH_IP

Примеры

Пример запроса 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

В случае, если в настройках NAS'a выбран тип Проверять login - биллинг будет пытаться найти абонента в БД, у которого в поле login будет test123. Сопоставление будет происходить всегда по полю User-Name из Access-Request

Особые настройки

Разрешить переподключаться с первого раза, рекомендуется на время интеграции

Включена

Все запросы на авторизацию от одного и того же абонента, в случае, если абонент найден и не заблокирован, будут разрешены биллингом и в ответ на них биллинг отправит Access-Accept.
Access-Accept будет отправлен независимо от того авторизован пользователь уже на биллинге или не авторизован.

Отключена

Если на биллинг придет запрос на авторизацию от абонента, который считается биллингом уже авторизованным - биллинг сначала отправит на оборудование команду user_disconnect и сбросит сессию на своей стороне. При этом на первый запрос авторизации будет отправлен Access-reject с ошибкой you already logged in

Основные настройки

Описание полей

  • Пересоздавать сессию. В случае, если по какой то причине на биллинге будет информация о том, что авторизованный на оборудовании пользователь не авторизован в данный момент (например, не пришел radius accounting start пакет), при включении данной опции сессия будет создана при получении radius accounting update.
  • Передавать пароль в скрипт событий. Если данная опция включена - биллинг будет передавать пароль из учетной записи пользователя в скрипт событий session в поле user_psw.

RADIUS shared secret, пароль и порт COA, общий IPoE пароль

RADIUS пароли и порт CoA указываются в настройках 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

Не посылать user_disconnect при получении Radius Stop

Включена

При получении accounting stop биллинге не создаст событие user_disconnect, то есть не попытается сбросить сессию. Это полезно при зацикливании авторизации, то есть user_disconnect сбрасывает, вновь созданную сессию.

Отключена

При получении accounting stop биллинге создаст событие user_disconnect. Нужно для борьбы с "зависшими" сессиями на оборудовании.

Адреса и порты серверов авторизации и аккаунтинга

IP-адрес

Адрес RADIUS-сервера авторизации и аккаунтинга - это все адреса биллинга, указанные в настройках сети

Порты

  • Авторизация: 1812
  • Аккаунтинг: 1813

Атрибуты

При успешной авторизации отправляется Access-Accept пакет. Он содержит список атрибутов авторизации их можно задать следующи образом:

Атрибуты NAS

Для каждого НАС можно задать radius атрибуты. Список задаётся на вкладке Дополнительно. Интерфейс описан в статье. Разный набор атрибутов и разные значения атрибутов можно отправить в зависимости от статуса баланса и блокировки абонента.

Атрибуты в тарифе

При необходимости группе абонентов можно отправить отдельный атрибут, это можно сделать добавив его в тариф. Атрибут будет отправлен в любом случае.

Атрибуты константы

В процедуре авторизации заданы следующие константы:

Атрибут Опиция Значение Расшифровка Как изменить
Acct-Interim-Interval := 600 Интервал отправки аккаунитга оборудованием в секундах. Добавьте одноимённый атрибут со своим значением в NAS или тариф.
Framed-IP-Address :=   IP адрес для сессии Можно отключить отправку атрибута опцией Не отправлять framed-ip-address в NAS

Атрибуты в аккаунтинге

После прохождения процедуры авторизации можно изменить состояние сессии средствами аккаунтинга. За отправку аккаунтинг сообщений отвечает программа radclient, вызвать её можно в скрипте session, можно использовать переменные.

Словари атрибутов

Файл стандартных атрибутов freeradius:

/app/asr_billing/usr/share/freeradius/dictionary

Дополнительные словари с атрибутами хранятся в каталоге:

/app/asr_billing/var/local/etc/raddb/

Доступны словари оборудования:

  • Carbon Soft - dictionary.carbon
  • MikroTik - dictionary.mikrotik
  • VASExperts - dictionary.vasexperts

Чтобы атрибут был отправлен клиенту, он должен присутствовать в одном из словарей. Если атрибута нет в словаре, при попытке авторизации в логе отладки radius_degug.log вы увидите сообщение Unknown attribute:

rlm_sql: Failed to create the pair: Unknown attribute "VasExperts-L2-User" requires a hex string, not "1"
Если вам необходимо добавить атрибут, которого нет в справочнике, обратитесь в техническую поддержку.

Отладка авторизации

Отладка авторизации

  1. В настройках в файле включите опцию "Включить DEBUG для Radius демона"
  2. Перезапустите Radius сервер для вступления измений в силу:
    chroot /app/asr_billing/ service radiusd restart
    
  3. В терминале запустите мониторинг лога
    tail -f /app/asr_billing/var/log/radius/radius_debug.log
  4. Совершите авторизацию
  5. Дальше - по ситуации, но нужно помнить что для успешной авторизации в логе должны быть три SQL-запроса:
    • Первый возвращает радиусу информацию о наличии учётной записи
      SELECT ... FROM RAD6_CHECK ('CHECK'
    • Второй возвращает необходимые атрибуты, которые нужно отправить в Access-Accept
      SELECT ... FROM RAD6_CHECK ('REPLY'
    • Третий проводит дополнительные проверки. Должен вернуть "0"
      SELECT ... FROM RAD6_CHECK ('SIMUL'

Отладка команд отправляемых после авторизации

  • Если после авторизации сессия сбрасывается или по ней приходят какие-то команды, это можно отладить по логам отправленных событий учётной записи
  • Например, для абонента ID 5473 и учётной записи ID 4809 следующей командой можно смотреть отправляемые команды:
    tail -f -n 1000 /app/asr_billing/var/log/abonents/5473/event_4809.log | grep auth_type | awk '{print $1,$2,$7}'

    Если нужно отслеживать какие-то определённые команды, то можно такой командой:

    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'

Отладка аккаунтинга

  1. В настройках в файле включите опцию "Включить DEBUG для Radius Accounting"
  2. Перезапустите RadiusAccaunting сервер для вступления измений в силу:
    chroot /app/asr_billing/ service radiusd restart
    
  3. В терминале запустите мониторинг лога
    tail -f /app/asr_billing/var/log/radius_acc/radius_debug.log
    
  4. Совершите авторизацию, дождитесь отправки аккаунтинга.
  5. Дальше просмотрите SQL-запросы по сессии:
    • Старт сессии
      SELECT ... FROM RAD6_ACCT_START
    • Обновление состояния сессии
      SELECT ... FROM RAD6_ACCT_UPDATE
    • Окончание сессии
      SELECT ... FROM RAD6_ACCT_STOP
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.