Child pages
  • Установка ABillS на FreeBSD
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 45 Next »


Замечания по установкe операционной системы

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

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

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

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

Скачать FreeBSD 11.0 AMD64

Скачать FreeBSD 11.0 i386

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


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

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

pkg update && pkg upgrade -y

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

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

Открываем веб интерфейс 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:PORTIP адрес и порт для контроля соединения. Например, для отключения пользователя из веб-интерфейса
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

Если нет информации попробуйте запустить в соседней консоли RADIUS в режиме отладки

radiusd -X

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

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


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

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



  • No labels