Возможности
Скриншоты
Установка.
Abills
MySQL
Radius
Web Server
Perl
Soft
Настройка
ExPPP
PPPoE
PPTP
MPD
PPPoE
PPTP
Дополнительно
MCH
Forum
CVS
Список пользователей
Управление пользователем
Статистика пользователя
Оплаты
Снятия денег со счёта
Отчёты по трафику времени
Текущие сесии
Настройка серверов доступа
Интерфейс пользователя
Загрузить пакет можно по адресу http://sourceforge.net/projects/abills/ tar zxvf abills-0.24b.tgz cp -Rf abills /usr/
Правим файлы
/usr/local/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/local/abills/cgi-bin/admin/Abwconf.pm
$dbhost='localhost';
$dbname='abills';
$dbuser='abills';
$dbpasswd='password';
$mail_domain='your.domain';
$mail_from='abills@your.domain';
/etc/crontab
*/5 * * * * root /usr/local/abills/libexec/billd -all
1 0 * * * root /usr/local/abills/libexec/periodic daily
1 0 1 * * root /usr/local/abills/libexec/periodic monthly
Загрузить пакет 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
Загрузить пакет 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/local/abills/libexec/rauth.pl"
/usr/local/radiusd/etc/raddb/acct_users
DEFAULT Acct-Status-Type == Start
Exec-Program = "/usr/local/abills/libexec/racct.pl"
DEFAULT Acct-Status-Type == Alive
Exec-Program = "/usr/local/abills/libexec/racct.pl"
DEFAULT Acct-Status-Type == Stop
Exec-Program = "/usr/local/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
}
Отрываем веб интерфейс 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/local/abills/var/log/abills.log' должна появится строка
Apache
В случае использования веб сервера Apache вносим в httpd.conf
Alias /billing "/usr/local/abills/cgi-bin/"
<Directory "/usr/local/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/local/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/local/abills/cgi-bin/admin/admins
Satisfy Any
require valid-user
</Directory>
Создаём файл /usr/local/abills/cgi-bin/admin/admins с паролями администратора
# htpasswd -c /usr/local/abills/cgi-bin/admin/admins admin
Установить права на чтение и запись вебсервером для файлов веб интерфейса
chown -Rf www /usr/local/abills/cgi-bin
Для работы системы нужны модули.
Эти модули можно загрузить с сайта http://www.cpan.org
exppp_asm-0.2.4.tar.gz - стандартный FreeBSD ppp демон с возможностью разделять трафик, установкой лимита трафика на сесию и другими улутшениями. expppd-0.2.1.tar.gz - pppd c радиус авторизацией и акаунтингом. radpppd.tar.gz - pppd c радиус авторизацией и акаунтингом.
Переходим в каталог с програмами 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/local/abills/libexec/linkupdown up INTERFACE USER HISADDR
/etc/ppp/ppp.linkdown
MYADDR:
!bg /usr/local/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" # Интерфейс на котором демон будет слушать
Правим файл настройки 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/local/abills/libexec/linkupdown up INTERFACE USER HISADDR
/etc/ppp/ppp.linkdown
MYADDR:
!bg /usr/local/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 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/abills login
# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/abills co -P abills