Это старая версия документа.
Установка и предварительная настройка
- Для установки серверной части системы требуется любая ОС семейства Unix (FreeBSD,Linux,Solaris).
- Для работы администратора и пользователей с биллингом подойдёт любая система, имеющая современный WEB-браузер. Для работы с серверной частью системы не потребуется никаких дополнительных настроек на ПК администратора или клиентов.
Требование к ресурсам системы для установки серверной части
Оптимальная конфигурация системы для работы с серверной частью в первую очередь зависит от ширины обслуживаемого биллингом канала и количества одновременно работающих пользователей, а также от спектра предоставляемых услуг провайдером.
Рекомендованная конфигурация при 1000 активных пользователях и 100 мб/сек канале при размещении сервера биллинга и сервера доступа на одном физическом сервере:
- Процессор на базе Intel P4 или другой совместимый с тактовой частотой 2 Ггц и выше.
- Оперативной памяти не менее 2 Гб
- Жёсткий диск для хранения автоматических бекапов системы не менее 100 гб.
- Mysql версии 5.6.x и выше
- Freeradius 1 или 2 и выше
- apache 1.3.xx и выше
- perl v5.12.0 и выше
Замечания по установкe операционной системы.
FreeBSD
- При разбиении диска на разделы крайне рекомендуется отвести для раздела /var не менее 10 Гигабайт. Если планируется высокая нагрузка, это значение можно увеличить.
- Рекомендованный дистрибютивный набор (Distribution Set) - 6 Kernel-Developer
- Более подробно об установке читайте тут FreeBSD Handbook
Linux
ABillS - Установка
Загрузить пакет можно по адресу http://sourceforge.net/projects/abills/
# tar zxvf abills-0.5x.tgz # cp -Rf abills /usr/ # cp /usr/abills/libexec/config.pl.default /usr/abills/libexec/config.pl
Правим конфигурационный файл системы
/usr/abills/libexec/config.pl
#DB configuration $conf{dbhost}='localhost'; $conf{dbname}='abills'; $conf{dbuser}='abills'; $conf{dbpasswd}='sqlpassword'; $conf{ADMIN_MAIL}='info@your.domain'; $conf{USERS_MAIL_DOMAIN}="your.domain"; # используется для шифрования паролей администраторов и пользователей. $conf{secretkey}="test12345678901234567890";
При изменении значения в $conf{secretkey} поменяйте его также в файле abills/abills.sql
Настройка сопутствующего ПО
MySQL
Загрузить пакет MySQL можно по адресу [http://www.mysql.com]
Пример настройки для MySQL версии 5.1
# tar xvfz mysql-5.1.x.tar.gz # cd mysql-5.1.x # ./configure # make # make install
Создаём пользователя и базу.
# mysql --default-character-set=utf8 -u root -p
use mysql; INSERT INTO user (Host, User, Password) VALUES ('localhost','abills', password('sqlpassword')); INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Index_priv, Alter_priv, Lock_tables_priv, Create_tmp_table_priv, Create_view_priv, Show_view_priv, Execute_priv) VALUES ('localhost', 'abills', 'abills', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'); CREATE DATABASE abills DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; flush privileges;
Загружаем таблицы в базу.
# cd /usr/abills/db/ # mysql --default-character-set=utf8 -D abills < abills.sql
Web Server
Apache
Apache
Веб-сервер должен быть собран с поддержкой mod_rewrite
# ./configure --prefix=/usr/local/apache --enable-rewrite=shared # make # make install
Если нужно шифрование трафика для веб-интерфейса, тогда создаём сертификаты. Apache должен быть собран с mod_ssl.
# /usr/abills/misc/certs_create.sh apache
Вносим в конфигурационый файл следующие опции httpd.conf.
#Abills version 0.5 Listen 9443 <VirtualHost _default_:9443> DocumentRoot "/usr/abills/cgi-bin" #ServerName www.example.com:9443 #ServerAdmin admin@example.com ErrorLog /var/log/httpd/abills-error.log #TransferLog /var/log/httpd/abills-access.log CustomLog /var/log/httpd/abills-access_log common <IfModule ssl_module> # SSL Engine Switch: # Enable/Disable SSL for this virtual host. SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /usr/abills/Certs/server.crt SSLCertificateKeyFile /usr/abills/Certs/server.key <FilesMatch "\.(cgi)$"> SSLOptions +StdEnvVars </FilesMatch> BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog /var/log/abills-ssl_request.log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </IfModule> # User interface <Directory "/usr/abills/cgi-bin"> <IfModule ssl_module> SSLOptions +StdEnvVars </IfModule> <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1] Options Indexes ExecCGI SymLinksIfOwnerMatch </IfModule> AddHandler cgi-script .cgi Options Indexes ExecCGI FollowSymLinks AllowOverride none DirectoryIndex index.cgi Order allow,deny Allow from all <Files ~ "\.(db|log)$"> Order allow,deny Deny from all </Files> #For hotspot solution #ErrorDocument 404 "/abills/" #directoryIndex "/abills" index.cgi </Directory> #Admin interface <Directory "/usr/abills/cgi-bin/admin"> <IfModule ssl_module> SSLOptions +StdEnvVars </IfModule> AddHandler cgi-script .cgi Options Indexes ExecCGI FollowSymLinks AllowOverride none DirectoryIndex index.cgi order deny,allow allow from all </Directory> </VirtualHost>
Или включаем abills/misc/apache/abills_httpd.conf в конфигурационный файл apache
Include /usr/abills/misc/apache/abills_httpd.conf
Perl modules
Для работы системы нужны модули.
DBI | |
DBD-mysql | |
Digest-MD5 | для Chap авторизации |
Digest-MD4 | для MS-Chap авторизации |
Crypt-DES | для MS-Chap авторизации |
Digest-SHA1 | для MS-ChapV2 авторизации |
libnet | Нужен только при авторизации из UNIX passwd |
Time-HiRes | Нужен только для тестирования скорости выполнения авторизациИ, аккаунтинга, и страниц веб-интерфейса |
Эти модули можно загрузить с сайта [http://www.cpan.org] или установка с консоли.
# cd /root # perl -MCPAN -e shell o conf prerequisites_policy ask install DBI install DBD::mysql install Digest::MD5 install Digest::MD4 install Crypt::DES install Digest::SHA1 install Bundle::libnet install Time::HiRes quit
Radius
В данной документации описана настройка exec версии работі билинга с радиусом, если у Вас больше 500 абонентов просьба пользоваться rlm_perl конфигурацией
Загрузить пакет FreeRadius можно по адресу [http://www.freeradius.org]
# tar zxvf freeradius-1.1.0.tar.gz # cd freeradius-1.1.0 # ./configure --prefix=/usr/local/radiusd/ # make # make install
Версия 1.хх
После успешной установки правим файлы:
/usr/local/radiusd/etc/raddb/users
DEFAULT Auth-Type = Accept Exec-Program-Wait = "/usr/abills/libexec/rauth.pl"
/usr/local/radiusd/etc/raddb/acct_users
DEFAULT Acct-Status-Type == Start Exec-Program = "/usr/abills/libexec/racct.pl" DEFAULT Acct-Status-Type == Alive Exec-Program = "/usr/abills/libexec/racct.pl" DEFAULT Acct-Status-Type == Stop Exec-Program = "/usr/abills/libexec/racct.pl"
/usr/local/radiusd/etc/raddb/clients.conf
В этот файл нужно вписать IP адрес или имя NAS сервера с
которого будут поступать данные для радиуса и пароль доступа.
client 127.0.0.1 { secret = radsecret shortname = shorrname }
/usr/local/radiusd/etc/raddb/radiusd.conf
В этом файле нужно закомментировать использование модулей
'chap' и 'mschap' в разделе 'authorize'
authorize { preprocess # chap # counter # attr_filter # eap # suffix files # etc_smbpasswd # sql # mschap }
Версия 2.xx
Для работы с freeradius 2 нужно указать параметр в конфигурационном файле abills:
/usr/abills/libexec/config.pl
$conf{RADIUS2}=1;
в raddb/radiusd.conf в секции modules
описываем секции:
abills_preauth exec abills_preauth { program = "/usr/abills/libexec/rauth.pl pre_auth" wait = yes input_pairs = request shell_escape = yes #output = no output_pairs = config } abills_postauth exec abills_postauth { program = "/usr/abills/libexec/rauth.pl post_auth" wait = yes input_pairs = request shell_escape = yes #output = no output_pairs = config } abills_auth exec abills_auth { program = "/usr/abills/libexec/rauth.pl" wait = yes input_pairs = request shell_escape = yes output = no output_pairs = reply } abills_acc exec abills_acc { program = "/usr/abills/libexec/racct.pl" wait = yes input_pairs = request shell_escape = yes output = no output_pairs = reply }
в секции exec
Код:
exec { wait = yes input_pairs = request shell_escape = yes output = none output_pairs = reply }
Файл raddb/sites-enable/default - правим секции authorize, preacct, post-auth. Остальное в этих секциях ремарим.
Код:
authorize { preprocess abills_preauth mschap files abills_auth } preacct { preprocess abills_acc } post-auth { Post-Auth-Type REJECT { abills_postauth } }
в raddb/users
Код:
DEFAULT Auth-Type = Accept
для автоматического запуска радиуса в FreeBSD внести изменения в /etc/rc.conf добавить
Код:
radiusd_enable="YES"
ABillS - Настройка
Вносим в cron
периодические процессы
billd - контролер активных сессий
periodic - дневные и месячные периодические процессы
/etc/crontab
*/5 * * * * root /usr/abills/libexec/billd -all 1 0 * * * root /usr/abills/libexec/periodic daily 1 1 * * * root /usr/abills/libexec/periodic monthly
Установить права на чтение и запись вебсервером для файлов веб интерфейса
# mkdir /usr/abills/var/ /usr/abills/var/log /usr/abills/backup # chown -Rf www /usr/abills/cgi-bin # chown -Rf www /usr/abills/Abills/templates # chown -Rf www /usr/abills/backup
Веб интерфейс администратора:
https://your.host:9443/admin/
Логин администратора по умолчанию abills пароль abills
Веб интерфейс для пользователей:
https://your.host:9443/
В интерфейсе администратора прежде всего надо сконфигурировать сервера доступа NAS (Network Access Server).
Переходим в меню
System configuration→NAS
Параметры
IP | IP адрес NAS сервера |
---|---|
Name | Название |
Radius NAS-Identifier | Идентификатор сервера (можно не вписывать) |
Describe | Описание сервера |
Type | Тип сервера. В зависимости от типа по разному обрабатываются запросЫ на авторизацию |
Authorization | Тип авторизации. SYSTEM - При хранении паролей в UNIX базе (/etc/passwd) SQL - при хранении паролей SQL базе (MySQL, PosgreSQL) |
Alive | Период отправки Alive пакетов |
Disable | Отключить |
:Manage: | Секция менеджмента NAS сервера |
IP:PORT | IP адрес и порт для контроля соединения. Например, для отключения пользователя из веб-интерфейса |
User | Пользователь для контроля |
Password | Пароль |
RADIUS Parameters | Дополнительные параметры которые передаются NAS серверу после успешной авторизации. |
После заведения сервера доступа добавте ему пул адресов IP POOLs.
FIRST IP | Первый адрес в пуле |
---|---|
COUNT | Количество адресов |
Одному серверу доступа может принадлежать несколько пулов адресов.
Создание тарифного плана
Меню
System configuration→Internet→Tarif Plans
Регистрация пользователя
Customers→Users→Add
Заведение сервиса Internet на пользователя.
Customers→Users→Information→Services→Internet
Проверка
Для проверки правильно ли настроен сервис нужно запустить утилиту radtest указав логин и пароль существующего пользователя.
Логин: test Пароль: 123456
# radtest test 123456 127.0.0.1:1812 0 radsecret 0 127.0.0.1
Если всё правильно настроено, в журнале ошибок /Отчёт/Internet/Ошибка/ должна появиться строка
2005-02-23 12:55:55 LOG_INFO: AUTH [test] NAS: 1 (xxx.xxx.xxx.xxx) GT: 0.03799
Если Вы увидите другие ошибки смотрите в список ошибок. Если журнал ошибок пуст значит неправильно настроено взаимодействие с RADIUS сервером.