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

Skip to end of metadata
Go to start of metadata

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

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

Данные настройки отвечают за то, по какому именно полю биллинг будет пытаться найти абонента в БД.

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

  • Проверять 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

Примеры

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

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

IP-адрес

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

Порты

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

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

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

  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 
Ищите метку? просто начните печатать.