Yvision.kz
kk
Разное
Разное
399 773 постов42 подписчика
Всяко-разно
0
02:31, 22 августа 2013

Установка и настройка Abills 0.55rc1 на CentOS 6.4

Blog post image

В данной записке написано как установить биллинг под названием ABillS. Данная биллинговая система предназначена для учета и тарификации следующего трафика: Dialup, VPN, Hotspot, VoIP и IPTV. Система многофункциональна, по средством использования дополнительных модулей можно расширить ее функционал, разумеется модули не бесплатны.  Биллинг популярен, им пользуются многие провайдеры и пользователи.

Главная задача установки биллинга - учет трафика пользователей локальной сети,  это актуально для сетей где еще платят за трафик.

Blog post image

Установку биллинга разобьем на шаги:

1. Установка зависимостей

2. Установка PPP/PPTP

3. Установка Freeradius2

4. Добавление в автозагрузку демонов и запуск их

5. Закачка Abills 0.55b и распаковка его в папку /usr

6. Создаем недостающие каталоги

7. Настройка FreeRadius2

8. Настройка Radiusclient

9. Генерация сертификата Apache

10. Настройка Apache

11. Отключаем SeLinux

12. Создание БД для AbillS

13. Настройка конфигурационных файлов Abills

14. Настройка pptpd

15. Настройка iptables

16. Настройка Abills

17. Настройка кэширующего DNS сервера

Итак приступим!

1. Установка зависимостей

Подключаем необходимые репозитарии:

# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

# rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

Abills версии 0.55 работает совместно с MySQL 5.6, в репозитариях такой версии СУБД нет. Поэтому первым делом установим в ручную нужную версию, это очень важно, так как с версией MySQL 5.1 у вас возникнет кучу проблем!

# wget http://mirror.yandex.ru/mirrors/ftp.mysql.com/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.13-1.el6.i686.rpm

# wget http://mirror.yandex.ru/mirrors/ftp.mysql.com/Downloads/MySQL-5.6/MySQL-server-5.6.13-1.el6.i686.rpm

# wget http://mirror.yandex.ru/mirrors/ftp.mysql.com/Downloads/MySQL-5.6/MySQL-client-5.6.13-1.el6.i686.rpm

Сперва устанавливаем пакет MySQL-shared-compat, это важно, потому что он содержит новый MySQL-Libs версии 5.6.

# yum install MySQL-shared-compat-5.6.13-1.el6.i686.rpm -y

# yum install MySQL-server-5.6.13-1.el6.i686.rpm -y

# yum install MySQL-client-5.6.13-1.el6.i686.rpm -y

СУБД MySQL 5.6 установлена, теперь установим другие пакеты:

# yum install expat mod_ssl php  php-curl  php-devel php-gd php-imap  perl-Crypt-SSLeay perl-DBI perl-DBD-MySQL perl-Digest-SHA1 php-common ImageMagick-devel perl-Crypt-PasswdMD5.noarch php-intl perl-Digest-MD4 php-idn php-mcrypt libmcrypt gedit net-snmp-utils cronie crontabs -y

2. Установка PPP/PPTP

#  rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
#  yum install pptpd ppp pptp -y

3. Устанавливаем FreeRadius:

# yum install freeradius freeradius-mysql -y

# wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/radiusclient-0.3.2-0.2.el6.rf.i686.rpm

# rpm -ivh radiusclient-0.3.2-0.2.el6.rf.i686.rpm

4. Добавление в автозагрузку демонов и запуск их

# chkconfig --level 35 radiusd on

# chkconfig --level 35 httpd on

# chkconfig --level 35 mysql on

# chkconfig --level 35 pptpd on

# service radiusd start

# service httpd start

# service mysql start

# service pptpd start

5. Закачка Abills 0.55b и распаковка его в папку /usr

Установим Abills в папку "/usr" следующими командами:

# cd /usr

# cvs -d:pserver:anonymous@abills.cvs.sourceforge.net:/cvsroot/abills login

# cvs -z3 -d:pserver:anonymous@abills.cvs.sourceforge.net:/cvsroot/abills checkout -r rel-0-5 abills

Теперь биллинг установлен в папку "/usr/abills/".

Есть альтернативный способ установки:

# wget http://sourceforge.net/projects/abills/files/abills/0.55/abills-0.55_rc1.tgz/download

# tar xvf abills-0.55_rc1.tgz -C /usr/

Теперь осталось настроить его...

6. Создаем недостающие каталоги:

# mkdir /usr/abills/backup

