=====NAS Integration===== В документе описывается создания дополнительного сервера доступа (Network Access Server - NAS) с его собственными правилами авторизации и аккаунтинга.\\ Базовый модуль авторизации **Auth.pm** (Abills/mysql/Auth.pm).\\ Базовый модуль аккаунтинга **Acct.pm** (Abills/mysql/Acct.pm).\\ Если у Вас появилась необходимость поменять правила авторизации или аккаунтинга для системы можно просто создать дополнительный NAS и применять к нему Ваши собственные правила авторизации или аккаунтинга.\\ Для примера создадим новый NAS **ppp_test** * Для начала создадим модуль авторизации:\\ **Abills/mysql/Ppp_test_auth.pm** package Ppp_test_auth; #Test Auth module use strict; use parent 'dbcore'; $VERSION = 7.00; my $db; my $CONF; my $debug=0; #**************************************** # Init #**************************************** sub new { my $class = shift; ($db, $CONF) = @_; my $self = { }; bless($self, $class); return $self; } #**************************************** # Auth function # # auth($RAD, $NAS) # $RAD - Request Rad pairs # # $NAS - Nas information object # # Return $auth_code, Rad_pairs_hash_ref # $auth_code # 0 - Allow # 1 - Deny #**************************************** sub auth { my $self = shift; my ($RAD, $NAS, $attr)=@_; #Response Rad pairs my %RAD_PAIRS = ( 'Framed-IP-Address' => '192.168.111.10' ); return 0, \%RAD_PAIRS; } 1 Модуль аккаунтинга можно взять уже имеющийся в системе и скопировать его в новый файл: # Abills/mysql/ # cp Acct.pm Ppp_test_acct.pm Открываем новые файлы и меняем названия пакетов: **Ppp_test_acct.pm** в первой строке package Acct; меняем на package Ppp_test_acct; * После этого добавляем в **config.pl**\\ Описание сервера: $conf{nas_servers} = { 'ppp_test' => 'PPP test NAS server' }; Правила авторизации после строки %AUTH = (); %AUTH = (); $AUTH{ppp_test} = 'Ppp_test_auth'; Правила аккаунтинга после строки %ACCT = (); %ACCT = (); $ACCT{ppp_test} = 'Ppp_test_acct'; * Все новый NAS сервер создан.\\ После этого можно вносить любые изменения в Ваши новые модули для авторизации или аккаунтинга.\\ ====Сброс сессий==== Для сброса сессий нового сервера доступа нужно добавить файл работы с сервером доступа в каталог /usr/abills/libexec/nas. Название файла должно совпадать с названием типа сервера достпа. \\ **Пример файла обработки сброса сессии**\\ **ppp_test.pm**\\ # # Example nas hangup # sub hangup_dell { my ($NAS, $PORT, $attr) = @_; print "Hangup!!!!\n"; return 0; } 1