Замечания по установкe операционной системы
При разбиении диска на разделы крайне рекомендуется отвести для раздела /var не менее 10 Гигабайт. Если планируется высокая нагрузка, это значение можно увеличить.
Рекомендованный дистрибутив FreeBSD 11.0-RELEASE (http://freebsd.org/)
Про установку FreeBSD можно почитать здесь FreeBSD Handbook
Скачать образы: Официальный FTP
Установка операционной системы
Пошаговая настройка
Обновляем систему и софт
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: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
Если нет информации попробуйте запустить в соседней консоли RADIUS в режиме отладки
radiusd -X
Настройка серверов доступа
Настройка шейпера и маскарада
В системе реализированно несколько вариантов выбирать предпочтительный