Господа, помогите малость спраиться, я что либо уже перестал понимать.
Вообщем, имеем подсеть 192.168.23.0 там три ip 192.168.23.100, 192.168.150, 192.168.150, 192.168. 200, так же внутренний интерфейc, допустим $real_ip
необходимо на них счетать трафик.
Сейчас конструкция проста до безобразия:
iptanles -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -N block
iptables -N in_trf
iptables -N fwd_trf
iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A block -j DROP
iptables -A in_trf -j RETURN
iptables -A fwd_trf -j RETURN
iptables -A INPUT -i eth0 -j in_trf
iptables -A INPUT -j block
iptables -A FORWARD -i eth0 -j fwd_trf
iptables -A FORWARD -j block
Так оно вроде счетается. Но счетается весь трафик.:(
Добавка новых цепочек аля: in_trf100, in_trf150, in_trf200, fwd_trf100, fwd_trf150 b fwd_trf200 ни к чему хорошему не привели. Далаю так
iptables - N in_trf100
iptables - N fwd_trf100
*
iptables -A in_trf100 -i eth0 -d 192.168.23.100 -j RETURN
iptables -A fwd_trf100 -i eth0 -d 192.168.23.100 -j RETURN
iptables -A in_trf100 -j RETURN
iptables -A fwd_trf100 -j RETURN
Пихаем первыми стрками в секцию INPUT и FORWARD
iptables -A INPUT -i eth0 -j in_trf100
*
iptables -A FORWARD -i eth0 -j fwd_trf100
*
Счетается только цепочка forward.
Для подсчёта трафика используется немного модернизированный скрипт ( точнее
три ) который пролета на форуме
#!/bin/sh
#!/bin/sh
cd /root
MNTH=`date +%m`
DAT=`date +%d`
IP="192.168.23.100"
/usr/sbin/iptables -L -Z -v -x -n > dat.tmp
IN=`cat ./dat.tmp | grep in_trf | head -c 18 | tail -c 9`
FW=`cat ./dat.tmp | grep fwd_trf| head -c 18 | tail -c 9`
RX=`expr $IN + $FW`
echo "$DAT $RX" >> /home/user/${MNTH}.txt
echo "$DAT $IP $RX" >> /root/{MNTH}.txt
ps. Всё остальные цепочки аналогичны, как и скрипты, но естественно с изменение
ip и удалением из всех остальных скриптов строчки чистки цепочек.
Это всё запускается по cron-у. раз в конце месяца.