# mkdir /usr/abills/var

# mkdir /usr/abills/var/log

# touch /usr/abills/var/log/abills.log

# mkdir /usr/abills/cgi-bin/admin/nets

# chown -Rf apache /usr/abills/backup

# chown -Rf radiusd /usr/abills/var

# chown -Rf apache /usr/abills/cgi-bin

Далее редактируем файл /etc/sudoers, добавляем строку. По этой команде убиваются vpn туннели.

# nano /etc/sudoers

Добавляем строку (можно в конец файла):

apache ALL=NOPASSWD: /usr/abills/misc/pppd_kill

Сохраняем файл, жмем “CTRL+O” чтобы сохранить внесенные нами изменения, а потом жмем “CTRL”+ ”X” - для выхода из редактора.

7. Настройка FreeRadius

Для настройки Free Radius измените следующие файлы:

Имя файла
1/etc/raddb/radiusd.conf
2/etc/raddb/modules/exec
3/etc/raddb/sites-enabled/default
4/etc/raddb/users
5/etc/raddb/clients.conf
6/etc/raddb/dictionary

Как видно, нам надо внести  не которые изменения  в 6-ти файлах, после чего заработает Radius Server.

Приступим редактированию этих 6-ти файлов.

Откроем и отредактируем первый файл /etc/raddb/radiusd.conf

# cp /etc/raddb/radiusd.conf /etc/raddb/radiusd.conf.original

# gedit /etc/raddb/radiusd.conf

Найдите секцию “modules” , вставим в нее следующий текст, не удаляя содержимое этой секции.

Строка 659: вставляем следующий текст:

#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 }

Отредактируем второй файл /etc/raddb/modules/exec

# cp /etc/raddb/modules/exec /etc/raddb/modules/exec.original

# gedit /etc/raddb/modules/exec

В нем найдем секцию “exec” и приведем ее к следующему виду:

Строка 24:Удалем ее содержимое и вставляем свой конфиг

exec { wait = yes input_pairs = request shell_escape = yes output = none output_pairs = reply }

Правим третий файл /etc/raddb/sites-enabled/default

# cp /etc/raddb/sites-enabled/default /etc/raddb/sites-enabled/default.original

# gedit /etc/raddb/sites-enabled/default

Найдите секции “authorize”,” preacct”, “post-auth”.

Удалите или закомментируйте содержимое этих секции.

Строка 69:Удалем содержимое секции “authorize” и вставляем следующий текст:

authorize { preprocess abills_preauth mschap files abills_auth }

Строка 185:Удаляем содержимое секции “preacct” и вставляем следующее содержимое:

preacct { preprocess abills_acc }

Строка 276:Удалем внутренность этой секции и вставляем следующее:

post-auth { Post-Auth-Type REJECT { abills_postauth } }

Отредактируйте файл /etc/raddb/users

# cp /etc/raddb/users /etc/raddb/users.original

# gedit /etc/raddb/users

Добавьте строчку в  конец файла:

DEFAULT Auth-Type = Accept

Редактируем /etc/raddb/clients.conf

# cp /etc/raddb/clients.conf /etc/raddb/clients.conf.original

# gedit /etc/raddb/clients.conf

Закомментируем все, в конец добавляем (клиент/сервер на локальной машине, если будут на разных кодовое слово лучше поменять):

client localhost { ipaddr = 127.0.0.1 secret = radsecret shortname = shortname }

Переходим к редактированию файла /etc/raddb/dictionary

# cp /etc/raddb/dictionary /etc/raddb/dictionary.original

# gedit /etc/raddb/dictionary

Добавляем в конец файла:

# Limit session traffic ATTRIBUTE Session-Octets-Limit 227 integer # What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out) ATTRIBUTE Octets-Direction 228 integer # Connection Speed Limit ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer ATTRIBUTE Acct-Interim-Interval 85 integer

После этого перезапускаем Radius:

# service radiusd restart

Если при запуске сервиса radiusd вы видите ошибки,  выявить откуда растут корни этой ошибки можно с помощью команды radiusd -X , она выдает лог. Если сервис стартанул нормально, но вы все равно хотите видеть лог, вам надо остановить демон радиуса командой service radiusd stop, а потом уже вводить команду radiusd -X

8. Настройка Radiusclient

Редактируем /etc/radiusclient/servers

# cp /etc/radiusclient/servers /etc/radiusclient/servers.original
# gedit /etc/radiusclient/servers

В конец добавляем строчку:

127.0.0.1 radsecret

