Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

setupubuntuserver1010 [2013/02/25 10:54]
mescaline [Установка и настройка Htb]
setupubuntuserver1010 [2013/02/25 10:55] (текущий)
mescaline [Установка и настройка Htb]
Строка 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/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)
  
setupubuntuserver1010.txt · Последние изменения: 2013/02/25 10:55 — mescaline
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki