ABillS система білінгу для nix

Стаття з журналу Зломщик
Майже більшість послуг, що надаються провайдерами або сервісами, вимагає наявності системи автоматичного обліку витрачених ресурсів. На даний момент доступна необмежену кількість білінг-систем, як платних, так і безкоштовних, що розповсюджуються під вільною ліцензією.
Деякі з них орієнтовані на суворо певний сервіс, інші рішення функціональні. Система білінгу ABillS відноситься до класу програм all-in-one.
Можливості ABillS
Безкоштовна білінгова система ABillS (AsmodeuS Billing System) поширюється за ліцензією GNU GPL2, написана на Perl і в процесі роботи використовує інші OpenSource рішення: Apache, MySQL і FreeRADIUS. Інформація про продукт та вихідні тексти доступні на сайті проекту www.abills.net.ua/wiki/doku.php.
За допомогою ABillS можна створювати облік часу роботи та трафіку діалап та VPN користувачів з видачею статистики за будь-який період часу. Працює з необмеженою кількістю NAS (Network Access Server, сервер доступу до мережі) серверів.
Заявлена підтримка протоколу шифрування даних MPPE. З іншого боку, у поставці є ще близько 20 модулів, підключення яких дозволяє збільшити стандартні повноваження. Наприклад, AGI інтерфейс Asterisk і монітор Squid. Існує модуль управління DHCP сервером і поштовими скриньками користувачів.
Можливий моніторинг кількості активних сесій та трафіку, що проходить через інтерфейс за допомогою MRTG. Реалізовано консоль керування базою даних. Абонентські плати можна знімати щодня, щомісяця чи щорічно, реалізована бонусна система.
Оплата послуг може здійснюватися за допомогою карток платежів, а підключення до сервісів за допомогою особливих карток. І практично все інше.Безпосередньо наявність багатьох функцій призвело до того, що ABillS вважається складною в налаштуванні системою.
Спробуємо з нею розібратися. Взагалі установку ABillS умовно можна розбити на два кроки. Практично встановлення та налаштування компонентів системи білінгу та підключення контрольованих сервісів.
При цьому не обов'язково всі компоненти (Apache, MySQL, FreeRADIUS і ABillS) повинні бути встановлені на одному комп'ютері, але для спрощення я використовуватиму саме такий варіант. Як операційна система була обрана Ubuntu 7.10, відмінності в інших системах незначні.
Установка FreeRADIUS
Почнемо з установки FreeRADIUS, який відповідає за передачу інформації між програмами-сервісами та системою білінгу, забезпечуючи три А (авторизацію, автентифікацію, акаунтинг). У репозитаріях переважної більшості дистрибутивів він перебуває, тому:
$ sudo apt-get install freeradius radiusclient1
У своїй роботі FreeRADIUS використовує кілька конфігураційних файлів, які знаходяться в каталозі /etc/freeradius (залежно від виду установки абодистрибутива це може бути /etc/raddb). Всі їх чіпати не потрібно, досить змінити кілька характеристик. Почнемо з radiusd.conf, у якому виконуються загальні функції сервера.
$ sudo mcedit /etc/freeradius/radiusd.conf
files # etc_smbpasswd # sql # mschap > Дані про користувачів записуються у файл /etc/freeradius/users, у ньому необхідно підправити відповідний параметр так, щоб за це відповідав скрипт ABillS.
$ sudo mcedit /etc/freeradius/users
$ sudo mcedit /etc/freeradius/acct_users
DEFAULT Acct-Status-Type == Start

DEFAULT Acct-Status-Type == Alive Exec-Program ="/usr/abills/libexec/racct.pl"
$ sudo mcedit /etc/freeradius/clients.conf
$ check-radiusd-config -level Триста 40 5 radiusd on Радіус сервер configuration looks OK.

Якщо все нормально, запускаємо сервер у режимі налагодження «radiusd –X » і переходимо до наступного кроку.
Налаштування MySQL
Далі нам буде потрібна робоча СУБД MySQL, тому перейдемо до її встановлення. Якщо вона є, цей крок можна пропустити.
$ sudo apt-get install mysql-server mysql-client
У нашому випадку білінг і м'яз знаходяться на одному вузлі, тому цього достатньо. Якщо використовується інший сервер, не забудь змінити тут значення. Запускаємо MySQL:
$ sudo /etc/init.d/mysql start
Наступний крок: у mysql створюємо користувачаabills з паролемpassword та базу данихabills :
$ mysql -u root -p mysql> use mysql; Database changed

mysql>INSERT INTO user (Host, User, Password) VALUES ('localhost','abills', password('password')); mysql>INSERT INTO db , Delete_priv, Create_priv, Drop_priv, Index_priv, Alter_priv, Lock_tables_priv, Create_tmp_table_priv) VALUES ('localhost', 'abills', 'abills', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'); mysql>CREATE DATABASE abills;

Для зручності ці команди можна винести у текстовий файл та завантажити через консоль. На даний момент копіюємо з сайту проекту останню версію ABills, розпаковуємо:
$ cd /usr $ tar xzvf abills-0.37.tgz $ cd abills
Усередині знаходиться шаблон таблиць бази даних, завантажуємо його:
$ mysql -D abills -u root -p > \ /etc/apache2/apache2.conf»
Але без виправлення працювати він не буде. На його базі можна зробити свій файл:
$ sudo mcedit /etc/apache2/apache2.conf
# Підключаємо інтерфейс користувача Alias /abills «/usr/abills/cgi-bin/» RewriteEngine on RewriteCond % ^(.*) RewriteRule ^(.* ) — [E=HTTP_CGI_AUTHORIZATION:%1] Options Indexes ExecCGI SymLinksIfOwnerMatch …
Схожі статті
Стаття написана в журналі Системний адміністратор На даний момент поштовий сервер на базі Unix-подібної ОС обов'язково асоціюються з незрозумілою новою композицією типу Postfix+Dovecot+Squirrelmail+Cl.
V3.01 --> Управління сервісами у великій гетерогенної мережі завдання немає з звичайних. Необхідно не лише оновлювати, відстежувати їхній стан та всі конфігурації. З усім цим може впоратися відкрита.