Всем привет. Сталкнулся с такой проблемой. Настраивал всё как сказанно здесь и всё прекрассно работает за исключением одного но. Не хочeт правильно считать хоть ты тресни. Сначала не считало трафик вообще, после того как заменил в форварде ACCEPT на QUEUE считать начало но коряво. То есть есть подозрение что не учитывается тср. Мои конфиги
stargazer.conf
# Имя лог-файла куда пушутся события
LogFile = /var/log/stargazer.log
# Имя файла в котором определяются правила подсчета трафика
Rules = /etc/stargazer/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
DayFeeIsLastDay=yes
WriteFreeMbTraffCost=no
# День сброса данных о трафике за месяц и день перехода пользователей на новые тарифы
# Значения: 0...31. 0 - Последний день месяца
DayResetTraff = 1
# "Размазанное" снятие абонплаты. Снятие АП не раз в месяц, а каждый
# день 1/30 или 1/31 части АП
# Значения: yes, no
SpreadFee = no
# Данная опция определяет может ли пользователь получить доступ в интерент
# если у него на счету нет денег, но остался предоплаченный трафик
# Значения: yes, no
FreeMbAllowInet = no
# Названия направлений. Направления без названий не будут отображаться в
# авторизаторе и конфигураторе. Названия состоящие из нескольких слов должны
# быть взяты в кавычки
<DirNames>
DirName0 =
DirName1 = MediaServer
DirName2 = World
DirName3 =
DirName4 =
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 = /usr/lib/stg/
################################################################################
# Store module
# Настройки плагина работающего с БД сервера
<StoreModule store_mysql>
# stg_billing - название базы с которой будет работать биллинг
# stg_sql_user - пользователь для этой базы
# stg_sql_password - пароль для этого пользователя
dbuser = stg
rootdbpass = aq1sw2de3
dbname = stg_base
dbhost = 127.0.0.1
</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 = 5555
</Module>
# Модуль захвата трафика "mod_cap_ether.so"
# Второй параметер - это имя модуля без mod_ в начале и .so в конце
# Без параметров. Только имя модуля.
<Module cap_ipq>
# Модуль без параметров
</Module>
# Настройки модуля пингующего пользователей "mod_ping.so"
# Второй параметер - это имя модуля без mod_ в начале и .so в конце
<Module ping>
# Время, в секундах, между пингами одного и тогоже пользователя
# Значения: 10...3600
PingDelay = 15
</Module>
</Modules>
################################################################################
правила iptables
LAN_IP="192.168.0.254"
LAN_IP_RANGE="192.168.0.0/24"
LAN_IFACE="eth0"
LO_IFACE="lo"
LO_IP="127.0.0.1"
INET_IP="192.168.3.3"
INET_IFACE="eth1"
IPTABLES="/sbin/iptables"
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
$IPTABLES -F FORWARD
/sbin/depmod -a
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -N bad_tcp_packets
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \
--log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -N icmp_packets
$IPTABLES -N tcp_packets
$IPTABLES -N udpincoming_packets
$IPTABLES -N allowed
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 1723 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 5555 -j allowed
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPTABLES -I INPUT 2 -p tcp --dport 3128 -s 192.168.0.0/24 -j REJECT
$IPTABLES -I INPUT 2 -p tcp --dport 2121 -s 192.168.0.0/24 -j REJECT
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT INPUT packet died: "
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
$IPTABLES -P FORWARD DROP
$IPTABLES -A FORWARD -i ppp+ -s 192.168.10.0/24 -o eth1 -j REJECT
$IPTABLES -A FORWARD -i eth1 -o ppp+ -j QUEUE
$IPTABLES -A FORWARD -i ppp+ -o eth1 -j QUEUE
onconnect
#!/bin/bash
# Login
LOGIN=$1
#user IP
IP=$2
#cash
CASH=$3
#user ID
ID=$4
#Selected dirs to connect
DIRS=$4
#echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log
iptables -I FORWARD 2 -i ppp+ -s $IP -o eth1 -j QUEUE
iptables -A INPUT -i ppp+ -s $IP -j QUEUE
iptables -t nat -A PREROUTING -s $IP/255.255.255.255 -d ! 192.168.10.0/255.255.255.0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.3.3:3128
OnDisconnect
#!/bin/bash
# Login
LOGIN=$1
#user IP
IP=$2
#cash
CASH=$3
#user ID
ID=$4
#Selected dirs to disconnect
DIRS=$4
#echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log
iptables -D FORWARD -i ppp+ -s $IP -o eth1 -j QUEUE
iptables -D INPUT -ppp+ -s $IP -j QUEUE
iptables -t nat -D PREROUTING -s $IP/255.255.255.255 -d ! 192.168.10.0/255.255.255.0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.3.3:3128
Очень прошу вашей помощи, потому как сам не знаю в какую сторону думать