top
logo


ABILLS документация. PDF Печать E-mail
Автор: Administrator   
23.10.10 12:59

Abills

ABILLS


(Asmodeus BILLing System)


SourceForge.net Logo


Возможности

 

  • Тарификация по времени
  • Тарификация по трафику
  • Периодические отчисления (месячная и дневная абонплата)
  • Возможность раздельной и совместной тарификации по времени и трафику
  • Ограничение доступа в интернет по времени суток
  • Система скидок
  • Установка минимальной цены сесии
  • Работа с неограниченым количеством NAS серверов
  • Авторизация по SQL базе даных или по системной UNIX базе паролей
  • Авторизация по PAP, CHAP, MS-CHAP, MS-CHAPv2 (CHAP при сохраниени паролей в SQL базе)
  • Авторизация PPPOE по MAC адресу
  • Авторизация PPTP по IP адресу (для MPD по IP и MAC одновременно)
  • Изменение тарифного плана или снятие денег со счета по расписаню
  • Разделение трафика на 3 вида (внутрений, внешний, бесплатный) (Только для VPN)
  • Ограничение скорости в зависемости от вида трафика (Только для VPN)
  • Создание месячных предоплаченых по трафику пакетов
  • Дневные, недельные и месячные лимиты по трафику и времени
  • Отчёты по работе системы и с остоянию счетов за любой период времени
  • Генерация и отправка администратору добовых и месячных отчётов по работе системы
  • Лог действий администратора, менеджера
  • Ограничение сесий по количеству общего (in+out) трафика (для exppp, mpd, pppd + RADIUS plugin (Linux)) (new)
  • WEB нтрефейс с ограничеными возможностями для касиров и сапорта (cgi-bin/manager.cgi) (new)
  • Несёмный минимум для подключений к NAS серверам (Tarif Plans -> Credit Tresshold)(new)
  • Выписка счётов из пользовательского интерфейса (new)
  • Обратная связь (new)

 


Скриншоты


Список пользователей
Управление пользователем
Статистика пользователя
Оплаты
Снятия денег со счёта
Отчёты по трафику времени
Текущие сесии
Настройка серверов доступа
Интерфейс пользователя


Установка

Abills

 

Загрузить пакет можно по адресу http://sourceforge.net/projects/abills/ 

 



tar zxvf abills-0.24b.tgz
cp -Rf abills /usr/

Правим файлы

/usr/abills/libexec/config.pl

#DB configuration
$conf{dbhost}='localhost';
$conf{dbname}='abills';
$conf{dblogin}='abills';
$conf{dbpasswd}='password';
$conf{ADMIN_MAIL}='info\@your.domain';
$conf{USERS_MAIL_DOMAIN}="your.domain";
$conf{secretkey}="test12345678901234567890";

/usr/abills/cgi-bin/admin/Abwconf.pm

$dbhost='localhost';
$dbname='abills';
$dbuser='abills';
$dbpasswd='password';
$mail_domain='your.domain';
$mail_from='[email protected]';

/etc/crontab

*/5 * * * * root /usr/abills/libexec/billd -all
1 0 * * * root /usr/abills/libexec/periodic daily
1 0 1 * * root /usr/abills/libexec/periodic monthly


MySQL

 

Загрузить пакет MySQL можно по адресу http://www.mysql.com 

 



tar xvfz mysql-4.0.23a.tar.gz
cd mysql-4.0.23a
./configure
make
make install

Создаём пользователя и базу.

use mysql;
INSERT INTO user (Host, User, Password) VALUES ('%','abills', password('******'));

INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Index_priv, Alter_priv)
VALUES ('localhost', 'abills', 'abills', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');

CREATE DATABASE abills;

mysqladmin flush-privileges

Загружаем таблицы в базу.
mysql -D abills < abills.sql


Radius

 

Загрузить пакет FreeRadius можно по адресу http://www.freeradius.org

tar zxvf freeradius-1.0.1.tar.gz
freeradius-1.0.1
./configure --prefix=/usr/local/radiusd/
make
make install

После успешной установки правим файлы:

/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 nashost.nasdomain {
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
}


ABillS

Отрываем веб интерфейс http://your.host/billing/admin/

Прежде всего надо скунфигурировать NAS сервер.
Переходим в меню
Other->NAS configuration


IP - IP адрес NAS сервера
Name - Название
Radius NAS-Identifier - Индентификатор сервера (можно не вписывать)
Describe - Описание сервера
Type - Тип сервера. В зависимости от типа по разному обрабатываются запроси на авторизацию и акаунтинг информация.
Authorization - Тип авторизации. SYSTEM - При хранении паролей в UNIX базе (/etc/passwd) SQL - при хранении паролей SQL базе (MySQL, PosgreSQL)
:Manage: - Секция менеджмента NAS сервера
IP:PORT - IP адрес и порт для контроля соединения. Например для отключения пользователя с веб интерфейса.
User - Пользователь для контроля
Password - Пароль
RADIUS Parameters - Дополнительные параметры которые передаются NAS серверу после успешной авторизации.

Создание тарифного плана Меню
Tarif Plans

Регистрация пользователя
Users->Add


Проверяем

# radtest testuser testpassword 127.0.0.1:1812 0 radsecret 0 127.0.0.1

Если всё правильно настроено в файле логов '/usr/abills/var/log/abills.log' должна появится строка

 

2005-02-23 12:55:55 LOG_INFO: AUTH [testuser] NAS: 1 (xxx.xxx.xxx.xxx) GT: 0.03799

 


Web Server

Apache

В случае использования веб сервера Apache вносим в httpd.conf

Alias /billing "/usr/abills/cgi-bin/"
<Directory "/usr/abills/cgi-bin">
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1]
Options Indexes ExecCGI SymLinksIfOwnerMatch
</IfModule>
Options Indexes ExecCGI FollowSymLinks
AllowOverride none
DirectoryIndex users.cgi
AddHandler cgi-script .cgi
Order allow,deny
Allow from all
</Directory>


