Witam znalazłem skrypty napiane w PLD lecz nie działają w NND może ktoś potrafi je przerobić ?
To co ściągnięte zapisywane do mysql przed przkopaniem w AWK a na pod stawie tego generowane statystyki, idzie jakoś znakować pakiety żeby liczyło tylko te które idą przez ppp ?
Moze skrypty są niepotrzebne i są prostsze metody liczenia transferu
cron.sh
#!/bin/bash
USE="mysql"
PAS="abrakadabra"
DAT="nat_conf"
HOS="localhost"
MIE=`date +%m`
ROK=`date +%Y`
iptables -v -x -n -L traffic -Z > /etc/nat.conf/ip_zrzut
for ip in `cat /etc/nat.conf/nat.conf`; do
WEJ=`cat /etc/nat.conf/ip_zrzut |grep "$ip "|head -1|awk '{print $2}'`
WYJ=`cat /etc/nat.conf/ip_zrzut |grep "$ip "|tail -1|awk '{print $2}'`
if [ $WEJ -gt 0 ] || [ $WYJ -gt 0 ]
then
echo $ip
ZAP="SELECT \`wej\`,\`wyj\` FROM \`dane\` WHERE \`ip\`=\"$ip\" AND \`miesiac\`='$MIE' AND \`rok\`='$ROK';"
ILE=`echo $ZAP | mysql -u $USE -p$PAS -h $HOS -D $DAT --silent -N --batch|wc -l`
if `test $ILE -gt 0`; then
WYN=`echo $ZAP | mysql -u $USE -p$PAS -h $HOS -D $DAT --silent -N --batch`
WE2=`echo $WYN|awk '{print $1;}'`
WY2=`echo $WYN|awk '{print $2;}'`
WEJ=`echo "$WEJ+$WE2"|bc`
WYJ=`echo "$WYJ+$WY2"|bc`
ZAP="UPDATE \`dane\` SET \`wej\`='$WEJ',\`wyj\`='$WYJ' WHERE \`ip\`=\"$ip\" AND \`miesiac\`='$MIE' AND \`rok\`='$ROK';"
else
ZAP="INSERT INTO \`dane\` (\`ip\`,\`wej\`,\`wyj\`,\`miesiac\`,\`rok\`) VALUES (\"$ip\",'$WEJ','$WYJ','$MIE','$ROK');"
fi
echo $ZAP | mysql -u $USE -p$PAS -h $HOS -D $DAT --silent -N --batch
fi
done
rm /etc/nat.conf/ip_zrzut
nat.conf - lista ip dla których liczmy
10.0.6.2
10.0.6.3
10.0.6.4
10.0.6.5
10.0.6.6
10.0.6.7
10.0.6.8
10.0.6.9
i nat.sh
#!/bin/bash
echo "Zapisuje dotychczasowe wyniki"
/etc/nat.conf/cron.sh
echo "Konfiguruje firewall"
iptables -F -t nat
iptables -F -t filter
iptables -F -t mangle
iptables -X traffic
iptables -N traffic
for ip in `cat /etc/nat.conf/nat.conf`; do
iptables -A traffic -d $ip -j ACCEPT 2> /dev/nul;
iptables -A traffic -s $ip -j ACCEPT 2> /dev/nul;
done
iptables -A FORWARD -j traffic
for ip in `cat /etc/nat.conf/nat.conf`; do
iptables -t nat -A POSTROUTING -s $ip -d 0/0 -j MASQUERADE 2> /dev/nul;
iptables -I FORWARD -s $ip -p tcp --syn -m connlimit --connlimit-above 50 -j DROP
iptables -I FORWARD -d $ip -p tcp --syn -m connlimit --connlimit-above 50 -j DROP
done