Скачиваем файл dictionary.microsoft отсюда http://cakebilling.googlecode.com/files/etc.tar.bz2

# cd /tmp

# wget –P /tmp http://cakebilling.googlecode.com/files/etc.tar.bz2

# tar xvjf etc.tar.bz2

Скаченный dictionary.microsoft кладем в /etc/radiusclient/

Файл dictionary.microsoft отвечают за поддержку mschap v2 и mppe

# cp etc/radiusclient/dictionary.microsoft /etc/radiusclient/

Открываем /etc/radiusclient/dictionary

# cp /etc/radiusclient/dictionary /etc/radiusclient/dictionary.original

# gedit /etc/radiusclient/dictionary

Добавляем строки:

INCLUDE /etc/radiusclient/dictionary.microsoft INCLUDE /etc/radiusclient/dictionary.merit # Limit session traffic ATTRIBUTE Session-Octets-Limit 227 integer # What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out) ATTRIBUTE Octets-Direction 228 integer # Connection Speed Limit ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer ATTRIBUTE Acct-Interim-Interval 85 integer

9. Генерация сертификата для Apache

Создадим ключи SSL для Apache.
Для генерации приватного ключа, выполним команду в терминале:

# openssl genrsa -out server.key 1024

Генерация запроса на сертификат CSR:

# openssl req -new -key server.key -out server.csr

Генерация самоподписанного ключа:

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Перемещение полученных файлов в правильные места (папка /usr/abills/Certs):

# mkdir /usr/abills/Certs/

# mv server.* /usr/abills/Certs/

Затем нам нужно обновить конфигурационный файл Apache SSL.

Откройте файл /etc/httpd/conf.d/ssl.conf

# gedit /etc/httpd/conf.d/ssl.conf

Измените, путь до места, где хранится файл ключа. Если вы воспользовались способом, описанным выше, то он будет:

Строка 105:Меняем ее на следующее

SSLCertificateFile /usr/abills/Certs/server.crt

Затем установите правильный путь к файлу сертификата. Если вы следовали инструкциям которые описаны выше то он будет таким:

Строка 112:Меняем ее на следующее

SSLCertificateKeyFile /usr/abills/Certs/server.key

Сохраните файл и перезагрузите Apache.

# service httpd restart

10. Настройка Apache

В конец файла /etc/httpd/conf/httpd.conf добавляем текст:

#Abills version 0.5 Listen 9443 <VirtualHost localhost: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>

Смотрим кодировку здесь /etc/httpd/conf/httpd.conf

Строка 759:Меняем ее на следующую

AddDefaultCharset UTF-8

Перезапускаем apache

# service httpd restart

11. Отключаем SE LINUX

Чтобы отключить “SELINUX” отредактируйте файл /etc/selinux/config
# gedit /etc/selinux/config

Строка 7:Меняем “SELINUX=permissive” на “SELINUX=disabled”

SELINUX=disabled

Также отключите встроенную цепочку Iptables:

# setup

Далее в окошке выбираем -> FireWall Configuration -> Firewall Enabled -> Убрать звездочку

12. Создание БД для AbillS

 

Задаем пароль на доступ в MySQL:

# /etc/init.d/mysql stop

# /usr/bin/mysqld_safe --skip-grant-tables &

# mysql

mysql> use mysql;

mysql> update user set password=PASSWORD("password") where user='root';

mysql> flush privileges;

mysql> quit

Запускаем MySQL:

# /etc/init.d/mysql restart

# mysql -u root -p
 

Создаем базу и разрешаем пользователю abills@localhost доступ к БД:

> SET PASSWORD = PASSWORD('password'); > GRANT ALL ON abills.* TO abills@localhost IDENTIFIED BY "yourpassword";
> CREATE DATABASE abills; > quit

Теперь дамп БД из каталога с abills нужно занести в БД

# cd /usr/abills/db

# mysql -u root -p abills < abills.sql

13. Настройка конфигурационных файлов Abills

В папке /usr/abills/libexec выполняем

# cd /usr/abills/libexec
# cp config.pl.default config.pl

Затем редактируем config.pl

# gedit /usr/abills/libexec/config.pl

Указываем верные реквизиты доступа к БД, также меняем некоторые параметры:

$conf{dbhost}='localhost'; $conf{dbname}='abills'; $conf{dbuser}='abills'; $conf{dbpasswd}='yourpassword'; $conf{dbcharset}=''; $conf{default_language}='russian'; $conf{secretkey}="test12345678901234567890"; #$$conf{periodic_check}='yes'; #$conf{ERROR_ALIVE_COUNT} = 10; #$conf{RADIUS2}=1; #$conf{MAX_SESSION_TRAFFIC} = 2047; #без этой строчки должник отключается на второй минуте, с этим параметром сразу происходит отключение. Но при выкачке 2Гб связь будет рватся.

Отключаем лишние модули:

@MODULES = ('Dv', # 'Voip', # 'Docs', # 'Mail', 'Sqlcmd');

Правим конф /usr/abills/Abills/defs.conf
Меняем только приведенные ниже строки

$SNMPWALK = '/usr/bin/snmpwalk'; $SNMPSET = '/usr/bin/snmpset'; $GZIP = '/usr/bin/gzip'; $TAR='/bin/tar'; $MYSQLDUMP = '/usr/bin/mysqldump'; $IFCONFIG='/sbin/ifconfig'; $PING='/bin/ping'; $SUDO='/usr/bin/sudo';

Проверяем работу сервера, заходим по адресу:

https://127.0.0.1:9443/admin/

Обязательно вводите ip адрес, если ввести "https://localhost:9443/admin" будут проблемы в виде SQL Error во время создания учетной записи!

Blog post image

Вводим логин/пароль: abills/abills

И видим после вот это:

Blog post image

Если вдруг у вас появятся ошибки, смотрите логи.

Местонахождение логов:

Abills:

/var/log/httpd

PPTPD:

/var/log/messages

Radius:

/var/log/radius

14. Настройка pptpd

Откроем  и отредактируем файл /etc/pptpd.conf

# gedit /etc/pptpd.conf

Добавляем строчку в файл:

ppp /usr/sbin/pppd
option /etc/ppp/pptpd-options
connections 500
localip 192.168.160.1
remoteip 192.168.160.1-254

Отроем и отредактируем файл /etc/ppp/options

# gedit /etc/ppp/options

Добавляем строку в файл:

+mschap-v2

Откроем и отредактируем файл /etc/ppp/options.pptpd

# gedit /etc/ppp/options.pptpd

Добавляем строки:

ms-dns 192.168.160.1 # или любой удобный для вас днс сервер asyncmap 0 lcp-echo-failure 30 lcp-echo-interval 5 ipcp-accept-local ipcp-accept-remote plugin radius.so plugin radattr.so

По умолчанию конфиг настроен на авторизацию mschap-v2+mppe.

Пишем скрипт шейпера и даем права запуска.

# mkdir /etc/ppp/ip-up.d/

# touch /etc/ppp/ip-up.d/shaper
# chmod 744 /etc/ppp/ip-up.d/shaper
# nano /etc/ppp/ip-up.d/shaper

Вставляем текст:

#!/bin/sh if [ -f /var/run/radattr.$1 ] then DOWNSPEED=`/usr/bin/awk '/PPPD-Downstream-Speed-Limit/ {print $2}'/var/run/radattr.$1` UPSPEED=`/usr/bin/awk '/PPPD-Upstream-Speed-Limit/ {print $2}'/var/run/radattr.$1` # echo $DOWNSPEED # echo $UPSPEED > /sbin/tc qdisc del dev $1 root > /dev/null /sbin/tc qdisc del dev $1 ingress > /dev/null ##### speed server->client if [ "$UPSPEED" != "0" ] ; then # /sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1 /sbin/tc qdisc add dev $1 root handle 1: htb default 20 /sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit burst 4k /sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate ${UPSPEED}kbit burst 4k prio 1 /sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate ${UPSPEED}kbit burst 4k prio 2 /sbin/tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1500 /sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1500 /sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x100xff flowid 1:10 /sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol1 0xff flowid 1:10 /sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10 0xffat 33 flowid 1:10 fi ##### speed client->server if [ "$DOWNSPEED" != "0" ] ; then /sbin/tc qdisc add dev $1 handle ffff: ingress /sbin/tc filter add dev $1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kbit burst 12k drop flowid :1 fi fi

15. Настройка iptables

Сетевая защита сервера важный этап настройки. Здесь я приведу очень короткий конфиг сетевого экрана. Допустим, наш сервер имеет две сетевые карты,  один адаптер  подключен к поставщику услуг Интернета, подключение по кабелю “Ethernet”. Важный момент, выход  в Интернет имеют только пользователи VPN сети с адресом 192.168.160.0/24.

Для настройки iptables и NAT, потребуется создать файл правил iptables:

# gedit /etc/sysconfig/firewall.sh

Далее в этот файл вставьте следующий текст:

Правила iptables для Abills

# chkconfig: 345 30 99
# description: Starts and stops iptables based firewall
# Очистка всех цепочек iptables
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Политика по умолчанию, запретить все что не разрешено
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP # Разрешаем обращение к lo интерфейсу
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT # Разрешаем обращение к внутреннему интерфейсу eth1
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT # Пропускать уже инициорванные, а также их дочерние
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Пропускать новые, иницированные, а также их дочерние
iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # Разрешить форвардинг для новых, иницированных, а также их дочерних
iptables -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # Разрешаем DNS запросы с виртуальной сети по протоколу UDP и TCP до нашего сервера
iptables -A INPUT -i ppp+ -s 192.168.160.0/24 -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -o ppp+ -d 192.168.160.0/24 -p udp --sport 53 -j ACCEPT iptables -A INPUT -i ppp+ -s 192.168.160.0/24 -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -o ppp+ -d 192.168.160.0/24 -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT  -p udp -m udp  --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT   -p udp -m udp  --dport 53 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp -m udp  --dport 53 -m state --state NEW -j ACCEPT

iptables -A OUTPUT  -p udp -m udp  --dport 53 -m state --state NEW -j ACCEPT iptables -A INPUT   -p udp -m udp  --dport 53 -m state --state NEW -j ACCEPT iptables -A FORWARD -p udp -m udp  --dport 53 -m state --state NEW -j ACCEPT
# Настройка NAT, подсеть 192.168.160.0/255.255.255.0  - у нас виртуальная
# Выход в Интернет имеет только виртуальная подсети 192.168.160.0/24
iptables -t nat -A POSTROUTING -s 192.168.160.0/24 -j MASQUERADE

Где:

192.168.160.0/255.255.255.0 - виртуальная подсеть

ppp+ - это любой ppp интерфейс, обычно создаются ppp0 или ppp1

 

Сделаем наш скрипт исполняемым:

# chmod 750 /etc/sysconfig/firewall.sh

Добавим его в автозагрузку, для этого откроем файл:

# gedit /etc/rc.d/rc.local

И впишем в него строчку (в конец файла):

/etc/sysconfig/firewall.sh

Включим форвардинг /etc/sysctl.conf:

Строка 7: Поменять значение на 1

net.ipv4.ip_forward = 1

Перезагружаем сервер

# shutdown –r now

Настройка планировщика Cron

Откроем файл:

# gedit /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 #backup 1 3 * * * root /usr/abills/libexec/periodic backup

16. Настройка Abills

Настройка самой системы состоит из следующей последовательности:

  • Создание NAS сервера доступа
  • Создание группы тарифов
  • Создание тарифного плана, привязка его к тарифной группе и определение его настроек
  • Заведение учетных записей пользователей
  • Тестирование и работа с системой.

Обязательно следуйте той последовательности которая выше. В противном случае пользователь не сможет законектится (ошибка 691 или "Неверный пароль") , при этом в логах будет пусто :)

И так приступим к настройке.

Создание NAS сервера доступа

Открываем web-интерфейс админки по адресу https://127.0.0.1:9443/admin/
Логин:                 abills

Пароль:              abills

Их можно будет потом сменить.

По умолчанию сервер доступа NAS  и  тариф уже созданы. Мы изменим их под свои условия.
Заходим в меню:

Система->Сервер доступа

Как на картинке снизу.

Blog post image

Удалим существующий NAS, и создадим свой. Для удаления щелкним крестик в правой части который обведен красной линией.

Blog post image

Теперь создадим свой NAS, для этого щелкним зеленный крестик как на картинке внизу:

Blog post image

Заполним некоторые поля:

НазваниеMy NAS server
IP адрес вбиваем:127.0.0.1
Выбираем тип pppd:pppd + Radius plugin (Linux)
Alive (sec.):120
RADIUS Parameters (,):Acct-Interim-Interval=120

Alive (sec) или Radius Parameters (,) должны быть одинаковыми по значению.

Blog post image

По окончанию ввода, нажмите кнопку Добавить

Blog post image

Теперь нам нужно добавить IP pool для нашего нового NAS. Для этого мы должны щелкнуть IP Pools как на картинке.

Удаляем здесь уже созданный IP Pool, создадим свой.

Blog post image

Blog post image

Значения берите из таблицы снизу:

Blog post image

НазваниеMy first IP pool
First IP192.168.160.2
Количество253
MASK24

Жмем кнопочку “Добавить”

Blog post image

Жмем кнопочку “Установить”

