Как сказал один мой знакомый - до мозга ближе чем до форума...
вот я и подумал, что врядли мне получится посчитать проходящий траффик из инета к людям, поэтому я хочу зацепиться непосредственно на OUTPUT'ы с сервака где торчит сквид и до клиентов... верно?
а вот это:
>iptables -A SQUID
>суммарный счетчик
>iptables -A SQUID -d 192.168.0.1
>iptables -A SQUID -d 192.168.0.2
>...
>iptables -A SQUID -d 192.168.0.254
>счетчики для каждого хоста
>iptables -A SQUID -j ACCEPT
куда мне воткнуть?
вот тот скрипт что я юзаю:
#!/bin/sh
echo "Запуск..."
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $f
done
for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo 0 > $f
done
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done
export IPT=/sbin/iptables
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe
$DEPMOD -a
$MODPROBE ip_tables
$MODPROBE ip_conntrack
$MODPROBE ip_conntrack_ftp
$MODPROBE ip_conntrack_irc
$MODPROBE iptable_filter
$MODPROBE iptable_mangle
$MODPROBE iptable_nat
$MODPROBE ip_nat_ftp
$MODPROBE ip_nat_irc
$MODPROBE ipt_LOG
$MODPROBE ipt_limit
$MODPROBE ipt_state
$IPT -F
$IPT -F -t nat
$IPT -X
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -N bad_tcp_packets
$IPT -N allowed
$IPT -N tcp_packets
$IPT -N udp_packets
$IPT -N icmp_packets
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN, ACK \
-m state --state NEW -j REJECT --reject-with tcp-reset
$IPT -A bad_tcp_packets -p tcp ! --syn -m state NEW -j LOG \
--log-prefix "New not syn:"
$IPT -A bad_tcp_packets -p tcp ! --syn -m state NEW -j DROP
$IPT -A allowed -p TCP --syn -j ACCEPT
$IPT -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A allowed -p TCP -j DROP
$IPT -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPT -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed
$IPT -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT
$IPT -A udp_packets -p UDP -i eth1 -d XXX.XXX.XXX.XXX \
--destination-port 135:139 -j DROP
$IPT -A udp_packets -p UDP -i eth+ -d 207.247.60.255 \
--destination-port 135:139 -j DROP
$IPT -A udp_packets -p UDP -i eth+ -d 206.0.125.255 \
--destination-port 135:139 -j DROP
$IPT -A udp_packets -p UDP -i eth+ -d 255.255.255.255 \
--destination-port 67:68 -j DROP
$IPT -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPT -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPT -A INPUT -p tcp -j bad_tcp_packets
$IPT -A INPUT -p ALL -i eth0 -s 192.168.0.0/16 -j ACCEPT
$IPT -A INPUT -p ALL -i eth+ -s 206.0.125.0/24 -j ACCEPT
$IPT -A INPUT -p ALL -i eth2 -s 207.247.60.0/24 -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s 127.0.0.1 -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s 192.168.0.1 -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s 206.0.125.254 -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s 207.247.60.254 -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s XXX.XXX.XXX.XXX -j ACCEPT
$IPT -A INPUT -p UDP -i eth0 --dport 67 --sport 68 -j ACCEPT
$IPT -A INPUT -p ALL -d XXX.XXX.XXX.XXX -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p TCP -i eth1 -j tcp_packets
$IPT -A INPUT -p UDP -i eth1 -j udp_packets
$IPT -A INPUT -p ICMP -i eth1 -j icmp_packets
$IPT -A INPUT -i eth1 -d 224.0.0.0/8 -j DROP
$IPT -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT INPUT packet died: "
$IPT -A FORWARD -p tcp -j bad_tcp_packets
$IPT -A FORWARD -i eth0 -j ACCEPT
$IPT -A FORWARD -i eth2 -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT FORWARD packet died: "
$IPT -A OUTPUT -p tcp -j bad_tcp_packets
$IPT -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
$IPT -A OUTPUT -p ALL -s 192.168.0.1 -j ACCEPT
$IPT -A OUTPUT -p ALL -s 206.0.125.254 -j ACCEPT
$IPT -A OUTPUT -p ALL -s 207.247.60.254 -j ACCEPT
$IPT -A OUTPUT -p ALL -s XXX.XXX.XXX.XXX -j ACCEPT
$IPT -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
$IPT -t nat -A POSTROUTING -o eth1 -j SNAT --to-source XXX.XXX.XXX.XXX
#$IPT -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/16 -p tcp --dport 80 -j REDIRECT --to-ports 3128
echo "done"