Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


Info
title Замечания по установкe операционной системы
  • При разбиении диска на разделы крайне рекомендуется отвести для раздела /var не менее 10 Гигабайт. Если планируется высокая нагрузка, это значение можно увеличить.

  • Рекомендованный дистрибутив FreeBSD 11.0-RELEASE (http://freebsd.org/)

  • Про установку FreeBSD можно почитать здесь FreeBSD Handbook

Скачать образы: Официальный FTP

Скачать FreeBSD 11.0 AMD64

Скачать FreeBSD 11.0 i386


Установка операционной системы

Widget Connector
urlhttps://www.youtube.com/watch?v=4AgNOUAXyH4


Пошаговая настройка

Обновляем систему и софт 

Code Block
languagebash
pkg update && pkg upgrade -y

Загрузить пакет можно по адресу.

ABillS

Также на сайте с дистрибутивамы может уже находиться более новая версия чем в инструкции.

Code Block
languagebash
fetch https://sourceforge.net/projects/abills/files/abills/0.76/abills-0.76.45.tgz

При проблемах с сертификатами, можно: 

а) Обновить сертификаты и попробовать снова (рекомендуется) 

Code Block
languagebash
pkg install -y ca_root_nss && fetch https://sourceforge.net/projects/abills/files/abills/0.76/abills-0.76.45.tgz

б) Запустить без их проверки

Code Block
languagebash
fetch --no-verify-peer https://sourceforge.net/projects/abills/files/abills/0.76/abills-0.76.45.tgz


Разархивирование:

Code Block
languagebash
tar zxvf abills-0.76.45.tgz
cp -Rf abills /usr/

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

Code Block
languagebash
cp /usr/abills/libexec/config.pl.default /usr/abills/libexec/config.pl

в нем выставляем все под свои нужды

Code Block
languagebash
#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) 

Code Block
languagebash
*/5   *      *    *     *   root    /usr/abills/libexec/billd -all
1     0      *    *     *   root    /usr/abills/libexec/periodic daily
1     1      *    *     *   root    /usr/abills/libexec/periodic monthly

Установить права на чтение и запись веб-сервером для файлов веб-интерфейса

Code Block
languagebash
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

Устанавливаем пакет:

Code Block
languagebash
pkg install -y mysql56-server mysql56-client

Автостарт после перезагрузки. /etc/rc.conf

Code Block
languagebash
echo mysql_enable=\"YES\" >> /etc/rc.conf

Запускаем MySQL

Code Block
languagebash
/usr/local/etc/rc.d/mysql-server start

Очищаем пароль для комфортной установки (только для 5.7)

Code Block
languagebash
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 "" ' 

Создаём пользователя и базу. 

Code Block
languagebash
mysql --default-character-set=utf8 -u root

В консоли mysql делаем (Если меняли пароль в /usr/abills/libexec/config.pl, меняем и в запросе): 

Code Block
languagebash
GRANT ALL ON abills.* TO `abills`@localhost IDENTIFIED BY "sqlpassword";  
  CREATE DATABASE abills DEFAULT CHARACTER SET utf8 COLLATE  utf8_general_ci;
  quit;

Загружаем таблицы в базу.

Code Block
languagebash
mysql --default-character-set=utf8 -D abills < /usr/abills/db/abills.sql

Если возникает Invalid default value for 'registration' Выполняем

Code Block
languagebash
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 модули.

Code Block
languagebash
cd /usr/abills/misc/
perl perldeps.pl pkg

Создаём симлинк для исполнительного файла perl

Code Block
languagebash
ln -s /usr/local/bin/perl /usr/bin/perl


Web Server (Apache)

Устанавливаем Apache

Code Block
languagebash
pkg install -y apache24

Копируем конфиг apache

Code Block
languagebash
cp /usr/abills/misc/apache/abills_httpd.conf /usr/local/etc/apache24/Includes/

Раскомментируем модули /usr/local/etc/apache24/httpd.conf

Code Block
languagebash
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, поэтому нужны сертификаты.

Code Block
languagebash
/usr/abills/misc/certs_create.sh apache 

Для автоматического запуска apache внести изменения в rc.conf

Code Block
languagebash
echo apache24_enable=\"YES\" >> /etc/rc.conf   

Создаем каталог для логов веб-сервера Abills

Code Block
languagebash
mkdir /var/log/httpd/Запускаем apache


Code Block
languagebash
/usr/local/etc/rc.d/apache24 start


Freeradius


Code Block
languagebash
cd /usr/ports/net/freeradius3 && make && make install clean

Ручная конфигурация

копируем конфигурацию

Code Block
languagebash
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 пропишите данные доступа к базе

Code Block
languagebash
sql {
        database = "mysql"
        driver = "rlm_sql_${database}"
        server = "localhost"
        port = 3306
        login = "abills"
        password = "sqlpassword"
        radius_db = "abills"
        
В самом конце файла
        '%secretkey%' меняем на 'test12345678901234567890'

Автоконфигурация

Code Block
languagebash
cd /usr/abills/misc/
./autoconf PROGRAMS=freeradius FREERADIUS=3

нажимаем всюду yes

Запуск

Для автоматического запуска радиуса внести изменения в /etc/rc.conf

Code Block
languagebash
echo radiusd_enable=\"YES\" >> /etc/rc.conf

запускаем радиус :

Code Block
languagebash
/usr/local/etc/rc.d/radiusd start

Удаление

Code Block
languagebash
cd /usr/ports/net/freeradius3 && make deinstall clean
 rm -r /usr/local/etc/raddb

При переустановке очистите конфиг

Code Block
languagebash
make clean config


Сборка ядра

Ядро нужно собирать, если планируете шейпить трафик (использовать как сервер доступа) на текущем сервере 
Сборка ядра для управления трафиком :

Перезагружаем сервер и приступаем к установке необходимого софта.

Первые шаги по работе с системой

Первые шаги работы с ABillS

Настройка серверов доступа

Настройка шейпера и маскарада

В системе реализированно несколько вариантов выбирать предпочтительный

Установка ABillS автоинсталятором

Widget Connector
width500
urlhttps://www.youtube.com/watch?v=YNW0H8aY4k0
height500