Создание группы тарифов

Заводим группы тарифов:

Система -> Internet -> Тарифные планы -> Группы

Добавим группу под именем “Manageri”:

GID:0
Название:Manageri

По окончанию редактирования нажмите на кнопке “Добавить”.

Создание тарифного плана и определение его настроек

Создадим тарифный план, в нем мы можем четко определить квоты на Интернет трафик, а также установить скорости. Для примера установим квоту в размере 1 000 мбайт на входящий трафик, так как в большинстве случаев учитывается именно он.

Для этого идем в меню:

Система -> Internet -> Тарифные планы

Добавим тарифный план:

#:1
Название:1000Mb
Группа:«1:Gruppa100mb»
Дневная а/п:10
Лимиты трафика (мб), поле МЕСЯЦ1000

По окончанию ввода нажмите кнопку “Добавить”, расположенную внизу окна.

Теперь можно определить скорости, для этого надо щелкнуть значок под названием “Интервалы” в строке нашего тарифного плана.

Появится вот такое окно:

Здесь надо нажать кнопку “Добавить”, тем  самым мы добавили Интервал в наш тарифный план.

После этого появится окошко, где надо щелкнут значок “Трафик”. На картинке внизу он обведен красной линией.

Вписываем цену за мегабайт и скорости,  по окончанию нажимаем по кнопке “Добавить”.

Заведение учетных записей пользователей

Теперь заводим пользователя, для этого идем в меню:
Клиенты -> Логины ->  Internet -> Пользователи Добавить ->

Создаем клиентскую учетную запись, вводим:

логинvasya или ludmila
ФИОВася или Людмилка
ПарольQwerty123
Кредит1000
Сумма1000

Логин вводим маленькими буквами.

Если требуется убрать шифрование, делаем так:
Убираем строчку "require-mppe-128" в файле /etc/ppp/options.pptpd . Это даст большую стабильность VPN туннелей и разгрузит ЦПУ.

Тестирование и работа с системой

Заведите учетную запись в системе, например - vasya, пароль - 123456

Закиньте ему на счет не которую сумму...

На клиентском компьютере:

Создайте новое подключение с параметрами -
- Введите IP адрес VPN сервера локальной сети
- Шифрование: Не обязательное (Подключится даже если нет шифрования)
- Протоколы: MS CHAP v2
- Тип VPN: PPTP VPN

____

17. Настройка кэширующего DNS сервера

Запускаем Terminal (консоль/черный экран) который находится в меню: Applications -> Accessories -> Terminal. Если у вас сервер без графического окружения, то можете вводить команды сразу в консоль.

Вводим следующие команды:

# yum install bind -y

Отредактируем конфигурационный файл пакета BIND (службы named):

# gedit /etc/named.conf

В нем надо вставить адрес нашей локальной подсети и IP адрес виртуального сетевого интерфейса ppp0, для этого надо поменять четыре строчки:

listen-on { 127.0.0.1; 192.168.160.1; }; # IP адрес вирт. интерфейса ppp0 allow-query     { localhost; 192.168.160.0/24 ;}; # Адрес вирт. сети allow-recursion { localhost; 192.168.160.0/24 ;}; allow-query-cache { localhost; 192.168.160.0/24 ;};

Сохраняем файлик.

Правильность настройки можно проверить банальным запуском службы “named”, чем мы и займемся. В консоли введите следующие команды:

# service named start

После ввода команды старта демона “named” (службы/сервиса), должна появится строчка похожая на следующею:

Starting named:                                            [  OK  ]

Это говорит нам что служба “named” запустилась нормально, значить наши изменения внесенные в конфигурационный файл сделаны правильно.

Теперь добавим службу” named”  в автозагрузку:

# chkconfig   --level 35 named on

__________________________________________________________________

Рабочие конфиги тут - http://download.files.namba.kz/files/3074328

FAQ Abills - http://abills.net.ua/wiki/doku.php/abills:docs:faq:ru

Ручное отключение юзеров от Интернета, скрипт:

/usr/abills/libexec/billd -all

__________________________________________________________________

Другие биллинги:

1. Cake Billing http://yvision.kz/yv/180495

2. NetAMS http://yvision.kz/yv/183280 и http://yvision.kz/yv/180494

3. Stargazer  - http://yvision.kz/yv/180500

4. ibs NG - http://yvision.kz/yv/180991

5. Netup UTM5 - http://yvision.kz/yv/180489

6. TraffPro free - http://yvision.kz/yv/180488

0
1933
0