Для авторизации, аутентификации и аккаунтинга абонентов (AAA) в существует специальный API и набор модулей.

Модуль

Назначение

FreeRADIUS

Прием RADIUS-пакетов от сетевого оборудования, передача запросов в АСР и выдача ответов оборудованию.

hard.pm

Perl-скрипт для FreeRADIUS (модуль rlm_perl, передающий запросы в модуль hard)

hard

Агент , обрабатывающий RADIUS-запросы. Взаимодействует непосредственно с ядром АСР.

При аутентификации и авторизации абонента взаимодействие организовано следующим образом:

  1. NAS отправляет RADIUS-пакет на авторизацию на сервер FreeRADIUS.
  2. FreeRADIUS декодирует пакет и передаёт набор RADIUS-атрибутов модулю hard.pm (rlm_perl).
  3. Модуль hard.pm по HTTP-протоколу передает атрибуты агенту hard.
  4. Агент hard запрашивает у ядра АСР информацию об абоненте, его оборудовании и состоянии подключенных услуг. В случае отсутствия связи с АСР для выдачи ответа используется кэш из СУБД MongoDB.

Установка

Предполагается, что в системе уже установлен интерпретатор Perl 5.10 и выше, Python 2.6 или 2.7, а также другие пакеты, требуемые для работы агентов и, в частности, специфические пакеты для агента hard.

Debian/Ubuntu

Предварительно полключить в систему репозиторий компании Латера

Установите MongoDB:

apt-get install mongodb

Fedora/CentOS/RHEL

В новых версиях дистрибутива MongoDB есть в стандартной поставке. Установите пакеты:

yum install mongodb mongodb-server 

Если таких пакетов в вашем дистрибутиве нет, создайте файл /etc/yum.repos.d/10gen.repo со следующим содержанием:

[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0

и повторите попытку. Полная информация доступна в справке MongoDB .

Gentoo

Установите MongoDB:

emerge mongodb

Завершение установки

Установите агента hard из пакета, предоставляемого Latera Software. В зависимости от дистрибутива Linux, это может быть deb- или rpm-пакет или ebuild.

Настройка

Настройка hard выполняется в конфигурационном файле hard.conf, который обычно находится в каталоге /etc/hard.