<Directory "/usr/abills/cgi-bin/admin">
Options Indexes ExecCGI SymLinksIfOwnerMatch
AllowOverride none
DirectoryIndex users.cgi
order deny,allow
deny from all
AuthType Basic
AuthName "ABillS"
AuthUserFile /usr/abills/cgi-bin/admin/admins
Satisfy Any
require valid-user
</Directory>

Создаём файл /usr/abills/cgi-bin/admin/admins с паролями администратора

# htpasswd -c /usr/abills/cgi-bin/admin/admins admin

Установить права на чтение и запись вебсервером для файлов веб интерфейса

chown -Rf www /usr/abills/cgi-bin


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

 


Soft

exppp_asm-0.2.4.tar.gz - стандартный FreeBSD ppp демон с возможностью разделять трафик,
установкой лимита трафика на сесию и другими улутшениями.
expppd-0.2.1.tar.gz - pppd c радиус авторизацией и акаунтингом.
radpppd.tar.gz - pppd c радиус авторизацией и акаунтингом.

Настройка

PPPoE

Переходим в каталог с програмами
cd abills/soft

tar zxvf exppp_asm-0.2.4.tar.gz
cd exppp_asm-0.2.4
make
cp ppp /usr/sbin/
cp etc/shape.ppp /etc/ppp
cp raddb/exppp /usr/local/radiusd/etc/raddb/

Дописываем в файл

/usr/local/radiusd/etc/raddb/dictionary

$INCLUDE /usr/local/radiusd/etc/raddb/exppp


перезагружаем радиус

Правим файл настройки ppp
/etc/ppp/ppp.conf

default:
set log Warning

pppoe-in: # Метка (индентификатор правил)
set mtu 1492
set mru 1492
allow mode direct
enable lqr
set timeout 6000
disable acfcomp protocomp
deny acfcomp
# если авторизация из UNIX базы паролей enable pap
enable chap
set speed sync
accept dns
#set dns xxx.xxx.xxx.xxx
# Номер порта для контроля и пароль
set server +3000 password
set radius /etc/radius.conf
set rad_service_type 11
# Таймаут для Alive пакетов
set rad_alive 60
# Скрипт для поднятия шейпера
set ip-up /etc/ppp/shape.ppp
set ip-down /etc/ppp/shape.ppp

Не забывайте делать отступы для правил расположеных после мотки. В противном случае они не будут приниматься.

Если нужна независимая обрезка трафика по категориям коментируем последние две строчики и правим файлы
/etc/ppp/ppp.linkup

MYADDR:
!bg /usr/abills/libexec/linkupdown up INTERFACE USER HISADDR

/etc/ppp/ppp.linkdown

MYADDR:
!bg /usr/abills/libexec/linkupdown down INTERFACE USER HISADDR

Конфигурационный файл для подключения к радиусу
/etc/radius.conf

auth radius.hostname:1812 radsecret 4 4
acct radius.hostname:1813 radsecret 4 4

Запускаем PPPoE демон
/usr/libexec/pppoed -l pppoe-in -p * fxp2

Для автоматического поднятия PPPoE демона после перезагрузки правим файл
/etc/rc.conf

pppoed_enable="YES"
pppoed_flags="-l pppoe-in"
pppoed_interface="fxp2"     # Интерфейс на котором демон будет слушать


PPTP

Правим файл настройки ppp
/etc/ppp/ppp.conf

default:
set log Warning

pptp:
set mtu 1460
set mru 1460
allow mode direct
enable lqr
set timeout 6000
disable acfcomp protocomp
deny acfcomp
# если авторизация из UNIX базы паролей enable pap
enable chap
accept dns
#set dns xxx.xxx.xxx.xxx
# Номер порта для контроля и пароль
set server +3000 password
set radius /etc/radius.conf
set rad_service_type 11
# Таймаут для Alive пакетов
set rad_alive 60
# Скрипт для поднятия шейпера
set ip-up /etc/ppp/shape.ppp
set ip-down /etc/ppp/shape.ppp

Если нужна независимая обрезка трафика по категориям коментируем последние две строчики и правим файлы
/etc/ppp/ppp.linkup

MYADDR:
!bg /usr/abills/libexec/linkupdown up INTERFACE USER HISADDR

/etc/ppp/ppp.linkdown

MYADDR: !bg /usr/abills/libexec/linkupdown down INTERFACE USER HISADDR

Конфигурационный файл для подключения к радиусу
/etc/radius.conf

auth radius.hostname:1812 password 4 4
acct radius.hostname:1813 password 4 4

Настройка pptp демона

cd /usr/ports/net/poptop/
make
make install
/usr/local/sbin/pptpd

Для автоматического запуска после перезагрузки
cp /usr/local/etc/rc.d/pptpd.sh.sample /usr/local/etc/rc.d/pptpd.sh

CVS

Для получения регулярных обновлений и баг фиксов Вы можете пользоваться CVS репозитарием.

Получить последнюю версию можно при помощи команд

# cvs -d:pserver: Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. :/cvsroot/abills login
# cvs -z3 -d:pserver: Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. :/cvsroot/abills co -P abills


Author: ~AsmodeuS~
ICQ: 50254692

Последнее обновление 25.10.10 08:36
 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика