место в рейтинге
  • 1105162
  • 687
  • 88
Нравится блог?
Подписывайтесь!

Abills — установка на CentOS 6

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

От себя отмечу что данная система очень популярна, используется многими провайдерами и пользователями. Изначально в Интернете были найдены статьи установки биллинга на Ubuntu/Debian, в этой записке будет практически тоже самое, только под CentOS6. Опять таки главная задача установки биллинга - это учет трафика пользователей, которые так и наровят закачать что нибудь :).

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

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

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

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

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

5. Закачка Abills 0.52 и распаковка его в папку /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

# yum install mysql mysql-server mysql-devel 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 -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 mysqld on

# chkconfig --level 35 pptpd on

# service radiusd start

# service httpd start

# service mysqld start

# service pptpd start

 

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

Сам биллинг вы найдете здесь:

http://sourceforge.net/projects/abills/files/abills/0.52/abills-0.52.tgz/download

или на файлообменники:

http://download.files.namba.kz/files/2707272

Скаченный архивный файл, требуется извлечь в папку /usr

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

# mkdir /usr/abills/backup

# groupadd www-data

# useradd www-data -g www-data

# chown -R www-data:www-data /usr/abills/backup

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

# chown -R www-data:www-data /usr/abills/backup

# mkdir /usr/abills/var

# mkdir /usr/abills/var/log

# groupadd freerad

# useradd freerad -g freerad

# chown -R freerad:freerad /usr/abills/var

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

# nano /etc/sudoers

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

www-data ALL=NOPASSWD: /usr/abills/misc/pppd_kill

 

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

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

* /etc/raddb/radiusd.conf

* /etc/raddb/modules/exec

* /etc/raddb/sites-enabled/default

* /etc/raddb/users

* /etc/raddb/clients.conf

* /etc/raddb/dictionary

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

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

# gedit /etc/raddb/radiusd.conf

Найдите cекцию 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

}

 

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

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

# gedit /etc/raddb/modules/exec

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

 

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

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

И вставьте следующий текст:

authorize {

preprocess

abills_preauth

mschap

files

abills_auth

}

preacct {

preprocess

abills_acc

}

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

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

# service radiusd restart

Если при запуске сервиса radiusd вы видите ошибки,  выявить откуда растут корни этой ошибки можно с помощью команды radiusd -X , она выдает лог. Если сервис стартанул нормально, но вы все равно хотите видеть лог, вам надо сперва остановить демон радиуса командой serviceradiusd 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://download.files.namba.kz/files/3028252

или http://cakebilling.googlecode.com/files/etc.tar.bz2

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

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

Открываем /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

Перемещение полученных файлов в правильные места:

# mkdir /usr/abills/Certs/

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

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

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

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

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

SSLCertificateFile /usr/abills/Certs/server.crt

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

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>

Меняем кодировку на cp1251 здесь /etc/httpd/conf/httpd.conf

AddDefaultCharset cp1251

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

# service httpd restart

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

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

# gedit /etc/selinux/config

В нем  SELINUX=permissive на SELINUX=disabled

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - SELinux is fully disabled.

SELINUX=disabled

# SELINUXTYPE= type of policy in use. Possible values are:

# targeted - Only targeted network daemons are protected.

# strict - Full SELinux protection.

SELINUXTYPE=targeted

# SETLOCALDEFS= Check local definition changes

SETLOCALDEFS=0

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

# setup

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

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

Запускаем MySQL:

# service mysqld start
# mysql -u root -p

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

> GRANT ALL ON abills.* TO abills@localhost IDENTIFIED BY "yourpassword";
> CREATE DATABASE abills;

> quit

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

# cd /usr/abills

# 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}='cp1251';

$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 = '/bin/gzip';

$TAR='/bin/tar';

$MYSQLDUMP = '/usr/bin/mysqldump';

$IFCONFIG='/sbin/ifconfig';

$SUDO='/usr/bin/sudo';

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

https://localhost:9443/admin/

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

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

Логи Abills:  /var/log/httpd

Логи PPTPD: /var/log/messages

Логи Radius: /var/log/radius

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

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

ppp /usr/sbin/pppd option /etc/ppp/options.pptpd localip 192.168.160.1

 

Редактируем /etc/ppp/options, добавляем строку

+mschap-v2

Редактируем /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

IP адрес 192.168.1.10, смотрит в сторону провайдера (ethernet).
Запускаем терминал и пишем:

Сбросить правила и удалить цепочки.

# iptables -F
# iptables -t nat -F
# iptables -t mangle -F
# iptables -X
# iptables -t nat -X
# iptables -t mangle -X

Правила для NAT

# iptables -t nat -A POSTROUTING -s 192.168.160.0/24 -j SNAT --to-source 192.168.1.10

# service iptables save

Включаем фовардинг:

# gedit /etc/sysctl.conf

net.ipv4.ip_forward = 1

Настройка 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, пользователь и тариф уже создан. Мы изменим под свои условия.
Идем Система->Сервер доступа

Удаляем NAS от FreeBSD и его же IP pool внизу окошка.

Далее заполняем:

IP пишем 127.0.0.1
Выбираем тип pppd:pppd + Radius plugin (Linux)
Alive (sec.): 120
RADIUS Parameters (,): Acct-Interim-Interval=60
Теперь добавляем IP POOLs:
ставим First IP - 192.168.160.2

Количество: 253

Жмем кнопочку Добавить/Установить

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

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

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

Добавим группу под именем: Группа1000Мб Лимит, GID: 0

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

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

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

#: 1
Название: 1000Мб
Группа: «1:Группа100Мб»
Дневная а/п: 0

добавить

Определим цену  за мегабайт и скорости:

Заходим в  Система  -> Internet  -> Тарифные планы


Жмем на кнопочку "Интервалы" возле вашего тарифного плана внизу.
В новом окне, жмем кнопку добавить, затем кнопочку Трафик
вписываем цену за мегабайт и скорости, добавить.

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

Теперь заводим пользователя:
Клиенты -> Логины ->  Internet -> Пользователи Добавить ->
создаем клиента: пароль, логин, ФИО, кредит. И сразу можно положить деньги на счет.
Логин вводим маленькими буквами, например - ivan или ludmila

Если требуется убрать шифрование, делаем так:
Убираем строчку "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

# rndc-confgen

Создаем файлы зоны:

# gedit /var/named/localhost.rev

В открывшемся текстовом окне редактора gedit вписываем следующее:

$TTL 86400

@ IN SOA localhost. root.localhost. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS localhost.

1 IN PTR localhost.

Сохраняем файл через меню File -> Save или клавиш CTRL+S

Создаем следующий файл зоны:

# gedit /var/named/localhost.zone

Вставляем следующий текств в него:

$TTL 86400

@ IN SOA @ root (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

IN NS @

IN A 127.0.0.1

Сохраняем файл через меню File -> Save или клавиш CTRL+S

 

Создаем конфигурационный файл BIND:

# gedit /etc/named.conf

Вставляем в него  следующий текст:

 

include "/etc/rndc.key"; // включаем в текущий файл ключ rndc

acl "lan" {

127.0.0.1;

192.168.1.0/24; //Тут нужно вписать адрес своей локальной сети

 

192.168.160.0.24; //Тут нужно вписать адрес виртуальной сети

};

 

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { "rndc-key"; };

};

 

logging {

channel default_log {

file "/var/log/dns.log" versions 5 size 20m;

severity info;

print-time yes;

print-category yes;

print-severity yes;

};

channel more_log {

file "/var/log/dns_more.log" versions 5 size 10m;

severity info;

print-time yes;

print-category yes;

print-severity yes;

};

category default { default_log; };

category general { default_log; };

category config { default_log; };

category queries { default_log; };

category xfer-in { default_log; };

category xfer-out { default_log; };

category security { more_log; };

category resolver { more_log; };

category notify { more_log; };

category client { more_log; };

category unmatched { more_log; };

category default { more_log; };

category database { more_log; };

category update { more_log; };

};

 

