Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія | |||
setupubuntuserver1010 [2023/06/15 20:36] nightfly знищено |
— (поточний) | ||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
- | **Установка Stargazer+Ubilling на Ubuntu Server 10.10** | ||
- | |||
- | ====== Установка требуемого внешнего ПО на сервер с Ubilling ====== | ||
- | |||
- | < | ||
- | 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 | ||
- | </ | ||
- | При установке программ вас попросят ввести пароль для root от mysql. | ||
- | |||
- | |||
- | **Включаем мод в php:** | ||
- | < | ||
- | |||
- | **Редактируем / | ||
- | < | ||
- | User_Alias BILLING = www-data | ||
- | BILLING | ||
- | </ | ||
- | |||
- | |||
- | **Делаем симлинк на Bandwindthd** | ||
- | < | ||
- | ln -fs / | ||
- | </ | ||
- | |||
- | |||
- | ======= Установка IPSET ======= | ||
- | |||
- | **1. Качаем архив IPSET 4.x версии он нормально работает на Maverick (в последних версиях 12.04 можно установить через apt-get install ipset)** | ||
- | [[http:// | ||
- | |||
- | **2. Распаковываем: | ||
- | < | ||
- | |||
- | **3. Заходим в папку собираем и включаем: | ||
- | < | ||
- | cd ipset-4.5/ | ||
- | |||
- | make && make install && make clean | ||
- | |||
- | depmod && depmod -A | ||
- | modprobe ip_set | ||
- | </ | ||
- | Всё должно пройти без ошибок. | ||
- | |||
- | И собственно всё.. Ipset уже готов служить вам =) | ||
- | |||
- | ======= Установка и настройка Htb ======= | ||
- | |||
- | 0. Качаем Htb: [[http:// | ||
- | |||
- | 1. В скрипте htb.init проверяем и корректируем по вкусу переменные HTB_PATH, HTB_CACHE, TC, IP, MP. | ||
- | |||
- | 2. < | ||
- | |||
- | 3. cd / | ||
- | touch eth0 | ||
- | touch eth1 | ||
- | touch eth0-2.root | ||
- | touch eth1-2.root | ||
- | </ | ||
- | |||
- | |||
- | nano eth0 < | ||
- | DEFAULT=0 | ||
- | R2Q=100 | ||
- | </ | ||
- | |||
- | nano eth1 | ||
- | < | ||
- | DEFAULT=0 | ||
- | R2Q=100 | ||
- | </ | ||
- | |||
- | nano eth0-2.root | ||
- | < | ||
- | RATE=100Mbit | ||
- | CEIL=100Mbit | ||
- | </ | ||
- | |||
- | nano eth1-2.root | ||
- | < | ||
- | RATE=100Mbit | ||
- | CEIL=100Mbit | ||
- | </ | ||
- | |||
- | **Проверить работу скрипта htb.init, кроме спидтестов, | ||
- | < | ||
- | tc class show dev ВАШ_ИНТЕРФЕЙС | ||
- | tc qdisc show dev ВАШ_ИНТЕРФЕЙС | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ======= Установка Stargazer ======= | ||
- | < | ||
- | mkdir / | ||
- | cd / | ||
- | wget http:// | ||
- | tar zxvf stg-2.407-p1.tar.gz | ||
- | cd stg-2.407-p1/ | ||
- | ./build | ||
- | make install | ||
- | cd ../sgconf && ./build && make && make install | ||
- | cd ../ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | ======= Редактирование конфигов и настройка опций ======= | ||
- | |||
- | |||
- | **Редактируем конфиг / | ||
- | __Вот здесь очень сомнительное место. Возможно стоит его не рассматривать.__ | ||
- | Сделайте симлинк на cap_nf и remote_script из / | ||
- | и желательно удалить линк на cap_ether говорят он не вменяемый =) | ||
- | И давайте сразу создадим директорию под логи - для удобства: | ||
- | |||
- | < | ||
- | rm / | ||
- | ln -fs / | ||
- | mkdir / | ||
- | </ | ||
- | __ | ||
- | Конец сомнительного места.__ | ||
- | |||
- | < | ||
- | ################################################################################ | ||
- | # Stargazer Configuration file # | ||
- | ################################################################################ | ||
- | |||
- | # путь к логфайлу | ||
- | LogFile = / | ||
- | |||
- | |||
- | # путь к pid | ||
- | PIDFile = / | ||
- | |||
- | |||
- | # файл с описанием класов трафика | ||
- | Rules = / | ||
- | |||
- | |||
- | # время записи детальной статистики в базу | ||
- | DetailStatWritePeriod = 1/4 | ||
- | |||
- | |||
- | # время сброса счетчиков трафика в базу | ||
- | StatWritePeriod = 10 | ||
- | |||
- | |||
- | # день снятия абонплаты | ||
- | DayFee = 1 | ||
- | |||
- | |||
- | # это последний день месяца? | ||
- | DayFeeIsLastDay = no | ||
- | |||
- | |||
- | # день обнуления счетчиков трафика | ||
- | DayResetTraff = 1 | ||
- | |||
- | |||
- | # " | ||
- | SpreadFee = no | ||
- | |||
- | |||
- | # позволять пользователю доступ если у него остался предоплаченый трафик? | ||
- | FreeMbAllowInet = no | ||
- | |||
- | |||
- | # писать стоимость предоплаченого трафика? | ||
- | WriteFreeMbTraffCost = yes | ||
- | |||
- | |||
- | # снимать полную абонплату ежемесячно? | ||
- | FullFee = yes | ||
- | |||
- | |||
- | # названия класов трафика относительно / | ||
- | < | ||
- | DirName0 = Internet | ||
- | DirName1 = Local | ||
- | DirName2 = | ||
- | DirName3 = | ||
- | DirName4 = | ||
- | DirName5 = | ||
- | DirName6 = | ||
- | DirName7 = | ||
- | DirName8 = | ||
- | DirName9 = | ||
- | </ | ||
- | ExecutersNum = 1 | ||
- | |||
- | |||
- | # путь модулей | ||
- | ModulesPath = / | ||
- | |||
- | |||
- | # модуль хранения данных | ||
- | < | ||
- | # хост MySQL | ||
- | dbhost = localhost | ||
- | # имя базы | ||
- | dbname = stg | ||
- | # логин пользователя MySQL | ||
- | dbuser = root | ||
- | # пароль пользователя MySQL | ||
- | rootdbpass = ваш_пароль | ||
- | </ | ||
- | < | ||
- | |||
- | |||
- | # модуль авторизации AlwaysOnline (рекомендуется) | ||
- | <Module auth_ao> | ||
- | </ | ||
- | |||
- | |||
- | # модуль авторизации штатного авторизатора stargazer | ||
- | <Module auth_ia> | ||
- | Port = 5555 | ||
- | UserDelay = 60 | ||
- | UserTimeout = 65 | ||
- | FreeMb = cash | ||
- | </ | ||
- | |||
- | |||
- | # модуль коллектора трафика NetFlow | ||
- | <Module conf_sg> | ||
- | Port = 5555 | ||
- | </ | ||
- | |||
- | <Module cap_nf> | ||
- | TCPPort = 42111 | ||
- | UDPPort = 42111 | ||
- | </ | ||
- | |||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | </ | ||
- | |||
- | |||
- | |||
- | **Редактируем конфиг / | ||
- | < | ||
- | |||
- | ALL | ||
- | ALL | ||
- | |||
- | </ | ||
- | |||
- | |||
- | **И так первый запуск stargazer' | ||
- | < | ||
- | |||
- | **Теперь проверим создались ли базы в MySQL** | ||
- | < | ||
- | |||
- | В ответ должны увидеть это: | ||
- | < | ||
- | Tables_in_stg | ||
- | |||
- | admins | ||
- | messages | ||
- | stat | ||
- | tariffs | ||
- | users | ||
- | </ | ||
- | |||
- | |||
- | **Выключаем stargazer: | ||
- | < | ||
- | |||
- | **Теперь можно приступить к установке Ubilling' | ||
- | |||
- | < | ||
- | mkdir billing | ||
- | cd billing | ||
- | wget http:// | ||
- | tar zxvf ub.tgz | ||
- | </ | ||
- | |||
- | **Тут у меня возникала проблема с правами на файлы..** | ||
- | < | ||
- | chmod -R 0777 content/ config/ multinet/ exports/ remote_nas.conf vservices.php | ||
- | </ | ||
- | |||
- | |||
- | **Заливаем дамп mysql из ubilling:** | ||
- | < | ||
- | |||
- | **Проверяем что дамп залит: | ||
- | < | ||
- | В ответ увидим много таблиц: | ||
- | < | ||
- | +-----------------+ | ||
- | | 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 | | ||
- | +-----------------+ | ||
- | </ | ||
- | |||
- | **Редактируем конфиг в ubilling: / | ||
- | |||
- | < | ||
- | ;Хост БД | ||
- | server = " | ||
- | ;порт MySQL | ||
- | port = " | ||
- | ;логин пользователя MySQL | ||
- | username = " | ||
- | ;его пароль | ||
- | password = " | ||
- | ;имя базы | ||
- | db = " | ||
- | character = " | ||
- | prefix = " | ||
- | |||
- | **Редактирем конфиг в ubilling / | ||
- | < | ||
- | ; метод взаимодействия со stargazer | ||
- | baseconf = sgconfxml | ||
- | |||
- | ; путь к sgconf | ||
- | SGCONF=/ | ||
- | |||
- | ; путь к sgconf_xml | ||
- | SGCONFXML=/ | ||
- | |||
- | ; хост на котором запущен stargazer | ||
- | STG_HOST=localhost | ||
- | |||
- | ; порт конфигуратора | ||
- | STG_PORT=5555 | ||
- | |||
- | ; порт XMLRPC | ||
- | XMLRPC_PORT=8081 | ||
- | |||
- | ; логин администратора stargazer (по умолчанию admin) | ||
- | STG_LOGIN=admin | ||
- | |||
- | ; пароль администратора stargazer (по умолчанию 1234567) | ||
- | STG_PASSWD=123456 | ||
- | |||
- | ;Пути окружения | ||
- | ;путь к sudo | ||
- | SUDO=/ | ||
- | |||
- | ;путь к top в пакетном режиме | ||
- | TOP = / | ||
- | |||
- | ;путь к cat | ||
- | CAT=/ | ||
- | |||
- | ;путь к grep | ||
- | GREP=/ | ||
- | |||
- | ;путь к RC скрипту isc-dhcpd | ||
- | RC_DHCPD=/ | ||
- | |||
- | STGPID=/ | ||
- | |||
- | ;путь к uptime | ||
- | UPTIME=/ | ||
- | |||
- | ;путь к ping | ||
- | PING=/ | ||
- | |||
- | ;путь к PHPSysInfo | ||
- | PHPSYSINFO=phpsysinfo/ | ||
- | |||
- | STGNASHUP=1 | ||
- | |||
- | ;язык по умолчанию | ||
- | LANG = ru | ||
- | |||
- | ; | ||
- | TASKBAR_ICON_SIZE = 64 | ||
- | |||
- | ; опции регистрации новых пользователей | ||
- | ; регистрировать новых пользователей со случайным MAC | ||
- | REGRANDOM_MAC=1 | ||
- | |||
- | ; регистрировать новых пользователей с флагом " | ||
- | REGALWONLINE=1 | ||
- | |||
- | ; регистрировать новых пользователей с отключенной детальной статистикой | ||
- | REGDISABLEDSTAT=1 | ||
- | |||
- | </ | ||
- | |||
- | |||
- | **Не забываем указать путь на будующий " | ||
- | < | ||
- | </ | ||
- | |||
- | |||
- | **Создаём симлинки на каталог и файл - без них ни чего не заработает =)** | ||
- | < | ||
- | ln -fs / | ||
- | ln -fs / | ||
- | </ | ||
- | |||
- | |||
- | |||
- | **Копируем стандартные скрипты из Ubilling в stargazer и выставляем на них права.** | ||
- | < | ||
- | cp -f / | ||
- | chmod a+x / | ||
- | </ | ||
- | |||
- | |||
- | **Редактируем / | ||
- | < | ||
- | host = localhost | ||
- | username = root | ||
- | password = ваш_проль | ||
- | database = stg | ||
- | </ | ||
- | |||
- | |||
- | |||
- | **Запускаем stargazer** | ||
- | < | ||
- | |||
- | |||
- | |||
- | |||
- | ====== Создание зоны .isp, редактирование хостов и DHCP ====== | ||
- | |||
- | ** Редактируем файл / | ||
- | < | ||
- | include "/ | ||
- | include "/ | ||
- | include "/ | ||
- | |||
- | zone " | ||
- | type master; | ||
- | file "/ | ||
- | }; | ||
- | |||
- | </ | ||
- | |||
- | |||
- | **Создаём файл и редактируем его** | ||
- | < | ||
- | cd /etc/bind/ | ||
- | touch db.isp | ||
- | nano db.isp | ||
- | </ | ||
- | |||
- | |||
- | **Содержимое / | ||
- | < | ||
- | $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 # | ||
- | |||
- | </ | ||
- | |||
- | ** Редактируем / | ||
- | < | ||
- | acl isp { | ||
- | 172.16.0.0/ | ||
- | }; | ||
- | options { | ||
- | directory "/ | ||
- | |||
- | auth-nxdomain no; # conform to RFC1035 | ||
- | listen-on-v6 { any; }; | ||
- | allow-query {" | ||
- | }; | ||
- | |||
- | </ | ||
- | |||
- | |||
- | **Настройка хостов в Apache2 / | ||
- | < | ||
- | < | ||
- | ServerName billing.isp | ||
- | DocumentRoot "/ | ||
- | AddDefaultCharset utf-8 | ||
- | </ | ||
- | |||
- | |||
- | < | ||
- | ServerName stat.isp | ||
- | DocumentRoot "/ | ||
- | AddDefaultCharset utf-8 | ||
- | </ | ||
- | |||
- | < | ||
- | ServerName nas1.isp | ||
- | DocumentRoot "/ | ||
- | AddDefaultCharset utf-8 | ||
- | </ | ||
- | </ | ||
- | |||
- | **Настройка DHCP | ||
- | Чтобы dhcp заработал нужно отредактировать / | ||
- | < | ||
- | INTERFACES=" | ||
- | </ | ||
- | Это интерфейс на котором у нас в дальнейшем будут раздаваться IP адреса для абонентов. | ||
- | |||
- | |||
- | **Редактируем / | ||
- | < | ||
- | option domain-name " | ||
- | 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 " | ||
- | option subnet-mask 255.255.192.0; | ||
- | option routers 172.16.0.1; | ||
- | include "/ | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | **Для того чтобы логировать не известные МАК' | ||
- | < | ||
- | !dhcpd | ||
- | | ||
- | </ | ||
- | |||
- | |||
- | ** Делаем шаманское движение, | ||
- | |||
- | Редактируем nano / | ||
- | Добавляем туда следующее: | ||
- | < | ||
- | / | ||
- | / | ||
- | </ | ||
- | |||
- | |||
- | **После чего перезапускаем службы: | ||
- | < | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ======= Переходим к web интерфейсу - Настройка ======= | ||
- | |||
- | ** | ||
- | http:// | ||
- | Login: admin Password: demo (Желательно сменить пароль)** | ||
- | |||
- | |||
- | **1. Добавляем классы трафика.** | ||
- | < | ||
- | Справочники ---> Классы трафика: | ||
- | |||
- | №.0 Название класса: | ||
- | №.1 Название класса: | ||
- | </ | ||
- | |||
- | |||
- | **2. Добавляем сети.** | ||
- | < | ||
- | Справочники ---> Сети | ||
- | |||
- | Начальная ІР: 172.16.0.11 Последний ІР: 172.16.63.255 | ||
- | Тип сети: dhcpstatic | ||
- | Network/ | ||
- | |||
- | Услуги. | ||
- | Название услуги: | ||
- | </ | ||
- | |||
- | |||
- | **3. Создаём правило раздачи DHCP** | ||
- | < | ||
- | Справочники ---> DHCP | ||
- | |||
- | Сеть: 172.16.0.0/ | ||
- | Имя конфига DHCP: ethernet.conf | ||
- | </ | ||
- | < | ||
- | option domain-name " | ||
- | 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} | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | |||
- | **Создаём безлимитный тариф.** | ||
- | < | ||
- | Справочники ---> Тарифы | ||
- | Создать новый тариф | ||
- | |||
- | Название тарифа: | ||
- | Абонплата: | ||
- | Предоплаченный трафик: | ||
- | Подсчет трафика: | ||
- | Стоимость заморозки: | ||
- | Цена не зависит от времени: | ||
- | Без порога: | ||
- | </ | ||
- | |||
- | |||
- | **5. Делаем ограничение по скорости для нашего тарифа.** | ||
- | < | ||
- | Справочники ---> Скорость тарифов | ||
- | |||
- | Делаем скоростные ограничения 1мб/c | ||
- | Скорость загрузки: | ||
- | Скорость отгрузки: | ||
- | </ | ||
- | |||
- | |||
- | **Добавляем наш будущий сервер доступа " | ||
- | < | ||
- | Справочники ---> Сервера доступа (NAS) | ||
- | |||
- | Сеть: 172.16.0.0/ | ||
- | Тип сервера доступа: | ||
- | IP: 172.16.0.1 | ||
- | Имя сервера доступа: | ||
- | Ссылка на Bandwidthd: http:// | ||
- | </ | ||
- | |||
- | ======= Скрипты автозапуска ======= | ||
- | |||
- | ** Создаём файл в / | ||
- | < | ||
- | touch / | ||
- | chmod a+x / | ||
- | nano / | ||
- | </ | ||
- | |||
- | ** Содержимое / | ||
- | < | ||
- | |||
- | #! /bin/sh | ||
- | # / | ||
- | |||
- | ######################################################################## | ||
- | ######################## | ||
- | |||
- | HTB="/ | ||
- | IPT="/ | ||
- | IPS="/ | ||
- | WAN_IP=" | ||
- | IF_WORLD=" | ||
- | SQL="/ | ||
- | WEB="/ | ||
- | DHCP="/ | ||
- | BAND="/ | ||
- | STAR="/ | ||
- | SOFTD="/ | ||
- | #Softflowd для разных подсетей | ||
- | SOFT="/ | ||
- | |||
- | ######################################################################## | ||
- | # Что будет происходить и запускаться при старте: | ||
- | ######################################################################## | ||
- | case " | ||
- | | ||
- | |||
- | echo "###################################################################################" | ||
- | echo "###################################################################################" | ||
- | echo "########################### | ||
- | echo "###################################################################################" | ||
- | echo "###################################################################################" | ||
- | |||
- | # | ||
- | $SQL restart | ||
- | $WEB restart | ||
- | $DHCP restart | ||
- | |||
- | ###################################################################################### | ||
- | |||
- | # | ||
- | echo 1 > / | ||
- | |||
- | # Создаём списки для подсети: | ||
- | $IPS -N FFIN ipmap --network 172.16.0.0/ | ||
- | $IPS -N FSNAT ipmap --network 172.16.0.0/ | ||
- | $IPS -N FSNATDROP ipmap --network 172.16.0.0/ | ||
- | |||
- | |||
- | ##################################### | ||
- | # # | ||
- | # | ||
- | # # | ||
- | ##################################### | ||
- | |||
- | # Создание правил доступа к социальным сетям (разрешённые 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) | ||
- | |||
- | # | ||
- | $SOFTD stop | ||
- | |||
- | # | ||
- | $BAND stop | ||
- | |||
- | # | ||
- | $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 / | ||
- | |||
- | echo "###################################################################################" | ||
- | echo "###################################################################################" | ||
- | echo "#################################### | ||
- | echo "###################################################################################" | ||
- | echo "###################################################################################" | ||
- | |||
- | ;; | ||
- | *) | ||
- | echo " | ||
- | exit 1 | ||
- | ;; | ||
- | esac | ||
- | |||
- | exit 0 | ||
- | |||
- | |||
- | </ | ||
- | |||
- | |||
- | < | ||
- | |||
- | |||
- | |||
- | **Теперь делаем рестарт и после него проверяем как всё запустилось** | ||
- | < | ||
- | shutdown -r now | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ======= Скрипты OnConnect - OnDisconnect + Htb + IPSET ======= | ||
- | |||
- | ** Скрипт OnConnect из стандартного набора ubilling совсем капельку отредактирован мной (путь к логам отредактирован, | ||
- | < | ||
- | |||
- | #!/bin/bash | ||
- | #OnConnect | ||
- | IFUP=" | ||
- | IFDOWN=" | ||
- | |||
- | |||
- | ########################### | ||
- | LOGIN=$1 | ||
- | IP=$2 | ||
- | CASH=$3 | ||
- | ID=$4 | ||
- | SPEED=`/ | ||
- | UPSPEED=`/ | ||
- | MAC=`/ | ||
- | SCOUNT=" | ||
- | |||
- | IPT="/ | ||
- | IPS="/ | ||
- | tc="/ | ||
- | arpcmd="/ | ||
- | cur_date=`date \+\%Y.\%m.\%d` | ||
- | cur_time=`date \+\%H: | ||
- | |||
- | # 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: | ||
- | |||
- | |||
- | # ADD TO LOG | ||
- | echo " | ||
- | |||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ** Скрипт OnDisconnect из стандартного набора ubilling совсем капельку отредактирован мной (путь к логам отредактирован, | ||
- | < | ||
- | |||
- | |||
- | #!/bin/bash | ||
- | # OnDisconnect | ||
- | IFUP=" | ||
- | IFDOWN=" | ||
- | |||
- | LOGIN=$1 | ||
- | IP=$2 | ||
- | CASH=$3 | ||
- | ID=$4 | ||
- | SPEED=`/ | ||
- | UPSPEED=`/ | ||
- | SCOUNT=" | ||
- | |||
- | IPT="/ | ||
- | IPS="/ | ||
- | tc="/ | ||
- | |||
- | |||
- | # TIME FORMAT | ||
- | cur_date=`date \+\%Y.\%m.\%d` | ||
- | cur_time=`date \+\%H: | ||
- | |||
- | # 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 " | ||
- | 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 " | ||
- | 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 | ||
- | $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 : | ||
- | $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 / | ||
- | |||
- | |||
- | echo " | ||
- | |||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | ======= Пробуем стартовать ======= | ||
- | Для начала остановим систему через скрипт bil: | ||
- | < | ||
- | / | ||
- | </ | ||
- | |||
- | Ну а теперь запустим эту систему: | ||
- | < | ||
- | / | ||
- | </ | ||
- | |||
- | В теории всё должно работать. | ||
- | |||
- | |||
- | ======= Приколюхи от Ubilling: ======= | ||
- | |||
- | |||
- | ** колонка " | ||
- | |||
- | 1. Лезем в конфиг / | ||
- | < | ||
- | DN_ONLINE_DETECT=1 | ||
- | </ | ||
- | |||
- | 2. Убеждаемся что в скриптах OnConnect/ | ||
- | OnConnect | ||
- | < | ||
- | /bin/echo $SPEED: | ||
- | </ | ||
- | |||
- | OnDisconnect | ||
- | < | ||
- | /bin/rm / | ||
- | </ | ||
- | |||
- | |||
- | |||
- | 3. Делаем симлинк на папку: | ||
- | < | ||
- | ln -fs / | ||
- | </ | ||
- | |||
- | 4. Радуемся звёздочкам =) | ||
- | |||
- | ======= Мой alter.ini ======= | ||
- | < | ||
- | |||
- | ;Опции поиска новых MAC адресов | ||
- | ;Если у вас в сети используються только статические пулы хостов DHCP переменная NMLEASES должна выглядеть как / | ||
- | NMLEASES = / | ||
- | |||
- | ; | ||
- | NMLEASEMARK=" | ||
- | |||
- | ; | ||
- | 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/ | ||
- | docsis_cm_bin=multinet/ | ||
- | |||
- | ; | ||
- | AGENTS_ASSIGN=1 | ||
- | |||
- | ; Включать експорт оплат? (например в 1С) | ||
- | EXPORT_ENABLED=1 | ||
- | |||
- | ; | ||
- | ; | ||
- | DEFAULT_ASSIGN_AGENT=1 | ||
- | |||
- | ;Время начала и конца суток | ||
- | EXPORT_FROM_TIME=00: | ||
- | EXPORT_TO_TIME=23: | ||
- | |||
- | ; | ||
- | EXPORT_FORMAT=xml | ||
- | |||
- | ; Експортировать только положительные оплаты? | ||
- | EXPORT_ONLY_POSITIVE=1 | ||
- | |||
- | ; | ||
- | EXPORT_TEMPLATE=config/ | ||
- | EXPORT_TEMPLATE_HEAD=config/ | ||
- | EXPORT_TEMPLATE_END=config/ | ||
- | |||
- | ; | ||
- | EXPORT_ENCODING=utf-8 | ||
- | IMPORT_ENCODING=utf-8 | ||
- | |||
- | ; | ||
- | TRAFFSIZE= Gb | ||
- | |||
- | ; | ||
- | TARIFFCHGRESET=1 | ||
- | |||
- | ; | ||
- | PASSWORDSHIDE=0 | ||
- | |||
- | ; | ||
- | DN_ONLINE_DETECT=0 | ||
- | |||
- | ; | ||
- | TRANSLATE_PAYMENTS_NOTES=0 | ||
- | |||
- | ; | ||
- | HIGHLIGHT_IMPORTANT=1 | ||
- | |||
- | ; | ||
- | NMCHANGE=0 | ||
- | |||
- | ; | ||
- | ONLINE_LIGHTER=1 | ||
- | |||
- | ; | ||
- | OPENPAYZ_SUPPORT=0 | ||
- | |||
- | ; | ||
- | 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 | ||
- | |||
- | ; | ||
- | ONLINE_LAT=1 | ||
- | |||
- | ; | ||
- | MASSSEND_ENABLED=1 | ||
- | |||
- | ; | ||
- | MASSSEND_SAFE=1 | ||
- | |||
- | ; Максимально допустимый уровень кредита, | ||
- | STRICT_CREDIT_LIMIT=DISABLED | ||
- | |||
- | ; Включено ли связывание пользователей (ака корпоративные пользователи)? | ||
- | USER_LINKING_ENABLED=1 | ||
- | |||
- | ; Поле для связывания (IP, login… или еще какое-то) | ||
- | USER_LINKING_FIELD=" | ||
- | |||
- | ;ID доп. поля профиля по которому определяется факт связанности | ||
- | USER_LINKING_CFID=24 | ||
- | |||
- | ; Репликация тарифа родительского пользователя на дочерних | ||
- | USER_LINKING_TARIFF=1 | ||
- | |||
- | ; Репликация денежных операций родительского пользователя на дочерних | ||
- | USER_LINKING_CASH=1 | ||
- | |||
- | ; Репликация кредита родительского пользователя на дочерних | ||
- | USER_LINKING_CREDIT=1 | ||
- | |||
- | ;Путь к логфайлу stargazer | ||
- | STG_LOG_PATH=/ | ||
- | |||
- | ;Путь к arping | ||
- | ARPING=/ | ||
- | |||
- | ; | ||
- | ARPING_IFACE=-i vlan101 | ||
- | |||
- | ; | ||
- | ARPDIAG_ENABLED=1 | ||
- | |||
- | ;Путь к логу arpwatch | ||
- | ARPDIAG_LOG=/ | ||
- | |||
- | ;Опция отвечающая за то, какие таблички должны быть исключены при бекапе БД | ||
- | NOBACKUPTABLESLIKE=logs_, | ||
- | |||
- | ;Может ли пользователь изменять размер иконок в панели задач? | ||
- | TB_ICONCUSTOMSIZE=1 | ||
- | |||
- | ; | ||
- | MACCHANGERANDOMDEFAULT=1 | ||
- | |||
- | ; Если значение установлено в 1 - будет вызван ресет пользователя при изменении любого кастомного поля профиля | ||
- | RESETONCFCHANGE=1 | ||
- | RESETONTAGCHANGE=1 | ||
- | |||
- | ; Показывать ли уведомление о новых тикетах в «Панели задач»? | ||
- | TB_NEWTICKETNOTIFY=1 | ||
- | |||
- | Включен ли импорт банковских выписок? | ||
- | BS_ENABLED=1 | ||
- | |||
- | ; | ||
- | BS_INCHARSET=" | ||
- | BS_OUTCHARSET=" | ||
- | |||
- | ;Опции импорта банковских выписок (черная магия, руками не трогать) | ||
- | BS_OPTIONS=" | ||
- | |||
- | ;Тип оплат для денег разнесенных автоматом по выпискам | ||
- | BS_CASHTYPE=1 | ||
- | |||
- | ;Режим высокой производительности модуля «Онлайн»: | ||
- | ; | ||
- | ;не вызывая своим видом возрастания нагрузки на сервер, | ||
- | 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 | ||
- | |||
- | ; | ||
- | MTSIGMON_ENABLED=0 | ||
- | |||
- | ; | ||
- | SIGREQ_ENABLED=0 | ||
- | |||
- | ;Время в минутах по прошествию которого все свитчи будут перепинговываться. | ||
- | SW_PINGTIMEOUT=2 | ||
- | |||
- | ; | ||
- | TB_SWITCHMON=1 | ||
- | |||
- | ; | ||
- | REMOTEAPI_ENABLED=1 | ||
- | |||
- | ; | ||
- | RADIUST_ENABLED=0 | ||
- | |||
- | |||
- | </ | ||
- | |||
- | ======= Источники и автор статьи: | ||
- | |||
- | |||
- | **Основные источники информации которые помогли написать эту инструкцию: | ||
- | |||
- | local.com.ua | ||
- | |||
- | wiki.ubilling.net.ua | ||
- | |||
- | habrahabr.ru | ||
- | |||
- | |||
- | **Автор инструкции: | ||