=====Установка 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: Установка автоинсталятором и настройка}}