=====Установка ABillS под Freebsd=====
=====Замечания по установкe операционной системы.=====
* При разбиении диска на разделы крайне рекомендуется отвести для раздела **/var** не менее 10 Гигабайт. Если планируется высокая нагрузка, это значение можно увеличить.
* Рекомендованный дистрибутив FreeBSD 11.0-RELEASE (http://freebsd.org/)
* Про установку FreeBSD можно почитать здесь [[http://www.asmodeus.com.ua/library/os/freebsd/handbook.ru/|FreeBSD Handbook]]
Скачать образы: [[ftp://ftp.freebsd.org/pub/FreeBSD/releases | Официальный FTP]]\\
**11.0**\\
amd64 : [[ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/11.0/FreeBSD-11.0-RELEASE-amd64-dvd1.iso]]\\
i386 : [[ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/11.0/FreeBSD-11.0-RELEASE-i386-dvd1.iso]]\\
\\
==== Установка операционной системы ====
{{youtube>large:4AgNOUAXyH4|ABillS:Установка FreeBSD в VirtualBox}}
\\
=====Пошаговая настройка=====
** Обновляем систему и софт ** \\
# pkg update && pkg upgrade -y
**ABillS**\\
Загрузить пакет можно по адресу http://sourceforge.net/projects/abills/ \\
Также на сайте с дистрибутивамы может уже находиться более новая версия чем в инструкции.
# fetch https://sourceforge.net/projects/abills/files/abills/0.76/abills-0.76.45.tgz
** При проблемах с сертификатами, можно: **\\
**а) Обновить сертификаты и попробовать снова (рекомендуется)** \\
# pkg install -y ca_root_nss && fetch https://sourceforge.net/projects/abills/files/abills/0.76/abills-0.76.45.tgz
**б) Запустить без их проверки**\\
# fetch --no-verify-peer https://sourceforge.net/projects/abills/files/abills/0.76/abills-0.76.45.tgz
Разархивирование:
# tar zxvf abills-0.76.45.tgz
# cp -Rf abills /usr/
Создаем конфигурационный файл системы :
# cp /usr/abills/libexec/config.pl.default /usr/abills/libexec/config.pl
в нем выставляем все под свои нужды
#DB configuration
$conf{dbhost}='localhost';
$conf{dbname}='abills';
$conf{dblogin}='abills';
$conf{dbpasswd}='sqlpassword';
$conf{ADMIN_MAIL}='info@your.domain';
При изменении значения в $conf{secretkey} поменяйте его также в файле abills.sql \\
\\
Вносим в cron периодические процессы **/etc/crontab**. Данные программы занимаются контролем состояния сессий (billd), месячной и дневной абонплатой, тарифных планов по расписанию (periodic) \\
*/5 * * * * root /usr/abills/libexec/billd -all
1 0 * * * root /usr/abills/libexec/periodic daily
1 1 * * * root /usr/abills/libexec/periodic monthly
Установить права на чтение и запись веб-сервером для файлов веб-интерфейса
mkdir /usr/abills/backup
chown -Rf www /usr/abills/cgi-bin /usr/abills/Abills/templates /usr/abills/backup
mkdir -p /usr/abills/var/log
touch /usr/abills/var/log/sql_errors
chmod 666 /usr/abills/var/log/sql_errors
chown nobody /usr/abills/var/log/sql_errors
====MySQL====
Устанавливаем пакет:
# pkg install -y mysql56-server mysql56-client
Автостарт после перезагрузки. **/etc/rc.conf**
echo mysql_enable=\"YES\" >> /etc/rc.conf
Запускаем MySQL
# /usr/local/etc/rc.d/mysql-server start
Очищаем пароль для комфортной установки (только для 5.7)
# mysqladmin -u root --password=`tail -1 /root/.mysql_secret` -h localhost password ""
# mysql --connect-expired-password -u root -p`tail -1 /root/.mysql_secret` -e 'ALTER USER `root`@`localhost` IDENTIFIED BY ""'
\\
\\
** Создаём пользователя и базу.** \\
# mysql --default-character-set=utf8 -u root
В консоли mysql делаем (Если меняли пароль в ''/usr/abills/libexec/config.pl'', меняем и в запросе): \\
GRANT ALL ON abills.* TO `abills`@localhost IDENTIFIED BY "sqlpassword";
CREATE DATABASE abills DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
quit;
Загружаем таблицы в базу.
# mysql --default-character-set=utf8 -D abills < /usr/abills/db/abills.sql
**Если возникает Invalid default value for 'registration'**
Выполняем
# sed -i -e "1 s/^/SET SQL_MODE='NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO';/;" /usr/abills/db/abills.sql
# mysql --default-character-set=utf8 -D abills < /usr/abills/db/abills.sql
====Perl modules====
Для работы системы нужны Perl модули.
# cd /usr/abills/misc/
# perl perldeps.pl pkg
Создаём симлинк для исполнительного файла perl
ln -s /usr/local/bin/perl /usr/bin/perl
====Web Server (Apache) ====
Устанавливаем Apache
# pkg install -y apache24
Копируем конфиг apache
# cp /usr/abills/misc/apache/abills_httpd.conf /usr/local/etc/apache24/Includes/
Раскомментируем модули **/usr/local/etc/apache24/httpd.conf**
#LoadModule rewrite_module libexec/apache24/mod_rewrite.so
#LoadModule cgi_module libexec/apache24/mod_cgi.so
#LoadModule ssl_module libexec/apache24/mod_ssl.so
#LoadModule include_module libexec/apache24/mod_include.so
По умолчанию работаем на HTTPS, поэтому нужны сертификаты.
# /usr/abills/misc/certs_create.sh apache
Для автоматического запуска apache внести изменения в rc.conf\\
# echo apache24_enable=\"YES\" >> /etc/rc.conf
Создаем каталог для логов веб-сервера Abills
# mkdir /var/log/httpd/
Запускаем apache
# /usr/local/etc/rc.d/apache24 start
=====Freeradius=====
cd /usr/ports/net/freeradius3 && make && make install clean
===Ручная конфигурация===
копируем конфигурацию
cd /usr/abills/
rm /usr/local/etc/raddb/sites-enabled/*
cp misc/freeradius/v3/mods-enabled/perl /usr/local/etc/raddb/mods-enabled/perl
cp misc/freeradius/v3/mods-enabled/sql /usr/local/etc/raddb/mods-enabled/sql
cp misc/freeradius/v3/sites-enabled/abills_default /usr/local/etc/raddb/sites-enabled/abills_default
cp misc/freeradius/v3/users /usr/local/etc/raddb/users
В файле ''/usr/local/etc/raddb/mods-enabled/sql'' пропишите данные доступа к базе
sql {
database = "mysql"
driver = "rlm_sql_${database}"
server = "localhost"
#port = 3306
login = "abills"
password = "sqlpassword"
radius_db = "abills"
# В самом конце файла
'%secretkey%' меняем на 'test12345678901234567890'
===Автоконфигурация===
cd /usr/abills/misc/
./autoconf PROGRAMS=freeradius FREERADIUS=3
нажимаем всюду **yes**
===Запуск===
Для автоматического запуска радиуса внести изменения в **/etc/rc.conf**\\
# echo radiusd_enable=\"YES\" >> /etc/rc.conf
запускаем радиус :
# /usr/local/etc/rc.d/radiusd start
===Удаление===
cd /usr/ports/net/freeradius3 && make deinstall clean
rm -r /usr/local/etc/raddb
При переустановке очистите конфиг
make clean config
=====Сборка ядра=====
**Ядро нужно собирать, если планируете шейпить трафик (использовать как сервер доступа) на текущем сервере**
\\
[[abills:docs:freebsd_core| Сборка ядра для управления трафиком ]]:\\
\\
Перезагружаем сервер и приступаем к установке необходимого софта.\\
====Настройка веб-интерфейса Abills====
Открываем веб интерфейс https://your.host:9443/admin/\\
Логин администратора по умолчанию ''abills'' пароль ''abills''\\
Прежде всего надо сконфигурировать сервера доступа NAS (Network Access Server). \\
Переходим в меню **Configuration->NAS**
Параметры
^IP |IP адрес NAS сервера |
^Name |Название |
^Radius NAS-Identifier |Идентификатор сервера (можно не вписывать) |
^Describe |Описание сервера |
^Type |Тип сервера. В зависимости от типа по разному обрабатываются запросы на авторизацию |
^Authorization |Тип авторизации. SYSTEM - При хранении паролей в UNIX базе (/etc/passwd)\\ SQL - при хранении паролей SQL базе (MySQL, PosgreSQL)\\ |
^Alive |Период отправки Alive пакетов |
^Disable | Отключить |
^:Manage: Секция менеджмента NAS сервера |
^IP:PORT |IP адрес и порт для контроля соединения. Например, для отключения пользователя из веб-интерфейса |
^User |Пользователь для контроля |
^Password |Пароль |
^RADIUS Parameters |Дополнительные параметры которые передаются NAS серверу после успешной авторизации.|
После заведения сервера доступа добавьте ему пул адресов IP POOLs.
^FIRST IP |Первый адрес в пуле |
^COUNT |Количество адресов |
К примеру 10.1.0.1 количество 60 000 (хватит на всех :)\\
Одному серверу доступа может принадлежать несколько пулов адресов. \\
Создание тарифного плана\\
Меню **System configuration -> Internet -> Tarif Plans** \\
Регистрация пользователя **Customers -> Users -> Add**\\
Заведение сервиса Internet на пользователя.
Customers -> Users -> Information -> Services -> Internet \\
Проверяем RADIUS
# cd /usr/abills/libexec/
# ./radtest.sh auth -rad
если всё прошло нормально в вы увидите что-то типа :
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=192, length=44
Acct-Interim-Interval = 300
Session-Timeout = 1607940
Framed-IP-Address = 10.0.0.216
Framed-IP-Netmask = 255.255.255.255
и в журнале ошибок **/Отчёт/Internet/Ошибка/** должна появиться строка \\
2013-02-23 12:55:55 LOG_INFO: AUTH [test] NAS: 1 (xxx.xxx.xxx.xxx) GT: 0.03799{{:abills:docs:manual:install_freebsd:2014-03-14_10_53_08-_asmodeus_billing_system.png?500|}}
Если нет информации попробуйте запустить в соседней консоли RADIUS в режиме отладки
radiusd -X
====Настройка серверов доступа====
* [[abills:docs:mpd:ru|mpd]]
====Настройка шейпера и маскарада====
В системе реализированно несколько вариантов выбирать предпочтительный
* [[abills:docs:manual:ng_car|FreeBSD ng_car шейпер]]
* [[abills:docs:manual:freebsd_dummynet|FreeBSD Dummynet/table шейпер]]
====Установка ABillS автоинсталятором====
{{youtube>large:YNW0H8aY4k0|ABillS: Установка автоинсталятором и настройка}}