дравствуйте написал программу подсчета трафика на linux
но шейпер не работает
помогите пожалуйстаМои сетевые настройки следующие
ens5 - сеть интернет адрес ХХХ.ХХХ.ХХХ.ХХХ
ens2 - локадьная сет адрес 192.168.10.1
IP адрес пользователей хранится в файле /var/www/traf/users следующим образом
192.168.10.2
192.168.10.3
192.168.10.4
и далее
Если IP не прописанов этом файле то не должно имет доступ к Интернет
программа подсчета трафика приведене ниже
//=================================================
#/bin/bash
date=`date '+%Y-%m-%d'`;
time=`date '+%H:%M:%S'`;
IPTABLES="/sbin/iptables"
$IPTABLES -t mangle -nxvL PREROUTING | awk '/ACCEPT.*ens2/ {print $8,$2}'>/var/www/traf/trafinput
cat /var/www/traf/trafinput | while read line;
do
var1=`echo "$line"|awk '{print $1}'`
var2=`echo "$line"|awk '{print $2}'`
MYSQL_RESULT=`mysql -D trafic -u root --password=12345678 -e "INSERT INTO minutinput (m_date, m_time, m_ip_address, m_input) VALUES('$date','$time','$var1','$var2')"`;
done;
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
$IPTABLES -X -t nat
$IPTABLES -X -t mangle
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPTABLES -A INPUT -i lo -p all -j ACCEPT
$IPTABLES -A OUTPUT -o lo -p all -j ACCEPT
$IPTABLES -A INPUT -i ens2 -j ACCEPT
$IPTABLES -A OUTPUT -o ens2 -j ACCEPT
$IPTABLES -A FORWARD -i ens2 -s 192.168.10.0/255.255.255.0 -p tcp -m multiport --dports 21,22,25,110,143,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i ens2 -s 192.168.10.0/255.255.255.0 -p udp -m multiport --dports 53 -j ACCEPT
$IPTABLES -A FORWARD -i ens2 -s 192.168.10.0/255.255.255.0 -p tcp -m multiport --dports 53 -j ACCEPT
$IPTABLES -A INPUT -i ens2 -p ICMP -j ACCEPT
$IPTABLES -A OUTPUT -o ens2 -p ICMP -j ACCEPT
$IPTABLES -A INPUT -i ens5 -p tcp -m multiport --dports 22,80,3306 -j ACCEPT
$IPTABLES -A OUTPUT -o ens5 -p tcp -m multiport --dports 22,80,3306 -j ACCEPT
cat /var/www/traf/users | while read line;
do
var1=`echo "$line"|awk '{print $1}'`
$IPTABLES -t mangle -A PREROUTING -i ens2 -s $var1 -j ACCEPT
$IPTABLES -t mangle -A POSTROUTING -o ens2 -d $var1 -j ACCEPT
done;
$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A POSTROUTING -s 192.168.10.0/255.255.255.0 -j SNAT --to-source ХХХ.ХХХ.ХХХ.ХХХ
$IPTABLES -t nat -A POSTROUTING -o ens5 -j MASQUERADE
//=================================================
программа шейпинга приведена ниже
//=================================
#!/bin/bash
TC=/sbin/tc
IF=ens2 # Interface
DNLD=40kbit # DOWNLOAD Limit
UPLD=40kbit # UPLOAD Limit
IP=192.168.10.2 # Host IP
tc qdisc del dev ens5 root
tc qdisc del dev ens2 root
U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32"
$TC qdisc add dev $IF root handle 1: htb default 30
$TC class add dev $IF parent 1: classid 1:1 htb rate $DNLD
$TC class add dev $IF parent 1: classid 1:2 htb rate $UPLD
$U32 match ip dst $IP/32 flowid 1:1
$U32 match ip src $IP/32 flowid 1:2
но программа не работает пожалуйста помогите