Translations of this page:

Установка Freebsd

MySQL

(У меня SQL база находится на линукс-сервере на другой машине, поэтому я не собирал, но проблем не должно быть). (Для сборки сразу с поддержкой utf8 - make WITH_CHARSET=utf8).

# cd /usr/ports/database/mysql51-server && make  && make install

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

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

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

# mysql --default-character-set=utf8 -u root -p
use mysql;
INSERT INTO user (Host, User, Password) 
  VALUES ('localhost','abills', password('sqlpassword'));

INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, 
  Delete_priv, Create_priv, Drop_priv, Index_priv, Alter_priv, 
  Lock_tables_priv, Create_tmp_table_priv, Create_view_priv,
  Show_view_priv, Execute_priv, Event_priv, Trigger_priv) 
VALUES ('localhost', 'abills', 'abills', 'Y', 'Y', 'Y', 'Y', 'Y', 
  'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');

CREATE DATABASE abills;
flush privileges;

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

# mysql --default-character-set=utf8 -D abills < abills.sql

Perl modules

Для работы системы нужны модули.

DBI (cd /usr/ports/databases/p5-DBI && make && make install)
DBD-mysql (cd /usr/ports/databases/p5-DBD-mysql51 && make && make install)
Digest-MD5 для Chap авторизации (cd /usr/ports/security/p5-Digest-MD5 && make && make install)
Digest-MD4 для MS-Chap авторизации (cd /usr/ports/security/p5-Digest-MD4 && make && make install)
Crypt-DES для MS-Chap авторизации (cd /usr/ports/security/p5-Crypt-DES && make && make install)
Digest-SHA1 для MS-ChapV2 авторизации (cd /usr/ports/security/p5-Digest-SHA1 && make && make install)
Time-HiRes Нужен только для тестирования скорости выполнения авторизациИ, аккаунтинга, и страниц веб-интерфейса (cd /usr/ports/devel/p5-Time-HiRes && make && make install)

Web Server

Apache

Собираем апач 2.2 из портов.

# cd /usr/ports/www/apache22
# make
# make install

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

# echo apache_enable=\"YES\" >> /etc/rc.conf

Файл конфигурации

# cp /usr/abills/misc/apache/abills_httpd.conf /usr/local/etc/apache22/Include

Radius

Все пакеты кроме самого биллинга я ставил из портов и все нормально работало, начнем с радиуса:

# cd /usr/ports/net/freeradius2 && make install

Далее идем в /usr/local/etc/raddb и убираем у всех файлов .sample (чесно говоря и не люблю из-за этого фрю :)

Правим в этой же /usr/local/etc/raddb директории users
Все строки комментируем, и в конец вставляем эту (По-умолчанию авторизовыватся через скрипт):

DEFAULT Auth-Type = Accept
  Exec-Program-Wait = "/usr/abills/libexec/rauth.pl"

Далее правим acct_users просто вставив это в конец (запуск скриптов на события радиуса):

DEFAULT Acct-Status-Type == Start
   Exec-Program = "/usr/abills/libexec/racct.pl"

DEFAULT Acct-Status-Type == Alive
   Exec-Program = "/usr/abills/libexec/racct.pl"

DEFAULT Acct-Status-Type == Stop
   Exec-Program = "/usr/abills/libexec/racct.pl"

Теперь нужно описать клиентов, которых будет наш радиус обслуживать, для этого в clients.conf добавляем следующие строки (опять же в конец): !!! (Если PPPoE демон или PPTP демон на этой же машине, то достаточно найти строки и изменить в них значение secret и shortname).

client 127.0.0.1 {
   secret = radsecret
   shortname = exppp
 }

Если у вас pppd, poptop, cisco, lucent max6000, exppp или еще какая-нибудь терминирующая железка/сервер не на одной машине с радиусом, то вам нужно для них всех добавить по такой секции, для того, чтобы радиус знал о том, что они будут у него авторизовыватся.

Например, у меня есть локальный exppp и для него я описал выше адрес машины на которой он стоит, пароль и обозвал его exppp.

Еще у меня есть DialUP концентратор Lucent MAX6000 для него я добавил следующее:

client 217.21.248.211 {
   secret = maxsecret
   shortname = nas1.provider.com
 }

В файле radiusd.conf нужно закомментировать использование модулей ‘chap’ и ‘mschap’ в разделе ‘authorize’

authorize {
  preprocess
  suffix
  files
}

С радиусом пока все, но позже в зависимости от используемых способов терминирования (подключения пользователей) мы в него будем добавлять кое-что еще.

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

# echo radiusd_enable=\"YES\" >> /etc/rc.conf

Сборка ядра

Ставим FreeBSD поновее, ставим исходники ядра и добавляем некоторые возможности в ядро:

# cd /usr/src/sys/i386/conf
# cp SMP GATE-SMP		

(Если у вас один процессор и нет гипертрэйдинга, копируйте не SMP, а GENERIC)

# ee GATE-SMP

В конец вставляем этот кусок:

# For Abills
options         IPFIREWALL
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         DUMMYNET

options         NETGRAPH
options         NETGRAPH_PPPOE
options         IPFILTER
options         IPFILTER_LOG
options         IPDIVERT

Собираем:

# /usr/sbin/config GATE-SMP
# cd ../compile/GATE-SMP
# make depend
# make
# make install

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

Установка ABillS

ABillS

Загрузить пакет можно по адресу http://sourceforge.net/projects/abills/

tar zxvf abills-0.54.tgz
cp -Rf abills /usr/

Правим конфигурационный файл системы (в нем выставляем все под свои нужды) /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{USERS_MAIL_DOMAIN}="your.domain";
# используется для шифрования паролей администраторов и пользователей.
$conf{secretkey}="test12345678901234567890"; 

При изменении значения в $conf{secretkey} поменяйте его также в файле abills.sql Вносим в cron периодические процессы /etc/crontab

*/5   *      *    *     *   root    /usr/abills/libexec/billd -all\\
1     0      *    *     *   root    /usr/abills/libexec/periodic daily\\
1     1      *    *     *   root    /usr/abills/libexec/periodic monthly\\

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

# chown -Rf www /usr/abills/cgi-bin /usr/abills/Abills/templates /usr/abills/backup
# mkdir /usr/abills/var /usr/abills/var/log

Открываем веб интерфейс http://your.host:9443/admin/
Логин администратора по умолчанию abills пароль abills
Прежде всего надо сконфигурировать сервера доступа NAS (Network Access Server).

Переходим в меню System 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→Dialup / VPN
Проверяем

# radtest testuser testpassword 127.0.0.1:1812 0 radsecret 0 127.0.0.1

Если всё правильно настроено, в файле логов /usr/abills/var/log/abills.log должна появиться строка

2005-02-23 12:55:55 LOG_INFO: AUTH [testuser] NAS: 1 (xxx.xxx.xxx.xxx) GT: 0.03799

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

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

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

 
abills/docs/manual/install_freebsd/ru.txt · Последние изменения: 2012/01/16 21:11 — asmodeus
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki