InterPol
МаглыInterPol's Achievements
Пролетал Мимо (1/9)
0
Репутація
-
Самопроизвольное возрастание трафика
тема ответил в InterPol пользователя InterPol в Питання по Stargazer
Вроде как помогло! Но все таки интерестно, ПОЧЕМУ! :loop: -
Самопроизвольное возрастание трафика
тема ответил в InterPol пользователя InterPol в Питання по Stargazer
Спасибо попробую. Маркировка не для шейпера. По умолчанию деф.роут на медленный анлим. А по маркеровке меняю роут трафика от юзверей на АДСЛ. -
InterPol підписався на Самопроизвольное возрастание трафика
-
Люди добрые! Я вроде не полный дурак, так чуть-чуть... :loop: Ситуация в следующем. Поставил STG 2.4 и нарвался на такие грабли. Пока пользователи ходят просто по нету, ася и тд., все нормально. Как только что-то качают начинаються следующие чудеса: Чем быстрее скорость и больше размер файла тем больше СТГ врет. Пример: Файл 2Мб (скорость 80к/с) = 4Мб. Файл 5Мб (скорость 170к/с) = 11.5Мб. Файл 27Мб (скорость 110к/с) = 62Мб. И деньги ЖРЕТ! Переустановил СТГ (самый последний). EXPAT. НЕ ФИГА!!! Мой конфиг: AMD 2000+ / 512 / 3 net card + ppp0 / SLES 9 1 карта - локаль (192.168.128.0/17) 2 карта - соседняя сеть (192.168.0.0/24) 3 карта - ADSL с NAT и алиасы для серверов (192.168.100.0/24) ppp0 - медленный анлим Адреса динамические. Конфиг файервола #!/bin/bash # Path IPT=/usr/sbin/iptables IP=/sbin/ip # Admin IP INTERPOL_IP="192.168.128.1" MAX_IP="192.168.128.2" # World net IP SIRIUS_IP="213.179.251.48" ADSL_IP="192.168.100.254" # Nets SKYNET_NET="192.168.0.0/24" SERVER_NET="192.168.100.0/24" CLIENT_NET="192.168.128.0/17" # Router IP SKYNET_IP="192.168.0.254" SERVER_IP="192.168.100.1" CLIENT_IP="192.168.255.254" # Interfaces SERVER_IFACE="eth0" CLIENT_IFACE="eth1" SKYNET_IFACE="eth2" SIRIUS_IFACE="ppp0" #Ports STG USER_PORT="5555" ADMIN_PORT="7777" # Services WWW="192.168.100.4" # Enable forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # Clear farewall $IPT -F $IPT -t nat -F $IPT -t mangle -F $IPT -X $IPT -t nat -X $IPT -t mangle -X # Default police $IPT -t filter -P INPUT DROP $IPT -t filter -P FORWARD DROP $IPT -t filter -P OUTPUT DROP # Enable ping $IPT -t filter -A INPUT -p icmp -j ACCEPT $IPT -t filter -A FORWARD -p icmp -j ACCEPT $IPT -t filter -A OUTPUT -p icmp -j ACCEPT # Enable full on local interface $IPT -t filter -A INPUT -s 127.0.0.1 -j ACCEPT $IPT -t filter -A INPUT -d 127.0.0.1 -j ACCEPT $IPT -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT $IPT -t filter -A OUTPUT -d 127.0.0.1 -j ACCEPT # Enable DNS $IPT -t filter -A INPUT -p udp --sport 53 -j ACCEPT $IPT -t filter -A INPUT -p udp --dport 53 -j ACCEPT $IPT -t filter -A FORWARD -p udp --sport 53 -j ACCEPT $IPT -t filter -A FORWARD -p udp --dport 53 -j ACCEPT $IPT -t filter -A OUTPUT -p udp --sport 53 -j ACCEPT $IPT -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT $IPT -t filter -A INPUT -p tcp --sport 53 -j ACCEPT $IPT -t filter -A INPUT -p tcp --dport 53 -j ACCEPT $IPT -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT $IPT -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT $IPT -t filter -A OUTPUT -p tcp --sport 53 -j ACCEPT $IPT -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT # Enable SSH $IPT -t filter -A INPUT -p tcp -s $INTERPOL_IP -d $SERVER_IP --dport 22 -j ACCEPT $IPT -t filter -A OUTPUT -p tcp -d $INTERPOL_IP -s $SERVER_IP --sport 22 -j ACCEPT $IPT -t filter -A INPUT -p tcp -s $MAX_IP -d $SERVER_IP --dport 22 -j ACCEPT $IPT -t filter -A OUTPUT -p tcp -d $MAX_IP -s $SERVER_IP --sport 22 -j ACCEPT # Enable STG Access $IPT -t filter -A INPUT -p tcp -s $INTERPOL_IP --dport $ADMIN_PORT -j ACCEPT $IPT -t filter -A OUTPUT -p tcp -d $INTERPOL_IP --sport $ADMIN_PORT -j ACCEPT $IPT -t filter -A INPUT -p tcp -s $MAX_IP --dport $ADMIN_PORT -j ACCEPT $IPT -t filter -A OUTPUT -p tcp -d $MAX_IP --sport $ADMIN_PORT -j ACCEPT $IPT -t filter -A INPUT -p udp -s $CLIENT_NET --dport $USER_PORT -j ACCEPT $IPT -t filter -A OUTPUT -p udp -d $CLIENT_NET --sport $USER_PORT -j ACCEPT # Enable DHCP $IPT -t filter -A INPUT -p udp -s $CLIENT_NET --dport 67 -j ACCEPT $IPT -t filter -A OUTPUT -p udp -d $CLIENT_NET --sport 67 -j ACCEPT # Enable SERVER to world # Enable NAT $IPT -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source $SIRIUS_IP # Enable local site for nologin $IPT -t filter -A INPUT -p tcp --dport 80 -s $CLIENT_NET -j ACCEPT $IPT -t filter -A OUTPUT -p tcp --sport 80 -d $CLIENT_NET -j ACCEPT $IPT -t nat -A PREROUTING -p tcp --dport 80 -s $CLIENT_NET -j DNAT --to-destination $WWW # Enable ADSL route for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $i done $IP rule del fwmark 1 table adsl $IP rule add fwmark 1 table adsl $IP route del default via $ADSL_IP dev $SERVER_IFACE table adsl $IP route add default via $ADSL_IP dev $SERVER_IFACE table adsl $IP route flush cache Конфиг СТГ ################################################################################ # Файл настроек сервера stargazer # ################################################################################ # Имя лог-файла куда пушутся события LogFile = /var/log/stargazer.log # Имя файла в котором определяются правила подсчета трафика Rules = /server/stargazer/etc/rules # Время через которое пишется d БД детальная статистика пользователя # Значения: 1, 1/2, 1/4, 1/6. # 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 мин, 1/6 - раз в 10 мин DetailStatWritePeriod=1/6 # Периодичность записи записи в БД информации о стаитистке пользователя (минуты) # При большом кол-ве пользователей эту величину стоит увеличить, т.к. # запись в БД может занимать длительное время. # Значения: 1...1440 (минуты) StatWritePeriod = 10 # День снятия абонплаты # Значения: 0...31. 0 - Последний день месяца DayFee = 1 # День сброса данных о трафике за месяц и день перехода пользователей на новые тарифы # Значения: 0...31. 0 - Последний день месяца DayResetTraff = 1 # "Размазанное" снятие абонплаты. Снятие АП не раз в месяц, а каждый # день 1/30 или 1/31 части АП # Значения: yes, no SpreadFee = yes # Данная опция определяет может ли пользователь получить доступ в интерент # если у него на счету нет денег, но остался предоплаченный трафик # Значения: yes, no FreeMbAllowInet = no # Названия направлений. Направления без названий не будут отображаться в # авторизаторе и конфигураторе. Названия состоящие из нескольких слов должны # быть взяты в кавычки <DirNames> DirName0 = "File Server" DirName1 = "Local Net" DirName2 = "Mail" DirName3 = "SkyNet" DirName4 = "World" DirName5 = DirName6 = DirName7 = DirName8 = DirName9 = </DirNames> # Кол-во запускаемых процессов stg-exec. # Эти процессы отвечают за выполнение скриптов OnConnect, OnDisconnect, ... # Кол-во процессов означает сколько скриптов могут выполнятся одновременно. # Значения: 1...1024 ExecutersNum = 1 # Message Key для stg-exec. # Идентификатор очереди сообщений для выполнятеля скриптов. # Его изменение может понядобится если есть необходимость запустить несколько # экземпляров stg. Если вы не понимаете, что это, не трогайте этот параметр! # Значения: 0...2^32 # Значение по умолчанию: 5555 # ExecMsgKey = 5555 # Путь к директории, в которой находятся моудли сервера ModulesPath = /server/stargazer/lib ################################################################################ # Store module # Настройки плагина работающего с БД сервера # Второй параметер - это имя модуля без mod_ в начале и .so в конце # Т.е. полное имя модуля mod_store_files.so <StoreModule store_files> # Рабочая директория сервера, тут содержатся данные о тарифах, пользователях, # администраторах и т.д. WorkDir = /server/stargazer/var # Владелец, группа и права доступа на файлы статистики (stat) пользователя ConfOwner = root ConfGroup = root ConfMode = 600 # Владелец, группа и права доступа на файлы конфигурации (conf) пользователя StatOwner = root StatGroup = root StatMode = 640 # Владелец, группа и права доступа на лог-файлы (log) пользователя UserLogOwner = root UserLogGroup = root UserLogMode = 640 </StoreModule> ################################################################################ # Прочие модули <Modules> # Настройки плагина авторизации Always Online "mod_auth_ao.so" # Второй параметер - это имя модуля без mod_ в начале и .so в конце # Т.е. полное имя модуля mod_auth_ao.so <Module auth_ao> </Module> # Настройки плагина авторизации InetAccess "mod_auth_ia.so" # Второй параметер - это имя модуля без mod_ в начале и .so в конце # Т.е. полное имя модуля mod_auth_ia.so <Module auth_ia> # Порт на которм принимаются обращения от авторизатора # Значения: 1...65534 Port = 5555 # Время между посылками запроса пользовател жив ли он # и обновлением данных статистики (секунды) # Значения: 5...600 UserDelay = 15 #Таймаут для пользователя. Если в течение этого времени авторизатор #не отвечает, пользователь будет отключен # Значения: 15...1200 UserTimeout = 65 # Этот параметр определяет что будет передаватся программе InetAccess от сервера # как отстаток предоплаченного трафика # Значения: # FreeMb = 0 - кол-во бесплатных мегабайт в пресчете на цену нулевого направления # FreeMb = 1 - кол-во бесплатных мегабайт в пресчете на цену первого направления # FreeMb = 2 - кол-во бесплатных мегабайт в пресчете на цену второго направления # FreeMb = 3 - кол-во бесплатных мегабайт в пресчете на цену третьего направления # ........................ # FreeMb = 9 - кол-во бесплатных мегабайт в пресчете на цену девятого направления # FreeMb = cash - кол-во денег на которые юзер может бесплатно качать # FreeMb = none - ничего не передавать FreeMb = cash </Module> # Модули можно использовать несколько раз с разными параметрами #<Module auth_ia> # Port = 7777 # UserDelay = 15 # UserTimeout = 65 # FreeMb = 0 #</Module> # Настройки модуля конфигурации SgConfig "mod_conf_sg.so" # Второй параметер - это имя модуля без mod_ в начале и .so в конце <Module conf_sg> # Порт по которому сервер взаимодействует с конфигуратором # Значения: 1...65535 Port = 7777 </Module> # Модуль захвата трафика "mod_cap_ether.so" # Второй параметер - это имя модуля без mod_ в начале и .so в конце # Без параметров. Только имя модуля. <Module cap_ether> # Модуль без параметров </Module> # Настройки модуля пингующего пользователей "mod_ping.so" # Второй параметер - это имя модуля без mod_ в начале и .so в конце <Module ping> # Время, в секундах, между пингами одного и тогоже пользователя # Значения: 10...3600 PingDelay = 15 </Module> </Modules> ################################################################################ Rules # Ping ICMP 0.0.0.0/0 NULL # File server ALL 192.168.100.6 DIR0 # Local net ALL 192.168.128.0/17 DIR1 ALL 192.168.100.1 DIR1 ALL 192.168.100.4 DIR1 ALL 192.168.100.5 DIR1 ALL 192.168.100.6 DIR1 ALL 192.168.100.7 DIR1 ALL 192.168.100.254 DIR1 # Mail ALL 192.168.100.3 DIR2 ALL 192.168.100.3 DIR2 # Resources SkyNet ALL 192.168.0.0/24 DIR3 ALL 192.168.1.0/24 DIR3 # DNS ALL 192.168.100.2 DIR4 # World ALL 0.0.0.0/0 DIR4 OnConnect #!/bin/bash # Path IPT=/usr/sbin/iptables ADMINS=/server/stargazer/var/admins # User IF IF="eth1" # Login LOGIN=$1 # User IP IP=$2 # Cash CASH=$3 # User ID ID=$4 # For all users ########################################################################################################### # All traffic $IPT -t filter -A INPUT -s $IP -j ACCEPT $IPT -t filter -A FORWARD -s $IP -j ACCEPT $IPT -t filter -A FORWARD -d $IP -j ACCEPT $IPT -t filter -A OUTPUT -d $IP -j ACCEPT # Disable DNAT $IPT -t nat -I PREROUTING 1 -i $IF -s $IP -j ACCEPT # For no admins ########################################################################################################### for a in $ADMINS/* do NAME=`basename $a .adm` if [ $LOGIN != $NAME ]; then # WWW $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 80 -j MARK --set-mark 1 $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 8080 -j MARK --set-mark 1 $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 443 -j MARK --set-mark 1 # FTP #$IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 20 -j MARK --set-mark 1 #$IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 21 -j MARK --set-mark 1 # Mail $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 25 -j MARK --set-mark 1 $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 110 -j MARK --set-mark 1 # For L2_C4 TheAbuss #$IPT -t mangle -A PREROUTING -i $IF -s $IP -d 85.21.79.41 -j MARK --set-mark 1 break else break fi done ########################################################################################################### echo "C `date +%Y.%m.%d-%H.%M.%S` IP:$IP Cash:$CASH" >> /server/stargazer/var/users/$LOGIN/connect.log OnDisconnect #!/bin/bash # Path IPT=/usr/sbin/iptables ADMINS=/server/stargazer/var/admins # User IF IF="eth1" # Login LOGIN=$1 # User IP IP=$2 # Cash CASH=$3 # User ID ID=$4 # For all users ########################################################################################################### # All traffic $IPT -t filter -A INPUT -s $IP -j ACCEPT $IPT -t filter -A FORWARD -s $IP -j ACCEPT $IPT -t filter -A FORWARD -d $IP -j ACCEPT $IPT -t filter -A OUTPUT -d $IP -j ACCEPT # Disable DNAT $IPT -t nat -I PREROUTING 1 -i $IF -s $IP -j ACCEPT # For no admins ########################################################################################################### for a in $ADMINS/* do NAME=`basename $a .adm` if [ $LOGIN != $NAME ]; then # WWW $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 80 -j MARK --set-mark 1 $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 8080 -j MARK --set-mark 1 $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 443 -j MARK --set-mark 1 # FTP #$IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 20 -j MARK --set-mark 1 #$IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 21 -j MARK --set-mark 1 # Mail $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 25 -j MARK --set-mark 1 $IPT -t mangle -A PREROUTING -i $IF -s $IP -p tcp --dport 110 -j MARK --set-mark 1 # For L2_C4 TheAbuss #$IPT -t mangle -A PREROUTING -i $IF -s $IP -d 85.21.79.41 -j MARK --set-mark 1 break else break fi done ########################################################################################################### echo "C `date +%Y.%m.%d-%H.%M.%S` IP:$IP Cash:$CASH" >> /server/stargazer/var/users/$LOGIN/connect.log PS. Просидел пол дня читая всю ветку форума, похожего не нашел! Если кто наступал на грабли подскажите. Может попробовать на QUEUE перейти. Говорят чеснее считает. Правда пока не знаю как ее настроить. ЗАРАНЕЕ ВСЕМ СЕНК!!!
-
Люди! Или я дурак или как. Прошелся по всем ссылкам в этом топике, не одна ссылка на spn.dp.ua не пашет. Помогите плиз! Или на мыло бросте novakovskiy@mail.ru, а то так расписали аж слюнки текут! -)
