[Linux] Сбор статистики через iptables (linux iptables traffic example)
Ключевые слова: linux, iptables, traffic, example, (найти похожие документы)
Date: Fri, 13 Jul 2001 16:36:38 +0400
From: Dmitry Sergienko <[email protected]>
Newsgroups: fido7.ru.linux
Subject: [Linux] Сбор статистики через iptables
IC> Люди, кто может писал скрипт сбора статистики для IPTABLES, может
IC> поделетесь им. Или скажите где он хранит статистику, которая выводится
IC> по iptables -L -v
Я завел следующие цепочки для точности вычислений:
$IPT -N input
$IPT -N output
$IPT -N forward
$IPT -N fwd_in
$IPT -N fwd_out
$IPT -A INPUT -i eth0 -j input
$IPT -A OUTPUT -o eth0 -j output
$IPT -A FORWARD -i eth0 -j fwd_in
$IPT -A FORWARD -o eth0 -j fwd_out
$IPT -A fwd_in -j forward
$IPT -A fwd_out -j forward
а фильтры уже работают с input, output & forward цепочками.
Далее все это обрабатываю след. скриптом:
---------
#!/bin/sh
IPT=/usr/local/sbin/iptables
GREP=/usr/bin/grep
AWK=/usr/bin/awk
function getStat
{
_INPUT=`$IPT -L INPUT -x -v |$GREP $1| $AWK '{print($2)}'`
_FWD_IN=`$IPT -L FORWARD -x -v|$GREP $1|$GREP fwd_in| $AWK '{print($2)}'`
_RX=`expr $_INPUT + $_FWD_IN`
RX=`expr $_RX \/ 300` # one time per 5 mins = 300 secs
_OUTPUT=`$IPT -L OUTPUT -x -v |$GREP $1| $AWK '{print($2)}'`
_FWD_OUT=`$IPT -L FORWARD -x -v |$GREP $1|$GREP fwd_out| $AWK
'{print($2)}'` _TX=`expr $_OUTPUT + $_FWD_OUT`
TX=`expr $_TX \/ 300`
echo $RX >$2
echo $TX >>$2
}
getStat eth0 /usr/local/stat/eth0.dat
$IPT -Z # clear all statistics
-------
После этого вставил это все дело в cron.
Dmitry