You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Для обеспечения работы клиентов, подключаемых через авторизацию по протоколу EAP (в первую очередь, Wi-Fi клиентов с RADIUS-авторизацией через EAP/MSCHAPv2) был создан модуль интеграции биллигна NETAMS4 со сторонним популярным RADIUS-сервером FreeRADIUS.

Данный функционал доступен с релиза NETAMS 4.0.1522 (03 марта 2013).

Модуль оформлен в виде источника данных типа FreeRadiusDataSource, который добавляется как и другие источники данных. Настроек не содержит, кроме параметра interim_interval (в минутах), который инструктирует FreeRADIUS передавать анформацию об аккаунтинге (статистике по трафику) каждые N минут.

Источник данных не имеет никакого отношения к другому, существующему источнику данных типа LocalJustRadius, который использует собственный RADIUS-сервер, и предназначен для VPN-подключений. 

FreeRadiusDataSource работает с внешним сервером FreeRADIUS через внутренний сервис MonitorResponderEngine, и скрипт-связку netams4-freeradius-bridge.pl

Применение

Данный тип источника данных должен применяться для обеспечения работы пользователей в сети передачи данных, где доступ клиентов осуществляется при авторизации RADIUS-сервером, в частности при использовании беспроводного радио-доступа (Wi-Fi), авторизации через пару "логин-пароль" (PEAP/EAP-MSCHAPv2). Клиенты (саппликанты) для такой авторизации встроены в подавляющее большинство современный WiFi-устройств. Данный метод проверен на клиентах (ПК Windows, устройства iOS) и беспроводной сети на базе точек доступа Ubiquiti UniFi, но должен работать при применении любых других точек доступа, поддерживающих (автономно, или через контроллер) авторизацию по RADIUS (802.1x).

Предварительные требования

Для того, чтобы авторизация работала нормально, вам необходимо настроить беспроводную сеть, убедиться в ее работе при WPA/WPA2 PSK (Personal) авторизации, затем настроить авторизацию в данной сеть через FreeRADIUS и локальную базу пользователей (/etc/freeradius/users). В биллинге NETAMS необходимо создать соответствующие записи о:

  • тарифе (допустимые тарифные обработчики - те, который используют VPNService в своей основе, это XPrepaidByDaysVPN1, PeriodicFeeIncludedVolume, PeriodicFeeRateLimit (рекомендуется))
  • контракте, лицевом счете
  • учетном объекте (необходимо, чтоб был включен параметр "разрешить динамический IP"
  • услуге (созданной из соответствующего тарифа, учетного объекта, лицевого счета)

Необходимо создать и запустить источник данных FreeRadiusDataSource, и настроить соответствующую связку с FreeRADIUS и DHCP (ниже)

Механика работы

Беспроводной клиент (ноутбук) при подключении к беспроводной сети через встроенный саппликант производит авторизацию с FreeRADIUS-сервером, передавая указанные в настройках логин-пароль. FreeRADIUS согласно своим настройкам запускает скрипт-связку netams4-freeradius-bridge.pl, который получает все текущие атрибуты (в том числе имя (логин) пользователя), упаковывает их в MIME64, отправляет в сторону процесса NETAMS/jserver запрос (аналогично клиенту n4ctl, через локальный UDP-сокет, порт 20003). 

Запрос на стороне NETAMS4/jserver получается службой MonitorResponderEngine, которая выполняет следующие действия:

  • проверяет, есть ли в настройках источник данных типа FreeRadiusDataSource, и запущен ли он
  • распаковывает из MIME64 запрос (набор AVPairs)
  • вызывает процедуры authorization либо accounting для источника данных
     
Источник данных для операции запроса авторизации (authorization) проверяет наличие какой-либо активной услуги, ассоциированной с пришедшим параметром username. Имя проверяется либо по указанному в параметрах контракта логину (web username), либо по отдельно указанному имени доступа к услуге (для тех услуг, которые это предусматривают в своих параметрах). Если имя найдено, то авторизация возвращает обратно по цепочке FreeRadiusDataSource - MonitorResponderEngine - netams4-freeradius-bridge.pl - FreeRADIUS открытый пароль для данного логина (открытый-потому что он используется при построеннии ответа NTLM в сторону саппликанта). Если логин не найден, либо услуга с данным логином уже активна (дабы предотвратить множественные подключения под одним логином), возвращается состояние ошибки, и продолжение авторизации клиента оканчивается неудачей. 
Для данных аккаунтинга (start) происходит прописывание MAC-адреса абонента в параметры учетного объекта (acctunit). Внимание: поскольку беспроводная сеть работает на уровне 2, информации об IP-адресе клиента данные от RADIUS-сервера не содержат! Для аккаунтинга (update) происходит передача статистики (счетчиков) трафика в биллинг. Внимание: у оборудования Ubiquiti UniFi аккаунтинг сломан и всегда передает неправильные значения. Для завершения аккаунтинга (stop) происходит обнуления параметров MAC и IP address учетного объекта, и дополнительно оповещение ядра биллинга о событии LOGOFF.
Как вы обратили внимание, в данной схеме информация об IP-адресе абонента в биллинг не передается. Это связано с тем, что адрес абонент получает уже после того, как прошла авторизация в беспроводной сети, и беспроводная сеть (и соответственно FreeRADIUS с источником данных) об адресе не знают. Так как адрес абонент получает по DHCP, есть возможность совершить действие при назначении адреса DHCP-сервером (при использовании ISC DHCPD), а именно уведомить ядро биллинга о таком назначении. Для этого вызывается утилита n4ctl с параметром setip и MAC-и IP-адресом абонента; при получении данной информации биллинг ищет в списке учетных объектов соответствующий данному MAC-адресу (только что прописан через RADIUS ACCT сообщение), и прописывает динамический IP адрес абонента, заодно вызывая событие LOGIN в ядре биллинга.

Настройка

 

 

  • No labels