options

{

directory "/var/named"; // the default

dump-file "data/cache_dump.db";

statistics-file "data/named_stats.txt";

version "no camment";

memstatistics-file "data/named_mem_stats.txt";

 

forward only;

forwarders { 10.168.50.1; }; //Сюда впишите адреса DNS серверов которые Вам выдал провайдер

 

allow-recursion {

lan;

};

 

allow-query {

lan;

};

 

};

 

view "localhost"

{

match-clients { lan; };

match-destinations { lan; };

recursion yes;

 

zone "localhost" IN {

type master;

file "localhost.zone";

};

 

zone "0.0.127.in-addr.arpa" IN {

type master;

file "localhost.rev";

};

};

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

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

# gedit /etc/rndc.conf

В текстовом редакторе вставьте следующий текст:

include "/etc/rndc.key";

options {

default-server 127.0.0.1;

default-key "rndckey";

};

server localhost {

key "rndckey";

};

Сохраните файл.

 

Теперь проверим работу DNS сервера,  введя команду:

# service named start

Starting named:                                            [  OK ]

Сервис named запустился нормально.

Добавим службу named (он же Bind) в автозагрузку:

# 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

 
Almas AkeHayc
Пишу для себя, блог как записная книжка. Со временем все забывается, а у меня оно все в бложике. Будьте упертым глухим и веселым бегемотиком :)
29 июля 2011, 11:09
14667

Загрузка...
Loading...

Комментарии

mideni
0
0
Очень хорошая статья!!! Все по нее делал.
Но у меня в файле /usr/abills/Abills/defs.conf надо указать путь к файлам в первых двух строках, а именно
$SNMPWALK = '/usr/bin/snmpwalk';
$SNMPSET = '/usr/bin/snmpset';
но именно файвов с именем snmpwalk и snmpset у меня нет,почему, что я пропустил???
У меня с этими конфигами все работало, даже не задумывался есть ли эти файлы :)
Посмотрите оф. документацию на сайте Абиллс.
mideni
0
0
можно поправить первую ссылку, rpm -Uvh download.fedoraproject.org ,что-то она не рабочая. Установка зависимостей,за что вообще отвечает этот пакет epel-release-6-5.noarch.rpm?????
Сейчас надо так:
# rpm -Uvh download.fedoraproject.org Установка этого пакета позволит использовать репозитарии Epel.

mideni
0
0
чо за ... уже 5 раз ставлю по новой и не выходит
только заменяю Откройте файл /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /usr/abills/Certs/server.crt, и все апачи не грузится SSLCertificateFile: file '/usr/abills/Certs/server.crt' does not exist or is empty т.е не существует или пуст, но как пуст я же его создаю, и помещаю в нужную папку.
ВЫ ПОСЛЕ КОМАНДЫ openssl req -new -key server.key -out server.csr просто жали энтера?
выложите плисс файл конфигурацыи /etc/httpd/conf.d/ssl.conf
Смысла его выкладывать нет.
Там я только редактировал те две строчки которые надо изменить. Вероятно у вас все таки нет этих файлов.
Когда генерируется сертификат, надо нажимать ЕНТЕР, но были еще вопросы на которые надо ответить.
Я могу переписать эту инструкцию с учетом установки на CentOS 6.3 x32. Но на это надо время, и еще здесь не освещен очень важный момент, который позволяет соединятся с вашим сервером только по виртуальному интерфейсу. Это позволит выходить в Интернет только тем пользователям которые есть в базе Абиллся, а не всем кто вбил ИП адрес в подсети у которой есть доступ в Интернет.
Если так хотите могу выложить конфиг файлы, но это не сегодня.

А вообще автор Абиллс уже выкладывал по шаговую инструкцию по установке биллинга на CentOS (есть даже видео).
Поэтому мой материал уже не актуален.
mideni
0
0
Большое спасибо за ответы на форуме.
я установил операцыонную систему по минимому, и нет там графического интерфейса, как можно к ней попасть из другой машины ну например мы указываем localhost но з другой машины когда я захожу я делаю так: https://ip-адрес/admin выдает мне експлоуер что не возможно завершить защищенную трансацию. что где надо прописать. если можно пример.Зарание большое спасибо!!! по поводу той проблемы что я писал Вам (Откройте файл /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /usr/abills/Certs/server.crt, и все апачи не грузится SSLCertificateFile: file '/usr/abills/Certs/server.crt' does not exist or is empty т.е не существует или пуст, но как пуст я же его создаю, и помещаю в нужную папку.) то эт оказывается просто проблема с SE LINUX просто надо было отключить.
mideni
0
0
все работает!!! закончил делать 13. Настройка конфигурационных файлов Abills, проверил,работает очень доволен(спасибо за ответы!!!!!) радиус не ставил т.к у меня centos установленная по минимому, и зайти с интерфейса серверной машыны не могу. Конешно хочу поставить радиус, чо и где надо прописать только догадываюсь,помогите плисс.
в п.14 надо отредактироать файлики, дописать просто в конец файла?
Да, попробуй просто добавить.
mideni
0
0
все ищо делаю всой сервер,и как всегда есть определенные нюансы. Остановился на пункте:"Тестирование и работа с системой"и при подключении выдает ошибку 691, подключаюсь с виндовс 7,(делал все как Вы написали в статье,соблюдал последовательность) но не ошибается тот кто не чего не делает,а я все ищу свои ошибки. Есть подозрение что не правильно работает радиус сервер,посмотрите плис, очень прошу, я не хочу чтобы вы решили проблему за меня , я просто хочу знать где точно мне копать. Заходил на офицыальный сайт абилса нашел что надо сделать radtest test 123456 127.0.0.1:1812 0 radsecret 0 127.0.0.1 для проверки. но....
сервер абился https://91.236.248.3:9443/admin/ пароль стандартный не менял, для ssh пароль root логин mideni
pppoe относится к eth0. eth1 это уже локалка которой надо раздать интернет
Чуть не забыл, при вводе команды 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
но нечего нет, и поначала файла где должен быть этот лог небыло я его создал
/usr/abills/var/log/abills.log
Зачем светишь пароли от сервера?
Можно же через личку написать.
Надо смотреть логи:
/var/log/httpd
/var/log/messages
/var/log/radius

Потом надо запустить радиус в дебаг режиме:
service radiusd stop
radiusd -X

Далее пытаешься соединится с сервером и смотришь что пишет Радиус.
mideni
0
0
Вы заходили,т.е у меня только проблема с радиусом??? честно говоря пока ищо я в этиг логах неоч. Да я запускал radiusd -X, но....разобратся трудно
А фаервол настраивал?
Может он у тебя блокирует соединения с сервером.

UPD
Фаервол у вас не настроен.
mideni
0
0
да фаервол я не настраивал я его просто отключил service iptables stop, для проверки тестирования, оставил на потом.
Может ли при выключенном фаерволе быть такие проблемы??? думаю нет,но все же как???
А для чего вообще ставил Абиллс?
Если в локальной сети Интертнет раздавать, значить надо и тестировать в локалке.
mideni
0
0
при выключенном фаерволе не хочет подключатся ошибка 691. Ставлю abills именно для раздачи интернета в локальной сети!
Тогда желательно дать удаленный доступ к серверу и клиентскому ПК.
mideni
0
0
т.е как ??? что Вы имеете в виду ? кроме как выключить фаервол надо ... что именно
Дай доступ к своему ПК через Teamviewer, твой ПК должен быть в локальной сети, потом на твоем компе мы достучимся до сервера, ну и само собой настроим его
mideni
0
0
Доброго времени суток! В мануале абилса сказано что есть разные способы аутентификации, меня интересуэт только по логину.!!!!!как эт можно реализовать???
Спасибо! Отличная статья! Только забыли указать что надо установить net-snmp-utils, а ещё, ребята, при добавлении сервера доступа не указывайте NAS-identifier, а то не подключитесь... :) А так, всё работает!
Подскажите в чем проблема плиз.


