Установка и настройка биллинговой системы FreeNibs (billing isp freebsd)
Ключевые слова: billing , isp , freebsd , (найти похожие документы )
From: Кравчук Андрей <krava13@googlemail.com. >
Newsgroups: email
Date: Sun, 19 Nov 2006 17:02:14 +0000 (UTC)
Subject: Установка и настройка биллинговой системы FreeNibs
Версия документа 0.1alfa
Написан: ??.09.2004. Можно взять по-адресу: http://nibsman.narod.ru
Опубликован на OpenNET.ru 11 ноября 2006
© Свободное использование при условии указания имени и фамилии автора и
ссылки на электронный адрес: krava13@googlemail.com
Внимание! Почти все компоненты есть на http://nibs.net.ua
Disclaimer:
У меня все стоит на одной машине (и диалап и радиус). 1 модем.
Поэтому здесь описана минимальная кофигурация биллинга.
И все редактируете под себя, т.е. под свою сеть и оборудование.
Требуемые компоненты:
1.FreeBSD :)
2.mgetty
3.radpppd+patch
4.mysql
5.apache
6.php
7.freeradius
8.freenibs
9.настройки
Версии:
FreeBSD 4.9
mgetty 1.1.30-dec16
radpppd 2.3.5
mysql - 3.23.58
apache - httpd 2.0.47
php - 4.3.3
freeradius - 0.9.3
freeNibs - 0.0.3-bf3_freeradius-0.9.3
Все устанавливалось из портов. Если у вас есть эти компоненты, то нужно
распаковать файлы прежде чем их устанавливать.
(для распаковки: tar -xvzf имя_пакета)
1. FreeBSD
----------
Ну, с этим я думаю, ясно. Почему не linux - потому что я именно на этой
системме строил весь биллинг.
2.mgetty
mgetty1.1.30.-Dec16.tar.gz
При установке mgetty внимательно почитайте файл readme.1st для
корректировки компиляции (иначе ничего не скомпилится :).
make
make install
3. radpppd
распаковываем и копируем в папку с исходниками патч
patch <patch_file
make
копируем скомпилиный файл в /usr/sbin
В принципе, можно и в любое другое место скопировать, но я по аналогии
делал именно так.
4. Устанавливаем mysql.
-----------------------
(все делается по-аналогии: tar -xvzf packet_name make make install)
mysql_install_db - устанавливаем мускуловые базы
safe_mysqld & - запускаем мускул
mysql -u root -p mysql - запускаем шелл мускула
update user set password=password('new_password') where user='root'; - устанавливаем рутовый пароль для mysql
quit - выходим из шелла
mysqladmin -u root reload - перезапускаем mysql
5. apache
Устанавливаем. корректируем в файле httpd.conf следующее: (находите эти
строчки и исправляйте)
(у меня он находится: /usr/local/etc/apache2/httpd.conf)
Listen 80
ServerName 192.168.1.25:80 # здесь подставьте, айпи вашего сервера.
DocumentRoot "/var/www"
<Directory "/var/www">
Options Indexes FollowSymLinks Includes
DirectoryIndex index.php # index.php - добавить
.....
# Теперь устанавливаем виртуальные хосты:
<VirtualHost admin.myserver.ua>
php_admin_flag engine On
php_admin_flag safe_mode Off
php_admin_flag register_globals On
ServerName admin.myserver.ua
DocumentRoot /var/www/admin
<Directory "/var/www/admin">
AllowOverride All
Options FollowSymlinks Includes
Allow from 127.0.0.1
Deny from all
AuthName "Enter password for access"
AuthType Basic
require valid-user
AuthUserFIle /var/www/admin.key
</Directory>
</VirtualHost>
<VirtualHost stat.myhost.ua>
php_admin_flag engine On
php_admin_flag safe_mode Off
php_admin_flag register_globals On
ServerName stat.myhost.ua
DocumentRoot /var/www/stat
<Directory "/var/www/stat">
AllowOverride All
Options FollowSymlinks Includes
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
6. PHP.
-------
Все тоже самое: make make install
Дальше, снова httpd.conf
добавляем такие строкчи в него: (если они уже есть, то править ниче не
надо)
LoadModule php4_module libexec/apache2/libphp4.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .sphp
создаем папку /var/www
7. FreeRadius
(именно его я дольше всего настраивал и разбирался с ним.)
ВНИМАНИЕ! Сливайте только самые последние версии фрирадиуса и фринибса.
Именно на них и орентирован этот мануал.
распаковываем фрирадиус
распаковываем фринибс
кописуем в папку с фрирадиусом фринибс и все файлы замещаем
переходим во врирадиус
./configure --prefix=/usr/freeradius
так мы укажем путь установки. можно любой другой
make
make install
копируем 2 папки из исходников фринибса в /var/www. папки называются:
admin
stat
они находятся:
исходники_фринибсa/src/modules/rlm_nibs/utils/web/
Дальше, настраиваем базы:
переходим исходники_фрирадиуса/src/modules/rlm_nibs/drivers/rlm_nibs_mysql
файл:
nibs_mysql.sql
nibs_mysql_cards.sql
меняем в этих файлах ** pass ** на любой свой придуманый пароль
дальше выполняем это 2 файла следующим образом:
mysql -u root -p <nibs_mysql.sql
mysql -u root -p <nibs_mysql_cards.sql
дальше, переходим /usr/freeradius/etc/raddb
устанавливаем пароль для баз в файле nibs.conf
(тот же самый, который мы корректировали ** pass **)
9. Настройки.
1. Настраиваем дальше:
/etc/ppp
auth-up
auth-down
chap-secrets
ip-down
ip-up
options
options.cuaa0
pap-secrets
ppp.conf
Поскольку у меня модем стоит на com1, поэтому файл и называется cuaa0.
Меняйте его в зависимости от порта.
cuaa0 - com1
cuaa1 - com2
cuaa2 - com3
cuaa3 - com4
Теперь, редактируем файлы
options
modem
crtscts
asyncmap 0
radius
noipx
cbcp
options.cuaa0
passive
192.168.1.25:192.168.1.200
proxyarp
ms-dns 192.168.1.17
debug
radius
Здесь :
192.168.1.25 -это мой сервер
192.168.1.200 - это ваш клиент
192.168.1.17 - это ваш DNS сервер.
pap-secrets
* * "" 192.168.1.200
все. Все остальные файлы - пустые. Но они должны присутствовать.
/etc/radius.conf
auth localhost testing123
acct localhost testing123
Этот файл обязательно должен присутствовать, иначе радиус не пустит вас.
И в логи ничего не напишет.
/etc/ttys
После установки mgetty в конце этого файла должна появится строчка:
cuaa0 "/usr/local/sbin/mgetty" unknown on insecure
меняем ее на:
cuaa0 "/usr/local/sbin/mgetty" dialup on
/etc/gettytab
(у меня модем на 57600, поэтому меняем следующее: (вы же корректируете
под себя))
std.57600|57600-baud:\
:np:sp#57600:
:pp=/usr/sbin/radpppd.sh: #вот эту строчку надо добавить
/etc/hosts
127.0.0.1 admin.myhost.ua
192.168.1.25 stat.myhost.ua
дальше создаем, файл /usr/sbin/radpppd.sh
#!/bin/sh
#
/usr/sbin/radpppd +pap radius debug
права должны у этого файла быть: -rw-r--r-- тобишь: 644 Иначе не будет работать.:)
/usr/local/etc/mgetty+sendfax/login.config
Редактируем или вписываем такую строчку:
/AutoPPP/ - a_ppp /usr/sbin/radpppd +pap radius debug
переходим в папку /var/www
создаем файл:
htpasswd -c пассворд_файл.key имя_пользователя
Возможно, если не будет отключатся пользователь, у которого закончилось
время на счету или деньги нужно написать свой userkill
Для этого делаем следующее:
предлoжено vasili:
kill 'cat /var/run/ppp$1.pid'
В параметре к скрипту передаешь %(NAS-Port). Так будет работать, если у
вас NAS и биллинг на одном компьютере.
Мой вариант совсем ламерский, но все же тож работает:
#!/usr/bin/perl -w
open(F,'/var/run/ppp0.pid');$a=<F>;close(F);system('kill $a');
Все. теперь запускаем все модули:
httpd -k start
/usr/freeradius/sbin/rc.radius start
init q
Теперь, нужно набить базу пакетами. И, обязательно нужно проставить ВСЕ!
цены в прайсах того пакета, который вы редактируете!
Все! система должна работать.
2 , michelle (?? ), 15:49, 24/11/2006 [ответить ]
+ /–
А более старого нет ничего??
Хотелось бы новенького!
3 , krava13 (ok ), 16:21, 10/04/2009 [ответить ]
+ /–
А, более новенькое смотрите на официальном сайте. Эту систему я поднял в 2004-м году, и документацию на нее написал тож в 2004-м. Просто выложил на Open.net только в 2006-м :)