Користувальницькькі налаштування

Налаштування сайту


setupubuntuserver1010

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія По сторонах наступні версії
setupubuntuserver1010 [2013/02/25 10:55]
setupubuntuserver1010 [2022/09/24 14:39]
127.0.0.1 зовнішнє редагування
Рядок 1: Рядок 1:
 +**Установка Stargazer+Ubilling на Ubuntu Server 10.10**
 +
 +====== Установка требуемого внешнего ПО на сервер с Ubilling ======
 +
 +<code>
 +apt-get install mysql-server-core-5.1 mysql-client-core-5.1 libmysqlclient16 libmysqlclient-dev apache2 mysql-server expat libexpat-dev php5-cli libapache2-mod-php5 php5-mysql dhcp3-server build-essential bind9 bandwidthd softflowd
 +</code>
 +При установке программ вас попросят ввести пароль для root от mysql.
 +
 +
 +**Включаем мод в php:**
 +<code>a2enmod php5</code>
 +
 +**Редактируем /etc/sudoers**
 +<code>
 +User_Alias BILLING = www-data
 +BILLING          ALL = NOPASSWD: ALL
 +</code>
 +
 +
 +**Делаем симлинк на Bandwindthd**
 +<code>
 +ln -fs /var/lib/bandwidthd/htdocs/ /var/www/band
 +</code>
 +
 +
 +======= Установка IPSET  =======
 +
 +**1. Качаем архив IPSET 4.x версии он нормально работает на Maverick (в последних версиях 12.04 можно установить через apt-get install ipset)**
 +[[http://ipset.netfilter.org/install.html]]
 +
 +**2. Распаковываем: **
 +<code>tar -xf ipset-4.5.tar.bz2</code>
 +
 +**3. Заходим в папку собираем и включаем:**
 +<code>
 +cd ipset-4.5/
 +
 +make && make install && make clean
 +
 +depmod && depmod -A
 +modprobe ip_set
 +</code>
 +Всё должно пройти без ошибок. 
 +
 +И собственно всё.. Ipset уже готов служить вам =)
 +
 +======= Установка и настройка Htb =======
 +
 +0. Качаем Htb: [[http://sourceforge.net/projects/htbinit/]]
 +
 +1. В скрипте htb.init проверяем и корректируем по вкусу переменные HTB_PATH, HTB_CACHE, TC, IP, MP.
 +
 +2. <code>cp htb.init /etc/init.d/htb</code>  и делаем <code>update-rc.d htb defaults</code>
 +
 +3. cd /etc/sysconfig/htb <code> 
 +touch eth0
 +touch eth1
 +touch eth0-2.root
 +touch eth1-2.root
 +</code>
 +
 +
 +nano eth0 <code> 
 +DEFAULT=0
 +R2Q=100
 +</code>
 +
 +nano eth1 
 +<code>
 +DEFAULT=0
 +R2Q=100
 +</code>
 +
 +nano eth0-2.root
 +<code>
 +RATE=100Mbit
 +CEIL=100Mbit
 +</code>
 +
 +nano eth1-2.root
 +<code>
 +RATE=100Mbit
 +CEIL=100Mbit
 +</code>
 +
 +**Проверить работу скрипта htb.init, кроме спидтестов, можно просмотром конфигурации командами:**
 +<code>
 +tc class show dev ВАШ_ИНТЕРФЕЙС
 +tc qdisc show dev ВАШ_ИНТЕРФЕЙС
 +</code>
 +
 +
 +
 +======= Установка Stargazer =======
 +<code>
 +mkdir /root/BILLING
 +cd /root/BILLING
 +wget http://stg.dp.ua/download/server/2.407-p1/stg-2.407-p1.tar.gz
 +tar zxvf stg-2.407-p1.tar.gz
 +cd stg-2.407-p1/projects/stargazer/
 +./build
 +make install
 +cd ../sgconf && ./build && make && make install
 +cd ../sgconf_xml/ && ./build && make && make install
 +</code>
 +
 +
 +
 +
 +======= Редактирование конфигов и настройка опций =======
 +
 +
 +**Редактируем конфиг /etc/stargazer/stargazer.conf**
 +__Вот здесь очень сомнительное место. Возможно стоит его не рассматривать.__
 +Сделайте симлинк на cap_nf и remote_script из /etc/stargazer/conf-available.d/ в /etc/stargazer/conf-enabled.d/
 +и желательно удалить линк на cap_ether говорят он не вменяемый =)
 +И давайте сразу создадим директорию под логи - для удобства:
 +
 +<code>
 +rm /etc/stargazer/conf-enabled.d/mod_cap_ether.conf
 +ln -fs /etc/stargazer/conf-available.d/mod_remote_script.conf /etc/stargazer/conf-enabled.d/
 +mkdir /etc/stargazer/log/
 +</code>
 +__
 +Конец сомнительного места.__
 +
 +<code>
 +################################################################################
 +#                        Stargazer Configuration file                          #
 +################################################################################
 +
 +# путь к логфайлу
 +LogFile = /etc/stargazer/log/stargazer.log
 +
 +
 +# путь к pid
 +PIDFile = /var/run/stargazer.pid
 +
 +
 +# файл с описанием класов трафика
 +Rules = /etc/stargazer/rules
 +
 +
 +# время записи детальной статистики в базу
 +DetailStatWritePeriod = 1/4
 +
 +
 +# время сброса счетчиков трафика в базу
 +StatWritePeriod = 10
 +
 +
 +# день снятия абонплаты
 +DayFee = 1
 +
 +
 +# это последний день месяца?
 +DayFeeIsLastDay = no
 +
 +
 +# день обнуления счетчиков трафика
 +DayResetTraff = 1
 +
 +
 +# "размазанное" снятие абонплаты
 +SpreadFee = no
 +
 +
 +# позволять пользователю доступ если у него остался предоплаченый трафик?
 +FreeMbAllowInet = no
 +
 +
 +# писать стоимость предоплаченого трафика?
 +WriteFreeMbTraffCost = yes
 +
 +
 +# снимать полную абонплату ежемесячно?
 +FullFee = yes
 +
 +
 +# названия класов трафика относительно /etc/stargazer/rules
 +<DirNames>
 +  DirName0 = Internet
 +  DirName1 = Local
 +  DirName2 = 
 +  DirName3 =
 +  DirName4 =
 +  DirName5 =
 +  DirName6 =
 +  DirName7 =
 +  DirName8 =
 +  DirName9 =
 +</DirNames>
 +ExecutersNum = 1
 +
 +
 +# путь модулей
 +ModulesPath = /usr/lib/stg
 +
 +
 +# модуль хранения данных
 +<StoreModule store_mysql>
 +# хост MySQL
 +  dbhost = localhost
 + # имя базы
 +  dbname = stg
 + # логин пользователя MySQL
 +  dbuser = root
 + # пароль пользователя MySQL
 +  rootdbpass = ваш_пароль
 +</StoreModule>
 +<Modules>
 +
 +
 +# модуль авторизации AlwaysOnline (рекомендуется)
 +<Module auth_ao>
 +</Module>
 +
 +
 +# модуль авторизации штатного авторизатора stargazer
 +<Module auth_ia>
 +  Port = 5555
 +  UserDelay = 60
 +  UserTimeout = 65
 +  FreeMb = cash
 +</Module>
 +
 +
 +# модуль коллектора трафика NetFlow
 +<Module conf_sg>
 +  Port = 5555
 +</Module>
 +
 +<Module cap_nf>
 +      TCPPort = 42111
 +      UDPPort = 42111
 +</Module>
 +
 +</Modules>
 +
 +
 +
 +
 +</code>
 +
 +
 +
 +**Редактируем конфиг /etc/stargazer/rules**
 +<code>
 +
 +ALL     172.16.0.0/18   DIR1
 +ALL     0.0.0.0/      DIR0
 +
 +</code>
 +
 +
 +**И так первый запуск stargazer'a:**
 +<code>stargazer</code>
 +
 +**Теперь проверим создались ли базы в MySQL**
 +<code>mysql -u root -p stg -e "SHOW TABLES"</code>
 +
 +В ответ должны увидеть это:
 +<code>
 +Tables_in_stg
 +
 +admins
 +messages
 +stat
 +tariffs
 +users
 +</code>
 +
 +
 +**Выключаем stargazer:**
 +<code>killall stargazer</code>
 +
 +**Теперь можно приступить к установке Ubilling'a**
 +
 +<code>cd /var/www/
 +mkdir billing
 +cd billing
 +wget http://ubilling.net.ua/ub.tgz
 +tar zxvf ub.tgz
 +</code>
 +
 +**Тут у меня возникала проблема с правами на файлы..**
 +<code>
 +chmod -R 0777 content/ config/ multinet/ exports/ remote_nas.conf vservices.php
 +</code>
 +
 +
 +**Заливаем дамп mysql из ubilling:**
 +<code>cat /var/www/billing/docs/test_dump.sql | mysql -u root -p stg</code>
 +
 +**Проверяем что дамп залит:**
 +<code>mysql -u root -p stg -e "SHOW TABLES"</code>
 +В ответ увидим много таблиц:
 +<code>
 ++-----------------+
 +| Tables_in_stg |
 ++-----------------+
 +| address |
 +| admins |
 +| ahenassign |
 +| apt |
 +| build |
 +| cardbank |
 +| cardbrute |
 +| cashtype |
 +| cfitems |
 +| cftypes |
 +| city |
 +| contracts |
 +| contrahens |
 +| cpe |
 +| cpetypes |
 +| dhcp |
 +| directions |
 +| dshape_time |
 +| emails |
 +| employee |
 +| jobs |
 +| jobtypes |
 +| logs_11_2011 |
 +| messages |
 +| modem_templates |
 +| modems |
 +| nas |
 +| nethosts |
 +| networks |
 +| notes |
 +| payments |
 +| phones |
 +| realname |
 +| services |
 +| servtariff |
 +| speeds |
 +| stat |
 +| street |
 +| switches |
 +| switchmodels |
 +| tags |
 +| tagtypes |
 +| tariffs |
 +| taskman |
 +| userreg |
 +| users |
 +| userspeeds |
 +| vcash |
 +| vcashlog |
 +| vservices |
 +| weblogs |
 ++-----------------+
 +</code>
 +
 +**Редактируем конфиг в ubilling: /var/www/billing/config/mysql.ini**
 +
 +<code>
 +;Хост БД
 +server = "localhost"
 +;порт MySQL
 +port = "3306"
 +;логин пользователя MySQL
 +username = "root"
 +;его пароль
 +password = "ваш_пароль"
 +;имя базы
 +db = "stg"
 +character = "UTF8"
 +prefix = "billing"</code>
 +
 +**Редактирем конфиг в ubilling /var/www/billing/config/billing.ini**
 +<code>
 +; метод взаимодействия со stargazer
 +baseconf = sgconfxml
 +
 +; путь к sgconf 
 +SGCONF=/usr/sbin/sgconf
 +
 +; путь к sgconf_xml
 +SGCONFXML=/usr/sbin/sgconf_xml
 +
 +; хост на котором запущен stargazer
 +STG_HOST=localhost
 +
 +; порт конфигуратора
 +STG_PORT=5555
 +
 +; порт XMLRPC
 +XMLRPC_PORT=8081
 +
 +; логин администратора stargazer (по умолчанию admin)
 +STG_LOGIN=admin
 +
 +; пароль администратора stargazer (по умолчанию 1234567)
 +STG_PASSWD=123456
 +
 +;Пути окружения
 +;путь к sudo
 +SUDO=/usr/bin/sudo
 +
 +;путь к top в пакетном режиме
 +TOP = /usr/bin/top -b -n1
 +
 +;путь к cat
 +CAT=/bin/cat
 +
 +;путь к grep 
 +GREP=/bin/grep
 +
 +;путь к RC скрипту isc-dhcpd
 +RC_DHCPD=/etc/init.d/dhcp3-server
 +
 +STGPID=/var/run/stargazer.pid
 +
 +;путь к uptime
 +UPTIME=/usr/bin/uptime
 +
 +;путь к ping
 +PING=/bin/ping
 +
 +;путь к PHPSysInfo
 +PHPSYSINFO=phpsysinfo/
 +
 +STGNASHUP=1 
 +
 +;язык по умолчанию
 +LANG = ru
 +
 +;размер иконок в "панели задач"
 +TASKBAR_ICON_SIZE = 64
 +
 +; опции регистрации новых пользователей
 +; регистрировать новых пользователей со случайным MAC
 +REGRANDOM_MAC=1
 +
 +; регистрировать новых пользователей с флагом "Всегда онлайн"
 +REGALWONLINE=1
 +
 +; регистрировать новых пользователей с отключенной детальной статистикой
 +REGDISABLEDSTAT=1
 +
 +</code>
 +
 +
 +**Не забываем указать путь на будующий "лог файл" от dhcpd /var/www/billing/config/alter.ini**
 +<code>NMLEASES = /var/log/dhcpd.log
 +</code>
 +
 +
 +**Создаём симлинки на каталог и файл - без них ни чего не заработает =)**
 +<code>
 +ln -fs /var/www/billing/multinet/ /etc/dhcp3/multinet
 +ln -fs /var/www/billing/remote_nas.conf /etc/stargazer/remote_nas.conf
 +</code>
 +
 +
 +
 +**Копируем стандартные скрипты из Ubilling в stargazer и выставляем на них права.**
 +<code>
 +cp -f /var/www/billing/docs/presets/Linux/etc/* /etc/stargazer/
 +chmod a+x /etc/stargazer/*
 +</code>
 +
 +
 +**Редактируем /etc/stargazer/config для подключения к базе stg**
 +<code>
 +host = localhost
 +username = root
 +password = ваш_проль
 +database = stg
 +</code>
 +
 +
 +
 +**Запускаем stargazer**
 +<code>stargazer</code>
 +
 +
 +
 +
 +====== Создание зоны .isp, редактирование хостов и DHCP ======
 +
 +** Редактируем файл /etc/bind/named.conf **
 +<code>
 +include "/etc/bind/named.conf.options";
 +include "/etc/bind/named.conf.local";
 +include "/etc/bind/named.conf.default-zones";
 +
 +zone "isp" {
 +  type master;
 +  file "/etc/bind/db.isp";
 +};
 +
 +</code>
 +
 +
 +**Создаём файл и редактируем его**
 +<code>
 +cd /etc/bind/
 +touch db.isp
 +nano db.isp
 +</code>
 +
 +
 +**Содержимое /etc/bind/db.isp**
 +<code>
 +$TTL 3h
 +@ IN SOA billing.isp. root.billing.isp. 1 1d 12h 1w 3h
 +
 +isp. IN NS billing.isp.
 +
 +billing A          172.16.0.1 #Биллинг
 +stat    A          172.16.0.1 #Личный кабинет
 +nas1    A          172.16.0.1 #Сервер Bandwidthd
 +
 +</code>
 +
 +** Редактируем /etc/bind/named.conf.options **
 +<code>
 +acl isp {
 +        172.16.0.0/18;
 +        };
 +options {
 +        directory "/var/cache/bind";
 +
 +        auth-nxdomain no;    # conform to RFC1035
 +        listen-on-v6 { any; };
 +        allow-query {"isp";};
 +};
 +
 +</code>
 +
 +
 +**Настройка хостов в Apache2 /etc/apache2/site-enabled/000-default -Приводим содержимое в данный вид:**
 +<code>
 +<VirtualHost *:80>
 +ServerName billing.isp
 +DocumentRoot "/var/www/billing/"
 +AddDefaultCharset utf-8
 +</virtualhost>
 +
 +
 +<VirtualHost *:80>
 +ServerName stat.isp
 +DocumentRoot "/var/www/billing/userstats/"
 +AddDefaultCharset utf-8
 +</virtualhost>
 +
 +<VirtualHost *:80>
 +ServerName nas1.isp
 +DocumentRoot "/var/www/band/"
 +AddDefaultCharset utf-8
 +</virtualhost>
 +</code>
 +
 +**Настройка DHCP
 +Чтобы dhcp заработал нужно отредактировать /etc/default/dhcp3-server**
 +<code>
 +INTERFACES="eth1"
 +</code>
 +Это интерфейс на котором у нас в дальнейшем будут раздаваться IP адреса для абонентов.
 +
 +
 +**Редактируем /etc/dhcp3/dhcpd.conf**
 +<code>
 +option domain-name "isp";
 +option domain-name-servers 172.16.0.1;
 +default-lease-time 3600;
 +max-lease-time 43200;
 +authoritative;
 +ddns-update-style none;
 +log-facility local7;
 +one-lease-per-client true;
 +deny duplicates;
 +shared-network ourisp {
 +subnet 172.16.0.0 netmask 255.255.192.0 {
 +default-lease-time 3600;
 +option domain-name "ourisp";
 +option subnet-mask 255.255.192.0;
 +option routers 172.16.0.1;
 +include "/etc/dhcp3/multinet/ethernet.conf";
 +}
 +}
 +</code>
 +
 +
 +**Для того чтобы логировать не известные МАК'и настрим логирование /etc/rsysctl.conf или он может называться /etc/sysctl.conf Сталкивался с разным названием)) :**
 +<code>
 +!dhcpd
 + *.*                       /var/log/dhcpd.log
 +</code>
 +
 +
 +** Делаем шаманское движение, без которого в Ubuntu у вас не получится заставить dhcpd юзать каталог multinet **
 +
 +Редактируем nano /etc/apparmor.d/usr.sbin.dhcpd3
 +Добавляем туда следующее:
 +<code>
 +/var/www/billing/multinet/ r,
 +/var/www/billing/multinet/** r,
 +</code>
 +
 +
 +**После чего перезапускаем службы:**
 +<code>
 +/etc/init.d/rsysctl restart или /etc/init.d/rsyslog restart
 +/etc/init.d/bind9 restart
 +/etc/init.d/apache2 restart
 +/etc/init.d/dhcp3-server restart
 +</code>
 +
 +
 +
 +
 +
 +
 +======= Переходим к web интерфейсу - Настройка =======
 +
 +**
 +http://billing.isp/
 +Login: admin Password: demo (Желательно сменить пароль)**
 +
 +
 +**1. Добавляем классы трафика.**
 +<code>
 +Справочники ---> Классы трафика: 
 +
 +№.0 Название класса: Интернет
 +№.1 Название класса: Локалка
 +</code>
 +
 +
 +**2. Добавляем сети.**
 +<code>
 +Справочники ---> Сети
 +
 +Начальная ІР: 172.16.0.11 Последний ІР: 172.16.63.255
 +Тип сети: dhcpstatic
 +Network/CIDR: 172.16.0.0/18
 +
 +Услуги.
 +Название услуги: Интернет
 +</code>
 +
 +
 +**3. Создаём правило раздачи DHCP**
 +<code>
 +Справочники ---> DHCP
 +
 +Сеть: 172.16.0.0/18
 +Имя конфига DHCP: ethernet.conf
 +</code>
 +<code>
 +option domain-name "isp";
 +option domain-name-servers 172.16.0.1;
 +default-lease-time 3600;
 +max-lease-time 43200;
 +authoritative;
 +ddns-update-style none;
 +log-facility local7;
 +one-lease-per-client true;
 +deny duplicates;
 +
 +shared-network ourisp {
 +{SUBNETS}
 +}
 +</code>
 +
 +
 +
 +**Создаём безлимитный тариф.**
 +<code>
 +Справочники ---> Тарифы
 +Создать новый тариф
 +
 +Название тарифа: Unlim-1
 +Абонплата: 50
 +Предоплаченный трафик: 0
 +Подсчет трафика: up+down
 +Стоимость заморозки: 10
 +Цена не зависит от времени: Ставим галочку
 +Без порога: Ставим галочку
 +</code>
 +
 +
 +**5. Делаем ограничение по скорости для нашего тарифа.**
 +<code>
 +Справочники ---> Скорость тарифов
 +
 +Делаем скоростные ограничения 1мб/c
 +Скорость загрузки: 1024
 +Скорость отгрузки: 1024
 +</code>
 +
 +
 +**Добавляем наш будущий сервер доступа "NAS"**
 +<code>
 +Справочники ---> Сервера доступа (NAS)
 +
 +Сеть: 172.16.0.0/18
 +Тип сервера доступа: rscriptd
 +IP: 172.16.0.1
 +Имя сервера доступа: nas1
 +Ссылка на Bandwidthd: http://nas1.isp/
 +</code>
 +
 +======= Скрипты автозапуска =======
 +
 +** Создаём файл в /etc/init.d/ и редактируем его**
 +<code>
 +touch /etc/init.d/bil
 +chmod a+x /etc/init.d/bil
 +nano /etc/init.d/bil
 +</code>
 +
 +** Содержимое /etc/init.d/bil **
 +<code>
 +
 +#!  /bin/sh
 +# /etc/init.d/bil
 +
 +########################################################################
 +######################## Конфигурация путей ############################
 +
 +HTB="/etc/init.d/htb" #Путь к шейперу
 +IPT="/sbin/iptables" # Путь до IPTABLES
 +IPS="/usr/local/sbin/ipset" # Путь до IPSET
 +WAN_IP="ВАШ_ВНЕШНИЙ_IP" #IP адрес внешнего интерфейса
 +IF_WORLD="eth0" #Интерфейс смотрящий в грешный мир
 +SQL="/etc/init.d/mysql" # Путь до init.d скрипта MySQL
 +WEB="/etc/init.d/apache2" #  Путь до init.d скрипта Apache2
 +DHCP="/etc/init.d/dhcp3-server" # Путь до init.d скрипта Dhcp3-server
 +BAND="/etc/init.d/bandwidthd" # Путь до init.d скрипта Bandwindthd
 +STAR="/usr/sbin/stargazer" # Путь до bin файла stargazer
 +SOFTD="/etc/init.d/softflowd" #  Путь до init.d скрипта  Softflowd
 +#Softflowd для разных подсетей
 +SOFT="/usr/sbin/softflowd -i eth1 -n 127.0.0.1:42111" # Тут указываем интерфейс на котором висят пользователи (eth1)
 +
 +########################################################################
 +# Что будет происходить и запускаться при старте: (Конфигурация запуска)
 +########################################################################
 + case "$1" in
 +   start)
 +
 +echo "###################################################################################"
 +echo "###################################################################################"
 +echo "########################### Запускаем Биллинговую систему #########################"
 +echo "###################################################################################"
 +echo "###################################################################################"
 +
 +#Перезапускаем MySql, Apache, Dhcp3-server
 +$SQL restart
 +$WEB restart
 +$DHCP restart
 +
 +######################################################################################
 +
 +#Разрешаем хождение пакетов
 +echo 1 > /proc/sys/net/ipv4/ip_forward
 +
 +# Создаём списки для подсети: (172)
 +$IPS -N FFIN ipmap --network 172.16.0.0/18
 +$IPS -N FSNAT ipmap --network 172.16.0.0/18
 +$IPS -N FSNATDROP ipmap --network 172.16.0.0/18
 +
 +
 +#####################################
 +#     #
 +# Социальные запреты     #
 +#     #
 +#####################################
 +
 +# Создание правил доступа к социальным сетям (разрешённые IP адреса)
 +$IPS -N WHITE iptree
 + $IPS -A WHITE 172.16.0.30
 +        $IPS -A WHITE 172.16.0.38
 +        $IPS -A WHITE 172.16.0.39
 +        $IPS -A WHITE 172.16.0.41
 +        $IPS -A WHITE 172.16.0.42
 +        $IPS -A WHITE 172.16.0.43
 +        $IPS -A WHITE 172.16.0.44
 +        $IPS -A WHITE 172.16.0.45
 +        $IPS -A WHITE 172.16.0.46
 +        $IPS -A WHITE 172.16.0.51
 +        $IPS -A WHITE 172.16.0.64
 +
 +#Адреса серверов социальных сетей:
 + $IPS -N SOCIAL iptree
 + $IPS -A SOCIAL 217.20.152.240
 + $IPS -A SOCIAL 87.240.131.99
 + $IPS -A SOCIAL 87.240.143.242
 + $IPS -A SOCIAL 87.240.188.249
 + $IPS -A SOCIAL 93.186.224.240
 + $IPS -A SOCIAL 93.186.224.243
 +
 +# Разрешаем Белому списку посейщать социальные сети
 +$IPT -t filter -A FORWARD -m set --set WHITE src -m set --set SOCIAL dst -j ACCEPT
 +
 +# Запрещаем всем не вошедшим в белый список посейщать социальные сети
 +$IPT -t filter -A FORWARD -m set --set SOCIAL dst -j DROP
 +
 +
 +
 +# Добавляем наши адреса в NAT таблицу
 +#(172)
 +$IPT -t nat -A POSTROUTING -m set --set FSNAT src -o $IF_WORLD -j SNAT --to-source $WAN_IP
 +$IPT -t filter -I FORWARD -m set --set FFIN src,dst -j ACCEPT
 +$IPT -t filter -I FORWARD -m set --set FFIN dst,src -j ACCEPT
 +$IPT -t filter -I FORWARD -m set --set FSNATDROP src,dst -j DROP
 +$IPT -t filter -I FORWARD -m set --set FSNATDROP dst,src -j DROP
 +
 +
 +
 +
 +############################################################################################
 +
 +# Запускаем Bandwindthd
 +$BAND start
 +
 +# Запускаем HTB (Шейпер)
 +$HTB start
 +
 +# Запускаем прослушку Softflowd для (172)
 +$SOFT
 +
 +
 +# Запускаем Stargazer
 +$STAR
 +
 +echo "###################################################################################"
 +echo "###################################################################################"
 +echo "#################################### Биллинг запущен ##############################"
 +echo "###################################################################################"
 +echo "###################################################################################"
 +     ;;
 +
 +
 +
 +
 +
 +########################################################################################
 +########################################################################################
 +# Что будет происходить при остановке скрипта: (Конфигурация завершения работы биллинга)
 +########################################################################################
 +
 +   stop)
 +echo "###################################################################################"
 +echo "###################################################################################"
 +echo "############################# Выключаем систему Биллинга ##########################"
 +echo "###################################################################################"
 +echo "###################################################################################"
 +
 +
 +#Убиваем все процессы старгазера
 +killall stargazer
 +
 +#Удаляем правила шейпера
 +tc qdisc del dev eth1 root #(172)
 +
 +#Останавливаем softflowd
 +$SOFTD stop
 +
 +#Останавливаем Bandwindthd
 +$BAND stop
 +
 +#Останавливаем шейпер HTB
 +$HTB stop
 +
 +
 +
 +# Чистим правила в таблицах Iptables и удаляем списки IPSET
 +
 +#(172)
 +$IPT -F
 +$IPT -F -t nat
 +$IPS -F FFIN
 +$IPS -X FFIN
 +$IPS -F FSNAT
 +$IPS -X FSNAT
 +$IPS -F FSNATDROP
 +$IPS -X FSNATDROP
 +
 +
 +
 +
 +
 +# Удаляем конфигурацию доступа к социальным сетям
 +$IPS -X SOCIAL
 +$IPS -X WHITE
 +
 +#Удаляем учётные записи с конфигурацией шейпера.
 +rm -rf /etc/stargazer/dn/*
 +
 +echo "###################################################################################"
 +echo "###################################################################################"
 +echo "#################################### Биллинг выключен #############################"
 +echo "###################################################################################"     
 +echo "###################################################################################"
 +
 +     ;;
 +   *)
 +     echo "Usage: /etc/init.d/billing {start|stop}"
 +     exit 1
 +     ;;
 + esac
 +
 + exit 0
 +
 +
 +</code>
 +
 +
 +<code>update-rc.d bil defaults</code>
 +
 +
 +
 +**Теперь делаем рестарт и после него проверяем как всё запустилось**
 +<code>
 +shutdown -r now
 +</code>
 +
 +
 +
 +
 +
 +======= Скрипты OnConnect - OnDisconnect + Htb + IPSET =======
 +
 +** Скрипт OnConnect из стандартного набора ubilling совсем капельку отредактирован мной (путь к логам отредактирован, прежде чем копировать и вставлять убедитесь что вы создали все директории): **
 +<code>
 +
 +#!/bin/bash
 +#OnConnect
 +IFUP="eth1"
 +IFDOWN="eth1"
 +
 +
 +###########################
 +LOGIN=$1
 +IP=$2
 +CASH=$3
 +ID=$4
 +SPEED=`/etc/stargazer/GetSpeed $LOGIN`
 +UPSPEED=`/etc/stargazer/GetUpSpeed $LOGIN`
 +MAC=`/etc/stargazer/GetMac $LOGIN`
 +SCOUNT="Kbit"
 +
 +IPT="/sbin/iptables"
 +IPS="/usr/local/sbin/ipset"
 +tc="/sbin/tc"
 +arpcmd="/usr/sbin/arp"
 +cur_date=`date \+\%Y.\%m.\%d`
 +cur_time=`date \+\%H:\%M:\%S`
 +
 +# DELETE RULEZ
 +######################################################################
 +$IPT -t nat -D PREROUTING --src $IP --dst 0.0.0.0/0 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.1
 +$IPT -t filter -D INPUT -s $IP -j ACCEPT
 +while [ $? -eq 0 ]
 +do
 +$IPT -t filter -D INPUT -s $IP -j ACCEPT
 +done
 +
 +$IPT -t filter -D FORWARD -s $IP -j ACCEPT
 +while [ $? -eq 0 ]
 +do
 +$IPT -t filter -D FORWARD -s $IP -j ACCEPT
 +done
 +
 +$IPT -t filter -D FORWARD -d $IP -j ACCEPT
 +while [ $? -eq 0 ]
 +do
 +$IPT -t filter -D FORWARD -d $IP -j ACCEPT
 +done
 +
 +$IPT -t filter -D OUTPUT -d $IP -j ACCEPT
 +while [ $? -eq 0 ]
 +do
 +$IPT -t filter -D OUTPUT -d $IP -j ACCEPT
 +done
 +#######################################################################
 +
 +# fix user mac to ip
 +$arpcmd -d $IP $MAC
 +while [ $? -eq 0 ]
 +do
 +$arpcmd -d $IP $MAC
 +done
 +$arpcmd -s $IP $MAC
 +
 +############################
 +
 +declare -i mark1=$ID+101
 +declare -i mark2=$ID+4101
 +
 +$IPT -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark1
 +$IPT -t mangle -A FORWARD -s $IP -j MARK --set-mark $mark2
 +
 +
 +############################################
 +########## 1subnet
 +#Download
 +$tc class add dev $IFDOWN parent 1:1 classid 1:$mark1 htb rate $SPEED$SCOUNT
 +$tc filter add dev $IFDOWN parent 1: protocol ip prio 3 handle $mark1 fw classid 1:$mark1
 +
 +#Upload
 +$tc class add dev $IFUP parent 1:1 classid 1:$mark2 htb rate $UPSPEED$SCOUNT
 +$tc filter add dev $IFUP parent 1: protocol ip prio 3 handle $mark2 fw classid 1:$mark2
 +#############################################
 +
 +
 +
 +## Интернет для (172)
 +$IPS -D FSNATDROP $IP
 +while [ $? -eq 0 ]
 +do
 +$IPS -D FSNATDROP $IP
 +done
 +$IPS -A FFIN $IP
 +$IPS -A FSNAT $IP
 +
 +
 +#
 +################################################
 +
 +# DAY/NIGHT switcher
 +/bin/echo $SPEED:`expr $ID + 4101` > /etc/stargazer/dn/$LOGIN
 +
 +
 +# ADD TO LOG
 +echo "$cur_date $cur_time CONNECT: ID-$ID;LOGIN-$LOGIN;IP-$IP;CASH-$CASH;SPEED-$SPEED;UPSPEED-$UPSPEED,MAC-$MAC" >> /etc/stargazer/log/allconnect.log
 +
 +</code>
 +
 +
 +
 +
 +
 +** Скрипт OnDisconnect из стандартного набора ubilling совсем капельку отредактирован мной (путь к логам отредактирован, прежде чем копировать и вставлять убедитесь что вы создали все директории): **
 +<code>
 +
 +
 +#!/bin/bash
 +# OnDisconnect
 +IFUP="eth1"
 +IFDOWN="eth1"
 +
 +LOGIN=$1
 +IP=$2
 +CASH=$3
 +ID=$4
 +SPEED=`/etc/stargazer/GetSpeed $LOGIN`
 +UPSPEED=`/etc/stargazer/GetUpSpeed $LOGIN`
 +SCOUNT="Kbit"
 +
 +IPT="/sbin/iptables"
 +IPS="/usr/local/sbin/ipset"
 +tc="/sbin/tc"
 +
 +
 +# TIME FORMAT
 +cur_date=`date \+\%Y.\%m.\%d`
 +cur_time=`date \+\%H:\%M:\%S`
 +
 +# DELETE RULEZ  IPT
 +######################################################################
 +$IPT -t filter -D INPUT -s $IP -j ACCEPT
 +while [ $? -eq 0 ]
 +do
 +$IPT -t filter -D INPUT -s $IP -j ACCEPT
 +done
 +
 +$IPT -t filter -D FORWARD -s $IP -j ACCEPT
 +while [ $? -eq 0 ]
 +do
 +$IPT -t filter -D FORWARD -s $IP -j ACCEPT
 +done
 +
 +$IPT -t filter -D FORWARD -d $IP -j ACCEPT
 +while [ $? -eq 0 ]
 +do
 +$IPT -t filter -D FORWARD -d $IP -j ACCEPT
 +done
 +
 +$IPT -t filter -D OUTPUT -d $IP -j ACCEPT
 +while [ $? -eq 0 ]
 +do
 +$IPT -t filter -D OUTPUT -d $IP -j ACCEPT
 +done
 +
 +#########################
 +
 +declare -i mark1=$ID+101
 +declare -i mark2=$ID+4101
 +
 +
 +if [ -n "$mark1" ]
 +then
 +    $IPT -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark1
 +    while [ $? = 0 ]
 +    do
 +            $IPT -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark1
 +    done
 +fi
 +
 +if [ -n "$mark2" ]
 +then
 +    $IPT -t mangle -D FORWARD -s $IP -j MARK --set-mark $mark2
 +    while [ $? = 0 ]
 +    do
 +            $IPT -t mangle -D FORWARD -s $IP -j MARK --set-mark $mark2
 +    done
 +fi
 +
 +#############################################################################
 +
 +#Download
 +$tc filter del dev $IFDOWN parent 1: protocol ip prio 3 handle $mark1 fw classid                                                                              1:$mark
 +$tc class del dev $IFDOWN parent 1:1 classid 1:$mark1 htb rate $SPEED$SCOUNT
 +
 +#Upload
 +$tc filter del dev $IFUP parent 1: protocol ip prio 3 handle $mark2 fw classid 1                                                                             :$mark1
 +$tc class del dev $IFUP parent 1:1 classid 1:$mark2 htb rate $UPSPEED$SCOUNT
 +
 +############################################################################
 +
 +
 +## Отключить интернет (172)
 +$IPS -D FFIN $IP
 +while [ $? -eq 0 ]
 +do
 +$IPS -D FFIN $IP
 +done
 +$IPS -D FSNAT $IP
 +while [ $? -eq 0 ]
 +do
 +$IPS -D FSNAT $IP
 +done
 +$IPS -A FSNATDROP $IP
 +
 +
 +############################################################################
 +
 +
 +$IPT -t nat -A PREROUTING --src $IP --dst 0.0.0.0/0 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.1
 +
 +
 +
 +# DAY/NIGHT switcher
 +/bin/rm /etc/stargazer/dn/$LOGIN
 +
 +
 +echo "$cur_date $cur_time DISCONNECT: ID-$ID;LOGIN-$LOGIN;IP-$IP;CASH-$CASH" >> /etc/stargazer/log/allconnect.log
 +
 +</code>
 +
 +
 +
 +
 +======= Пробуем стартовать =======
 +Для начала остановим систему через скрипт bil:
 +<code>
 +/etc/init.d/bil stop
 +</code>
 +
 +Ну а теперь запустим эту систему:
 +<code>
 +/etc/init.d/bil start
 +</code>
 +
 +В теории всё должно работать.
 +
 +
 +======= Приколюхи от Ubilling: =======
 +
 +
 +** колонка "онлайн" с модными звёздочками **
 +
 +1. Лезем в конфиг /var/www/billing/config/alter.ini и редактируем:
 +<code>
 +DN_ONLINE_DETECT=1
 +</code>
 +
 +2. Убеждаемся что в скриптах OnConnect/OnDisconnect есть подобное:
 +OnConnect
 +<code>
 +/bin/echo $SPEED:`expr $ID + 4101` > /etc/stargazer/dn/$LOGIN
 +</code>
 +
 +OnDisconnect
 +<code>
 +/bin/rm /etc/stargazer/dn/$LOGIN
 +</code>
 +
 +
 +
 +3. Делаем симлинк на папку:
 +<code>
 +ln -fs /etc/stargazer/dn/ /var/www/billing/content/dn
 +</code>
 +
 +4. Радуемся звёздочкам =)
 +
 +======= Мой alter.ini =======
 +<code>
 +
 +;Опции поиска новых MAC адресов
 +;Если у вас в сети используються только статические пулы хостов DHCP переменная NMLEASES должна выглядеть как /var/log/messages, или как /var/db/dhcpd/dhcpd.leases или /var/log/dhcpd.log в случае раздачи динамикой не привязываясь к маку, ну либо вы выдаете неизвестным пользователям IP адреса из другой сети с заворотом на страницу с уведомлением. 
 +NMLEASES = /var/log/dhcpd.log
 +
 +;Показывать неизвестные МАС адреса в диалоге смены МАС 
 +NMLEASEMARK="DHCPDISCOVER"
 +
 +;Показывать неизвестные МАС адреса в диалоге смены МАС 
 +NMREP_INMACCHG=1
 +
 +Отображать новые MAC адреса в виде выпадающего списка 
 +SIMPLENEWMACSELECTOR=1
 +
 +;Подгружать плагины профиля пользователя
 +PROFILE_PLUGINS=1
 +
 +;Показывать название населенного пункта в адресных полях
 +CITY_DISPLAY=1
 +
 +;Рассматривать квартиру с нулевым номером как частный дом 
 +ZERO_TOLERANCE=1
 +
 +;Поддержка работы с доксис модемами 
 +DOCSIS_SUPPORT=0
 +
 +;Идентификатор сети модемов 
 +DOCSIS_MODEM_NETID=2
 +
 +; Пути к исходным и скомпилированным конфигам модемов 
 +docsis_cm_source=multinet/cm_source/
 +docsis_cm_bin=multinet/cm_bin/
 +
 +;Присваивание контрагентам улиц 
 +AGENTS_ASSIGN=1
 +
 +; Включать експорт оплат? (например в 1С) 
 +EXPORT_ENABLED=1
 +
 +;Идентификатор предпринимателя по умолчанию (используется если не присвоена улица либо вообще отключено присваивание улиц 
 +;множественным контрагентам) 
 +DEFAULT_ASSIGN_AGENT=1
 +
 +;Время начала и конца суток 
 +EXPORT_FROM_TIME=00:00:00
 +EXPORT_TO_TIME=23:59:59
 +
 +;Формат експорта 
 +EXPORT_FORMAT=xml
 +
 +; Експортировать только положительные оплаты? 
 +EXPORT_ONLY_POSITIVE=1
 +
 +;Шаблоны експорта 
 +EXPORT_TEMPLATE=config/1c.xml
 +EXPORT_TEMPLATE_HEAD=config/head-1c.xml
 +EXPORT_TEMPLATE_END=config/end-1c.xml
 +
 +;Входная и выходная кодировки експорта
 +EXPORT_ENCODING=utf-8
 +IMPORT_ENCODING=utf-8
 +
 +;Отображение трафика, может принимать значения: «float», «b», «Kb», «Mb», «Gb», «Tb» (Без кавычек) 
 +TRAFFSIZE= Gb
 +
 +;Производить ли ресет пользователя при смене тарифа 
 +TARIFFCHGRESET=1
 +
 +;Прятать ли пароли из административного интерфейса?
 +PASSWORDSHIDE=0
 +
 +;Определять онлайновость исходя из содержимого /content/dn ?
 +DN_ONLINE_DETECT=0
 +
 +;Человеко-читаемая трансляция имен сервисов в отчетах о оплатах 
 +TRANSLATE_PAYMENTS_NOTES=0
 +
 +;Подсвечивать «важные» поля профиля 
 +HIGHLIGHT_IMPORTANT=1
 +
 +;Генерировать nmchange.sh при посещении отчета по тарифам 
 +NMCHANGE=0
 +
 +;Подсвечивать строки в модуле «Онлайн» 
 +ONLINE_LIGHTER=1
 +
 +;Включить поддержку OpenPayz?
 +OPENPAYZ_SUPPORT=0
 +
 +;Ручной режим OpenPayz 
 +OPENPAYZ_MANUAL=1
 +
 +;ID типа платежа под с которым будут вноситься оплаты в ручном режиме 
 +OPENPAYZ_CASHTYPEID=1
 +
 +;Подсветка сегодняшних оплат 
 +HIGHLIGHT_TODAY_PAYMENTS=1
 +
 +;Включение расширенных фильтров в модуле «Онлайн», например, теперь можно найти всех Варфоломеев проживающих на улице Ленина 
 +ONLINE_FILTERS_EXT=1
 +
 +;При удалении пользователя не трогать его договор в целях обеспечения уникальности
 +STRICT_CONTRACTS_PROTECT=1
 +
 +;Контролировать ли уникальность номера договора? 
 +STRICT_CONTRACTS_UNIQUE=1
 +
 +;Включена ли поддержка учета КТВ? 
 +CATV_ENABLED=0
 +
 +;Показывать ли колонку LAT в модуле «Онлайн»? 
 +ONLINE_LAT=1
 +
 +;Включить массовую рассылку сообщений авторизаторам при помощи stargazer? 
 +MASSSEND_ENABLED=1
 +
 +;Использовать ли рассылку хелпдеском вместо использования механики рассылки stargazer? 
 +MASSSEND_SAFE=1
 +
 +; Максимально допустимый уровень кредита, возможны значения от 0 до «много-много», DISABLED если не лимитируем.
 +STRICT_CREDIT_LIMIT=DISABLED
 +
 +; Включено ли связывание пользователей (ака корпоративные пользователи)? 
 +USER_LINKING_ENABLED=1
 +
 +; Поле для связывания (IP, login… или еще какое-то) 
 +USER_LINKING_FIELD="IP"
 +
 +;ID доп. поля профиля по которому определяется факт связанности
 +USER_LINKING_CFID=24
 +
 +; Репликация тарифа родительского пользователя на дочерних 
 +USER_LINKING_TARIFF=1
 +
 +; Репликация денежных операций родительского пользователя на дочерних 
 +USER_LINKING_CASH=1
 +
 +;  Репликация кредита родительского пользователя на дочерних 
 +USER_LINKING_CREDIT=1
 +
 +;Путь к логфайлу stargazer 
 +STG_LOG_PATH=/etc/stargazer/log/stargazer.log
 +
 +;Путь к arping 
 +ARPING=/usr/sbin/arping
 +
 +;Интерфейс с которого будет производиться arping 
 +ARPING_IFACE=-i vlan101
 +
 +;Включать ли модуль ARPdiag? Имеет смысл если используется статическая адресация а также arpwatch
 +ARPDIAG_ENABLED=1
 +
 +;Путь к логу arpwatch 
 +ARPDIAG_LOG=/var/log/messages
 +
 +;Опция отвечающая за то, какие таблички должны быть исключены при бекапе БД 
 +NOBACKUPTABLESLIKE=logs_,detailstat,weblogs
 +
 +;Может ли пользователь изменять размер иконок в панели задач?
 +TB_ICONCUSTOMSIZE=1
 +
 +;Генерировать рандомный MAC в диалоге ручной смены MAC? 
 +MACCHANGERANDOMDEFAULT=1
 +
 +; Если значение установлено в 1 - будет вызван ресет пользователя при изменении любого кастомного поля профиля
 +RESETONCFCHANGE=1
 +RESETONTAGCHANGE=1
 +
 +; Показывать ли уведомление о новых тикетах в «Панели задач»? 
 +TB_NEWTICKETNOTIFY=1
 +
 +Включен ли импорт банковских выписок? 
 +BS_ENABLED=1
 +
 +;Входная и выходная кодировки банковских выписок, в норме может потребоваться модификация только входной.
 +BS_INCHARSET="cp866"
 +BS_OUTCHARSET="utf-8"
 +
 +;Опции импорта банковских выписок (черная магия, руками не трогать) 
 +BS_OPTIONS="|,13,3,4,5"
 +
 +;Тип оплат для денег разнесенных автоматом по выпискам 
 +BS_CASHTYPE=1
 +
 +;Режим высокой производительности модуля «Онлайн»: Ajax, отложенный рендеринг, 
 +;максимально урезанный функционал. Неплохо работает при абонбазах 10-60к абонентов,
 +;не вызывая своим видом возрастания нагрузки на сервер, как и коллапса браузера 
 +ONLINE_HP_MODE=1
 +
 +; Запрет на редактирование логинов-паролей-айпишек при регистрации, рекомендуется включить и не трогать руками
 +SAFE_REGMODE=1
 +
 +;Количество тикетов на стриницу в хелпдеске
 +TICKETS_PERPAGE=50
 +
 +;Включен ли учет НДС? 
 +NDS_ENABLED=0
 +
 +;ID тега обозначающего пользователя плательщика НДС 
 +NDS_TAGID=9
 +
 +;Процентная ставка НДС 
 +NDS_TAX_PERCENT=20
 +
 +;Дополнительные ссылки к «Финансовым операциям» из модуля онлайн и результатов поиска 
 +FAST_CASH_LINK=0
 +
 +;Включен ли мониторинг сигнала на Mikrotik? 
 +MTSIGMON_ENABLED=0
 +
 +;Используется ли сервис приема заявок на подключение? 
 +SIGREQ_ENABLED=0
 +
 +;Время в минутах по прошествию которого все свитчи будут перепинговываться. 
 +SW_PINGTIMEOUT=2
 +
 +;Включен ли показ непингнувшихся свитчей на панели задач? 
 +TB_SWITCHMON=1
 +
 +;Включено ли API удаленного вызова пароцедур? 
 +REMOTEAPI_ENABLED=1 
 +
 +;Включена ли поддержка шаблонизации аттрибутов Radius? 
 +RADIUST_ENABLED=0
 +
 +
 +</code>
 +
 +======= Источники и автор статьи: =======
 +
 +
 +**Основные источники информации которые помогли написать эту инструкцию:**
 +
 +local.com.ua
 +
 +wiki.ubilling.net.ua
 +
 +habrahabr.ru
 +
 +
 +**Автор инструкции:** [[http://local.com.ua/forum/user/19095-mescaline/|Сергей - Mescaline ]](c)