[root@localhost ~]# rpm -Uvh download.fedoraproject.org Загружается download.fedoraproject.org curl: (22) The requested URL returned error: 404 Not Found

ошибка: skipping download.fedoraproject.org - transfer failed

[root@localhost ~]# rpm -Uvh download.fedoraproject.org

ошибка: невозможно открыть download.fedoraproject.org: Нет такого файла или каталога
Так не правильно, надо так:
rpm -Uvh download.fedoraproject.org
Коллеги, нужна помощь, подскажите в каком направлении двигаться. При установке пользовался статьей akehayc.yvision.kz
Делал все в точности. Но проблема.

При VPN подключении ошибка 691 неверные логин/пароль, радиус пишет следующее:

Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1 port 48097, id=216, length=148
Service-Type = Framed-User
Framed-Protocol = PPP
User-Name = "654321"
MS-CHAP-Challenge = 0xa4ac96b40ec67ef23bd23429870965a4
MS-CHAP2-Response = 0xc3002e9046fa152cb5c92f305bf15a0fd40c000000000000000094f0fc2c8e747e378a281d758cdf1d36df8edc768f799a5e
Calling-Station-Id = "192.168.0.25"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
# Executing section authorize from file /etc/raddb/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
Use of uninitialized value in hash element at /usr/abills/libexec/rauth.pl line 148.
Use of uninitialized value in hash element at /usr/abills/libexec/rauth.pl line 155.
Exec-Program output: Cleartext-Password := "654321"
Exec-Program-Wait: value-pairs: Cleartext-Password := "654321"
Exec-Program: returned: 0
++[abills_preauth] returns ok
[mschap] Found MS-CHAP attributes. Setting 'Auth-Type = mschap'
++[mschap] returns ok
[files] users: Matched entry DEFAULT at line 205
++[files] returns ok
Exec-Program output: Reply-Message = "Unknow server '127.0.0.1'"
Exec-Program-Wait: value-pairs: Reply-Message = "Unknow server '127.0.0.1'"
Exec-Program: returned: 1
++[abills_auth] returns reject
Invalid user: [654321/] (from client shortname port 0 cli 192.168.0.25)
Using Post-Auth-Type Reject
# Executing group from file /etc/raddb/sites-enabled/default
+- entering group REJECT {...}
Exec-Program output:
Exec-Program: returned: 0
++[abills_postauth] returns ok
Sending Access-Reject of id 216 to 127.0.0.1 port 48097
Reply-Message = "Unknow server '127.0.0.1'"
Finished request 0.
Going to the next request
Waking up in 4.2 seconds.
Cleaning up request 0 ID 216 with timestamp +8
Ready to process requests.

Подскажите плз в каком направлении двигаться.
Коллеги, с предыдущим постом вроде разобрался, пересоздал NAS, пользователя, тариф.
Выявились еще 2 проблемы:
1. После проброса NAT нет необходимости в VPN подключении, интернет доступен и без него. Подскажите как закрыть доступ не авторизованным пользователям. А на будущее, хотелось бы заменить VPN авторизацией по MAC, что бы пробод воткнул и начал работать, железо почти никогда меняться не будет.
2. Почему-то у пользователя считается время сессии, но не считается трафик.

Подскажите в какую сторону копать по этим вопросам.
Заранее благодарен.
Если честно сказать самому интересно почему у тебя считается именно время сессии, а не трафик.
А на счет второго вопроса, точно не скажу, но видимо тебе надо попробовать в правиле NAT указать интерфейс PPP+:
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.160.0/24 -j MASQUERADE

На днях хочу установить версию 0.55rc1, надеюсь все пройдет успешно, если все будет хорошо, напишу новую записку. Добавлю туда еще учет трафика через модуль IPN, тогда картина будет полной.
На самом деле, Абиллис я так и не поставил на реальный сервер, потому что крутить настройки надо, а у меня тогда времени не было.

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Дорога Алматы – Хоргос. Впечатления от первой поездки

Дорога Алматы – Хоргос. Впечатления от первой поездки

Если раньше путь до Хоргоса занимал около 5 часов по Кульджинской трассе, то сейчас время до границы с Китаем сокращается до 2,5-3 часов. Уже сейчас можно ехать по 4-полосной дороге с цементобетонным покрытием.
theYakov
15 сент. 2017 / 9:35
  • 5356
  • 12
Работа в Mc Donald's. Советы и лайфхаки для гостей

Работа в Mc Donald's. Советы и лайфхаки для гостей

За три месяца я поработала в трёх разных сферах. И сегодня, хочу поведать вам о работе в одной из богатейших компаний мира. Звучит значительно лучше, чем «Я работаю в Mc Donald’s».
madiNAtty
15 сент. 2017 / 12:44
  • 2975
  • 16
Фильм «Крылья, подаренные матерью» учит ценить своих близких в любых ситуациях

Фильм «Крылья, подаренные матерью» учит ценить своих близких в любых ситуациях

Вчера состоялся предпремьерный показ нашего отечественного фильма "Крылья, подаренные матерью", после просмотра которого защемило сердце - настолько правдоподобной казалась эта история.
Gulmira-I
14 сент. 2017 / 9:34
  • 2405
  • 0
Почему депутат Божко хочет ограничить приток сельской молодёжи в города?

Почему депутат Божко хочет ограничить приток сельской молодёжи в города?

Вице-спикер Мажилиса Владимир Божко остановился на некоторых деталях известного конфликта в Астане возле строящегося «Абу Даби Плаза», затронув проблему «многочисленной сельской молодёжи»...
openqazaqstan
19 сент. 2017 / 13:16
  • 2082
  • 54
«Моя депрессия длилась больше двух лет». История о том, как я была готова сдаться

«Моя депрессия длилась больше двух лет». История о том, как я была готова сдаться

По данным статистики 2017 года Казахстан занимает 4 место по самоубийствам. Говорить об этом - социальное табу. Мы игнорируем разговоры о депрессиях. Потому что нам страшно.
goribaldi
18 сент. 2017 / 15:45
  • 2075
  • 60
Фотопрогулка по Алматы. Иностранцам не интересны наши стеклянные здания и моллы

Фотопрогулка по Алматы. Иностранцам не интересны наши стеклянные здания и моллы

Алматы - самый лучший город для меня, так как родной и самый близкий. Так как я много лет прожил за рубежом, могу сказать свою точку зрения, что надо делать у нас.
Ispanec
15 сент. 2017 / 6:20
  • 2010
  • 21
«Папина принцесса» или «обезьяна с гранатой»? Случай в бассейне

«Папина принцесса» или «обезьяна с гранатой»? Случай в бассейне

Мужчины спокойно подчиняются логичным правилам, большинство женщин пытаются выторговать себе особые условия. Я убеждалась в этом много раз.
ValentinaVladimirska
18 сент. 2017 / 14:25
  • 1684
  • 30
Бой Головкина и Альвареса завершился ничьей

Бой Головкина и Альвареса завершился ничьей

Канело согласен на реванш, что неудивительно, Гена тоже "за". Все это было немного ожидаемо - эксперты отмечали, что промоутеры надавят на поединок, и захотят растянуть его на трилогию.
Trequartista
17 сент. 2017 / 0:15
  • 2016
  • 17
Лайфхаки для путешественников. Как я не заплатила ни цента за проживание в Испании

Лайфхаки для путешественников. Как я не заплатила ни цента за проживание в Испании

Бесплатное проживание и завтрак в Испании, как прокачать иностранный язык и где поймать бесплатные ништяки в Европе. Если вы backpacker, который пересекает границу разных стран каждую неделю -...
dianaobyrne
18 сент. 2017 / 12:16
  • 2193
  • 1