URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 987
[ Назад ]

Исходное сообщение
"Тематический каталог: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"

Отправлено auto_topic , 30-Авг-02 15:25 
Обсуждение статьи тематического каталога: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)

Ссылка на текст статьи: http://www.opennet.me/base/net/traf_mes.txt.html


Содержание

Сообщения в этом обсуждении
"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено and , 30-Авг-02 15:25 
Первое ограничение легко борется путем болле частого запускания скрипта считывания трафика. У меня работает раз в час.

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SwitchTX , 01-Сен-02 14:00 
>Первое ограничение легко борется путем болле частого запускания скрипта считывания трафика. У
>меня работает раз в час.

Каждый час я запускаю "соседний" скрипт для другого - мониторинга когда машина работает (например по выходным охранники сидят в инете).


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Аноним , 31-Авг-02 19:09 
Все хорошо, но зачем .xls - ведь есть mysql
Борис

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SwitchTX , 01-Сен-02 13:58 
Потому, что файл отдал начальству и забыл о нем.
Просто в моей последней редакции этого скрипта идет автоматичекая замена ip адреса на имя пользователя. Поэтому моего участия там больше не нужно.

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Аноним , 01-Сен-02 17:31 
а чем ipac-ng  не подошел для этого?

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SwitchTX , 04-Сен-02 11:17 
У меня не требуется ничего инсталлировать. Сейчас для меня это важно. Как важно и для всех начинающих. Система-то полноценно работает, и любое вмешательство только в том случае если все проверил, во всем уверен и сможешь починить.:-)))

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено arruah , 02-Сен-02 07:16 
все таки респектабельней было бы всю статистику в базу ложить. А там уже с ней разбираться.

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SwitchTX , 02-Сен-02 16:15 
Согласен. Но пока этого не требуется. точнее она просто еще не установлена на сервере.

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено andreis , 04-Сен-02 09:07 
У тебя между считыванием счетчиков и обнулением проходит время - данные теряются за этот период.
Опцию -Z можна задать вместе с -L.
Из man-а "It is legal to specify the -L, --list (list) option as well, to see the counters immediately before they are cleared."

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SwitchTX , 04-Сен-02 09:59 
А вот за это спасибо. Посмотрю, что можно сделать.

"Изменения и дополнения!!!"
Отправлено SwitchTX , 04-Сен-02 11:10 
После присвоения параметров добавляем строчки...

# Присваивание параметров для мониторинга
...
# Вывод данных во временный файл и
# очистка счетчиков для следующего дня
/sbin/iptables -LZ -v -x > dat.tmp

Затем в расчете величины трафика меняем строки на следующие...

# Расчет величины трафика входящего на интерфэйс eth1
# Максимальный расчетный трафик за день - 953МВ
IN=`cat dat.tmp | grep in_traf | head -c 18 | tail -c 9`
FW=`cat dat.tmp | grep fwd_in_traf | head -c 18 | tail -c 9`
...

Затем в расчете пользователей меняем аналогичные строки...

# Расчет пользователей
...
    RX=`cat dat.tmp | grep chain_$i | head -c 18 | tail -c 9`
...

В конце скрипта удаляем строку с обнулением трафика!

Внимание. В строках расчета входящего трафика изменились параметры команду grep!


"RE: Изменения и дополнения!!!"
Отправлено SwitchTX , 16-Сен-02 11:25 
Еще одно уточнение... У меня почему-то не работает параметр "-LZ" в одной строке.
поэтому я сделал это в 2 строчки.

>После присвоения параметров добавляем строчки...
>
># Присваивание параметров для мониторинга
>...
># Вывод данных во временный файл и
># очистка счетчиков для следующего дня
...
/sbin/iptables -L -v -x > dat.tmp
/sbin/iptables -Z
...


"RE: Изменения и дополнения!!!"
Отправлено Versus , 18-Окт-02 03:14 
iptables -L -v -x -Z
а не -LZ

"Спасибо..."
Отправлено SwitchTX , 18-Окт-02 10:43 
>iptables -L -v -x -Z
>а не -LZ

Да, все правильно.


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Criz , 15-Сен-02 19:50 
А не подскажите ли как изменятся скрипты, если есть два интерфейса с локальной сетью...

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SwitchTX , 16-Сен-02 11:22 
>А не подскажите ли как изменятся скрипты, если есть два интерфейса с
>локальной сетью...

А подробнее? трафик нужно считать между 2-мя локальными сетками? или еще как? Сколько внешних интерфейсов? и пр... Чем полнее, тем лучше...:-)


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Михаил , 16-Сен-02 18:46 
Дополнения и ,возможно, улучшения:
1)строки -LZ и не будут работать, нужно ставить так
/sbin/iptables -L -Z -v -x -n > dat.tmp
тогда сначала информация о траффике запишется в файл, а затем обнулиться
2)конструкцию `head -c 18 | tail -c 9` можно заменить на такую `awk '{print $2}'` - эффект такой-же

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Criz , 16-Сен-02 21:10 
Так вот: имеется сетки (192.168.12.0, и 192.168.0.0), и к ним два интерфейса (192.168.12.51, и 192.168.0.2). Вопросик: как можно подправить чтобы скрипты считали для обоих сетей.
И ещё есть доработочка к скриптам: я считаю что считать нужно не в цепочке FORWARD, а в OUTPUT, иначе при работе через сквид трафик не считается (по крайней мере мне так показалось.)

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SwitchTX , 18-Сен-02 11:27 
Если у тебя сквид - считать нужно все цепочки (OUTPUT и FORWARD) поскольку не все запросы кеширует сквид (mail, telnet и пр.).
Но, если у тебя там стоит еще и файл-сервер (Samba, etc...), то тогда нужно придумывать, как разделить это дело уже по протоколам...:-(((((

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Criz , 16-Сен-02 21:11 
ой, забыл, внешний интерфейс только один...

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Михаил , 17-Сен-02 08:42 
Мне кажется нужно вместо IP-адресов подставить сети
198.16.12.0/24 и 198.16.0.0/24 и считать на здоровье
iptables -A INPUT -d 198.16.12.0/24 -j ACCEPT
iptables -A INPUT -d 198.16.0.0/24 -j ACCEPT
iptables -A OUTPUT -s 198.16.12.0/24 -j ACCEPT
iptables -A OUTPUT -s 198.16.0.0/24 -j ACCEPT
и можно снимать трафик по сетям, но искать в grep придется так:
iptables -L INPUT -Z -v -x -n > datin.tmp
couuntin=`cat datin.tmp | grep 198.16.12.0/24 | awk '{print $2}'`

аналогично и выходная цепочка


"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Сергей , 19-Сен-02 12:05 
>Мне кажется нужно вместо IP-адресов подставить сети
>198.16.12.0/24 и 198.16.0.0/24 и считать на здоровье
>iptables -A INPUT -d 198.16.12.0/24 -j ACCEPT
>iptables -A INPUT -d 198.16.0.0/24 -j ACCEPT
>iptables -A OUTPUT -s 198.16.12.0/24 -j ACCEPT
>iptables -A OUTPUT -s 198.16.0.0/24 -j ACCEPT
>и можно снимать трафик по сетям, но искать в grep придется так:
>
>iptables -L INPUT -Z -v -x -n > datin.tmp
>couuntin=`cat datin.tmp | grep 198.16.12.0/24 | awk '{print $2}'`

countin=`awk '/198.16.12.0\/24/ {print $2}'`

>
>аналогично и выходная цепочка



"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Ender , 20-Сен-02 00:03 
у меня немного другой вариант решения той же самой проблемы. что делать в случае использования ваших скриптов, если машина часто выключается, так как стоит в обшаге и даёт друзьям доступ в инет :) и соседу не нравится её шум? причём выключается кнопочкой power... как быть, если iptables часто подправляется, в результате чего, и в предыдушем случае, iptables теряет всю статистику? инет у нас шустрый, 1Gb канал, так что за несколко минут может натечь мепабайтный траффик. ваше решение как видно не подходит :)
может кому понравится вариант заставить iptables логать через syslog, используя kernel.debug скажем, и ловить лог на эту facility через pipe. написать демона, что будет слушать pipe и диференцировать тнфу - это лог юзверя с локального ip(я бросаю его в sql :), это сообшение ядра...
так удобней будет - черти в любой момент могут посмотреть это дело на страничке, на индивидуальных шарах. и причём инфа неза кждый час, а online :))

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено smkpi , 20-Сен-02 17:38 
по голове надо настучать за отключение power'ом
мне тут раз перегрузили (не могли из X'ов выйти, блин)
так после этого на винте 2 бэд-блока образовалось
и один из них в swap-разделе... пришлось весь диск переформатировать...

а по поводу syslog - в iptables есть ULOG - для userspace programm
легче будет


"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Ender , 02-Окт-02 18:44 
простите за опечатки - клава слишком продвинутая, без русских букв - не дорос ещё до неё :)
по поводу power'a - дык стучу, не спасает :( и ещё мелочь - тут как бы общага, вырубают его, бедняжку, и не обязательно power'ом.
а по поводу ULOG - к тому времени я в нём ещё не разобрался, написать демона проще было. не подкинешь инфы? из мануала я мало что вытянул :((

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Kozak , 07-Окт-02 16:19 
>по голове надо настучать за отключение power'ом
>мне тут раз перегрузили (не могли из X'ов выйти, блин)
>так после этого на винте 2 бэд-блока образовалось
>и один из них в swap-разделе... пришлось весь диск переформатировать...
>
>а по поводу syslog - в iptables есть ULOG - для userspace
>programm
>легче будет

Где ж оно легче? Я дня 3 прогу на С писал, так оказалось, что у netlinka ограничение на размер буфера, так что она с short read вылетала. Пришлось сырцы править и ядро пересобирать.
Правда мне содержимое пакетов анализировать нужно было и ulogd не помогал, но все равно для подсчета трафика лог парсить нужно, так по-моему статистику снимать легче.
Кстати, если просто с интерфейса нужно, так почему бы `cat /proc/net/dev>tmp.dat` переодически не использовать?



"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Ender , 15-Окт-02 18:58 
прога была написана мене чем за два дня.
статистику мне надо снимать не с интерфейса(на нём 2 ip, хотя по зтой причине), а считать каждый пакет отдельно.
можно парсить файл, что выдаёт syslod, но тогда придётся вешать парсер на cron, каторый в принципе катит, но обновляет _слишком_ редко(реже раз в минуту).
от поэтому я и перенаписал парсер лога syslog так, чтобы он на входе брал не файл, а pipe. так что сейчас юзверь можёт сьесть лишнего траффика не более чем на размер пакета :)) а тогда 1М * 60 сек - что-то много для общаги, не находишь?
прога написана на си, ест не более 1% процессорного времени, выход бросает в sql.

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Alex , 04-Дек-02 20:55 
Ender а можешь выслать мне свои примеры, хотелось бы посмотреть...

"RE: Linux Расчет трафика через Iptables. (linux firewall ipt..."
Отправлено Max , 11-Янв-03 18:46 
>прога была написана мене чем за два дня.
>статистику мне надо снимать не с интерфейса(на нём 2 ip, хотя по
>зтой причине), а считать каждый пакет отдельно.
>можно парсить файл, что выдаёт syslod, но тогда придётся вешать парсер на
>cron, каторый в принципе катит, но обновляет _слишком_ редко(реже раз в
>минуту).
>от поэтому я и перенаписал парсер лога syslog так, чтобы он на
>входе брал не файл, а pipe. так что сейчас юзверь можёт
>сьесть лишнего траффика не более чем на размер пакета :)) а
>тогда 1М * 60 сек - что-то много для общаги, не
>находишь?
>прога написана на си, ест не более 1% процессорного времени, выход бросает
>в sql.

Я тоже занимаюсь этой задачей сейчас
Я брал статистику не с сислога а напрямую с канала /proc/kmesg (сислог сам берет данные оттуда)
но при этом столкнулся с такой проблемой: при большом трафике (10 мбит, загрузка 100%) канал переполнялся и строчки лога терялись, и считалось неправильно.. увеличение буфера не помогло. У тебя канал еще шире и качают наверно поболе :) у тебя не возникало такой проблемы?


"RE: Linux Расчет трафика через Iptables. (linux firewall ipt..."
Отправлено Ender , 12-Янв-03 06:16 
>Я тоже занимаюсь этой задачей сейчас
>Я брал статистику не с сислога а напрямую с канала /proc/kmesg (сислог
>сам берет данные оттуда)
>но при этом столкнулся с такой проблемой: при большом трафике (10 мбит,
>загрузка 100%) канал переполнялся и строчки лога терялись, и считалось неправильно..
>увеличение буфера не помогло. У тебя канал еще шире и качают
>наверно поболе :) у тебя не возникало такой проблемы?
нет, проблемы такой не стояло. хотя у нас сеть и 100Mbit (1G канал - это до города. на нём мы все и сидим) и трафик бывает под 3M/sec и выше, но мой провайдер считает трафик чуть чуть по иному, чем я - я считаю всё, что только бросается в лог, а пров часть пакетов  игнорирует. и хоть убейте, понятия не имею какую. в общем мной тподсчитанный рафик всегда больше, чем тот, за который я плачу деньги.
при проверке же со счётчиками iptables я особых расхождений не заметил.
смотрите файл tcounterd.tar.bz2 на ftp://nick.dorms.spbu.ru.
предуперждаю сразу - это моя самая первая прога, написанная под линух, да ещё и под mysql. причём написанная под влиянием обстоятельтсв - потратил у меня один несколько сотен метров на халяву, пока его вырубило. теперь не тратит :)

"RE: Linux Расчет трафика через Iptables. (linux firewall ipt..."
Отправлено MiRacLe , 04-Фев-03 11:02 
Может кто скинет этот исходничек на мыло shaeh@rambler.ru а то не могу зайти на FTP

"RE: Linux Расчет трафика через Iptables. (linux firewall ipt..."
Отправлено Alex , 07-Апр-04 12:58 
1

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено noy , 29-Сен-02 17:10 
Извините, я новичек, и поэтому непонял...
чего нужно записать вместо "...*"
у меня внешний интерфейс eth0
внутренняя сеть 192.168.100.0
адреса в сети 192.168.100.2 и 192.168.100.10
подскажите чего как в ентих скриптах прописать
А то больше трафик нечем считать,netGate неработает...
net-acct как-то неправильно считает...
одна надежда на ентот скрипт осталась :))

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Serg , 02-Окт-02 13:00 
Люди! Помогите ламеру. После создания IP-цепочек отрубило 21 порт. Теперь получился однорукий FTP, жалуются субчики. Подскажите шо делать.

"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SwitchTX , 02-Окт-02 13:25 
>Люди! Помогите ламеру. После создания IP-цепочек отрубило 21 порт. Теперь получился однорукий
>FTP, жалуются субчики. Подскажите шо делать.

Включить порт обратно и почитать примеры цепочек. В этом же каталоге есть инфа по установке и настройке iptables


"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Kozak , 07-Окт-02 16:00 
>Люди! Помогите ламеру. После создания IP-цепочек отрубило 21 порт. Теперь получился однорукий
>FTP, жалуются субчики. Подскажите шо делать.

для statefull файервола

modprobe ip_conntrack_ftp
и
modprobe ip_nat_ftp (если нужно натить)

и вначале скрипта
iptables -A INPUT -m state --state ! NEW,INVALID -j ACCEPT
iptables -A FORWARD -m state --state ! NEW,INVALID -j ACCEPT (если нужно)


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Аноним , 16-Окт-02 11:44 
Может быть я чего-то не понял... у меня возник вопрос - а можно ли использовать приведенный выше скрипт для подсчета траффика по конкретным IP адрессам?
Ситуация такая - есть сетка с одной адресацией 192.168.0. но на самом деле в сети две между собой не связанные фирмы, которые выходят в инет через роутер 192.168.0.151 Хотелось бы знать сколько в день (неделю, месяц) съедают траффика они, а сколько мы. Так как платим мы поровну, но жрут они значительно больше нас.

Заранее спасибо.


"RE: Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SwitchTX , 16-Окт-02 12:46 
Да, может считать по отдельным ip адресам.
это в том месте где мы заводим цепочки для пользователей.
Просто потом нужно будет просуммировать отдельные адреса.

Лезь ко мне в аську я тебе отпишу как это лучше сделать. #25221460


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Criz , 23-Окт-02 21:50 
Послушайте, а как вы считаете, если считать входящий трафик в таблице Mangle? Я вроде так сделал, пока работает, ща буду проверять на правдивость.

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Criz , 30-Окт-02 19:34 
Подскажите пожалуйста, как задать переменную не только месяца и дня (MNTH=`date +%m`;DAT=`date +%d`), но и часов и минут?

"В мане это есть....."
Отправлено SwitchTX , 31-Окт-02 10:20 
Набираешь "man date" и смотришь раздел "формат"
"date +%M" - минуты
"date +%H" - часы
А вообще там есть еще несколько размеров часов...

Так что лучше в мануал...


"RE: В мане это есть....."
Отправлено Criz , 31-Окт-02 13:52 
Нашёл, спасибо!

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Igor , 20-Дек-02 16:57 
Внимательно прочитал, но может быть есть у кого готовый скрипт (для минимальной правки) для следующей задачи : есть локалка (192.168.0.0), машина с MandrakeLinux 9.0 (iptables) с 2 сетевухами - одна в локалку, другая во внешний мир(выделенка).Нужно считать траффик как исходящий, так и входящий для сети + учитывать его объем как для конкретного пользователя, так и по конкр.IP - адресу + видеть куда ходил пользователь. Счетчики для пользователя желательно не сбрасывать, работа в режиме накопления.
Буду очень благодарен, если поможете.
Игорь.  
P.S. firewall будет слеплен  с помощью guarddog (поддерживается iptables).

"Linux Расчет трафика через Iptables. (linux firewall iptable..."
Отправлено Vasiliy , 08-Апр-03 14:58 
Добрый! Игорь сейчас у меня такая же проблемка. Насело начальство на контроль траффика, помогите готовым скриптиком.
RH 7.2 eth0(локалка), ppp0(в свет), iptables v1.2.3

"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено cfadmin , 31-Дек-02 14:20 
Люди а у кого есть скрипт собирающий эту статистику в базу даных mysql?

"RE: Linux Расчет трафика через Iptables. (linux firewall iptable..."
Отправлено Ender , 12-Янв-03 06:40 
>Люди а у кого есть скрипт собирающий эту статистику в базу даных
>mysql?
могк бросить пример.

#! /usr/bin/perl -w

use Mysql;
$db = Mysql->Connect('localhost', 'iplog', 'iplog');

@tables = $db->ListTables;
$query = $db->Query("select ip,cur,name,lim,paid from conf");
for($i = 0; $i < $query->numrows; $i++)
{
  ($ip, $cur, $name, $limit, $paid) = $query->FetchRow;
  %{$users{$ip}} = ('current' => $cur, 'limit' => $limit, 'paid' => $paid);
  $names{$ip} = $name;
  unless(grep {$_ eq $name} @tables)
   {
    $db->Query("create table $name (year int not null, month int not null, day int not null, hour int not null, min int not null, sec int not null, ip char(16) not null, len int not null, dir int not null)");
   }
}
%months = ('Nov' => 11, 'Dec' => 12);

$traffic = 0 unless $traffic = `cat /var/log/traffic`;
open LOG, "/var/log/kernel/debug";
foreach(<LOG>)
{
  next unless ($month, $day, $hour, $min, $sec, $src, $dst, $len) =
    m/^(\w\w\w)\s+(\d+)\s+(\d+):(\d+):(\d+)\sender\skernel:\s+.*SRC=([\d\.]+)\sDST=([\d\.]+)\sLEN=(\d+)\s/;
  $year = (localtime(time))[5] + 1900;
# log - общая таблица. сбрасываю абсолюсно все пакеты
  $db->Query("insert into log values ($year, $months{$month}, $day, $hour, $min, $sec, '$src', '$dst', $len)");
  
  if(!exists $users{$src} && exists $users{$dst})
   {
    $users{$dst}{'current'} += $len;
#я вставляю и пакеты в mysql, не надо - затри
    $db->Query("insert into $names{$dst}{'current'} values ($year, $months{$month}, $day, $hour, $min, $sec, '$src', $len, 1)");
   }
  if(exists $users{$src} && !exists $users{$dst})
   {
    $users{$src}{'current'} += $len;
    $db->Query("insert into $names{$src}{'current'} values ($year, $months{$month}, $day, $hour, $min, $sec, '$dst', $len, 0)");
   }
  
  $traffic += $len;
  $users{'0.0.0.0/0'}{'current'} += $len;
}
close LOG;

system("echo $traffic > /var/log/traffic");
foreach(keys %users)
{
  $db->Query("update conf set cur = $users{$_}{'current'} where ip = '$_'");
  system("iuseroff $names{$_}") if $users{$_}{'current'} >= $users{$_}{'limit'} + $users{$_}{'paid'};
}


всё, что не нарвится - естесственно можно менять :) это как пример лога в mysql


"RE: Linux Расчет трафика через Iptables. (linux firewall ipt..."
Отправлено sa739 , 27-Янв-03 18:40 
Доброго времени суток.
я вот читал читал этот флейм и до сихпор не понял, зачем велосипед изобретать если существует кучища отработаных и стабильных пакетов:
ulogd porject, ipac-ng, net-acct, netacct-mysql, etc., каждый из которых хорош по-своему, и каждый-же можно переделать так, как кому заблагорассудится.
Просьба выше сказаное не воспринимать как жесткую критику в свой адрес.
просто я высказал свое мнение (субъективное ессно (: )
ах да позабыл сказать, мне возможно тоже скоро прийдется организовывать нечто подобное (учет траффика, контроль IP & MAC, билинг)..
кстати есть неплохой имхо ресурс: linux advanced routing and traffic control (http://lartc.org) мож кто оттуда почерпнет для себя чтонить новое.
Благодарю за внимаение (:
Enjoy!

"RE: Linux Расчет трафика через Iptables. (linux firewall ipt..."
Отправлено Vasiliy , 14-Авг-03 10:23 
>Доброго времени суток.
>я вот читал читал этот флейм и до сихпор не понял, зачем
>велосипед изобретать если существует кучища отработаных и стабильных пакетов:
>ulogd porject, ipac-ng, net-acct, netacct-mysql, etc., каждый из которых хорош по-своему, и
>каждый-же можно переделать так, как кому заблагорассудится.
>Просьба выше сказаное не воспринимать как жесткую критику в свой адрес.
>просто я высказал свое мнение (субъективное ессно (: )
>ах да позабыл сказать, мне возможно тоже скоро прийдется организовывать нечто подобное
>(учет траффика, контроль IP & MAC, билинг)..
>кстати есть неплохой имхо ресурс: linux advanced routing and traffic control (http://lartc.org)
>мож кто оттуда почерпнет для себя чтонить новое.
>Благодарю за внимаение (:
>Enjoy!
>

Хотел бы узнать результат, как вы вышли сположения по подсчету траффика


"RE: Linux Расчет трафика через Iptables. (linux firewall ipt..."
Отправлено Valeriy , 28-Янв-03 11:31 
Я хотел бы спросить у народа мнение:

В представленном скрипте:

eth0 - интерфейс в инет ?
eth1 - интерфейс в локальную сеть ?

Если предположить вышеуказанное - то трафик IN+FW - получается не тот ...
А по цепочкам chain_$i - вообще ничего нет :((

Может кто-нибудь укажет мне, что я делаю не так ?
Если лень рассматривать мой скрипт конфигурации, то ответьте хотя бы на вопрос о интерфейсах :))

Вот мой скрипт:

#!/bin/sh

INET_IP="1.2.3.4"
INET_IFACE="eth0"

LAN_IP="192.168.0.1"
LAN_IFACE="eth1"

PRIV_PORTS="0:1023"
UNPRIV_PORTS="1024:65535"

LO_IFACE="lo"
LO_IP="127.0.0.1"

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets

$IPTABLES -N in_traf
*********************
$IPTABLES -N fwd_in_traf
************************
$IPTABLES -N chain_2
********************

$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

$IPTABLES -A tcp_packets -p TCP -s 192.168.0.255/24 --sport $UNPRIV_PORTS --dport 23 -j allowed

$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 2074 -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

$IPTABLES -A in_traf -j RETURN
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$IPTABLES -A fwd_in_traf -j RETURN
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

$IPTABLES -A chain_2 -j RETURN
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$IPTABLES -A INPUT -i eth1 -j in_traf
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets

$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BROADCAST_ADDRESS -j ACCEPT

$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets


$IPTABLES -A FORWARD -o eth0 -d 192.168.0.2 -j chain_2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets

$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT


$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Michael , 05-Фев-03 12:57 
Если хочешь посчитать траффик то правила для forward должны быть такими
iptables -A FORWARD -o eth0 -s any/0 -d 192.168.0.0/24 -j chain_2
iptables -A FORWARD -o eth0 -s 192.168.0.0/24 -d any/0 -j chain_3

iptables -A chain_2 -j ACCEPT
iptables -A chain_3 -j ACCEPT

тогда траффик будет считаться и туда и обратно для всей сети кроме этой машины, а унее надо счтать input & output


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Eugene , 09-Фев-03 08:19 
здравствуйте подскажите как нужно изменить скрипт если я хожу в инет через модем:
есть соединение ppp0 оно постоянно отключается и выключается :) dialup короче :)
есть три сетевухи внутри eth0,1,2 нужно подсчитать траффик входящий для каждого пользователя.
Спасибо.

"Виснет гад."
Отправлено Pavel A. Bragin , 19-Мрт-03 13:12 
По твоему сценарию настрил свой скрипт с небольшими дополнениями, но суть оталась та же. После запуска скрипта  iptables вистет намертво, причем перестает пропускать трафик совсем !!!! при запросе iptables -L оооченнь долго думает. В чем может быть проблема.
ЗЫ: перед запуском скрипта остановил iptables и удалил файл /etc/sysconfig/iptables
испльзую iptables v1.2.6a

"Виснет гад."
Отправлено Criz , 19-Мрт-03 14:38 
Он не виснет, а загружается, у меня но 433 Селероне с 3-мя сетями он грузится минут 15-20...

"Виснет гад."
Отправлено Dmitry , 06-Апр-03 19:43 
Я так думаю. не через -L нужно снимать а с файлика /proc/net/не помню какой но внем намного проще взять. пИмя правила последнее в строке

"Как посчитать трафик кронов на шлюзе"
Отправлено void , 19-Мрт-03 16:32 
Я тут накропал с горем пополам скрипт который снимает вход и выход по каждому ипишнику идущему через шлюз вроде все пашет
но возникла проблема я никак не могу посчитать траф IN OUT самого шлюза(дело в том что у меня запускаются кроны которые снимают дамп базенки с внешнего сервера )
у меня eth0-наружный eth1(192.168.0.100)-локалка
подскажите плз я пытался сделать так
iptables -A INPUT  -i eth0  -d localhost -s ! 192.168.0.0/24 -j chain_inv
iptables -A OUTPUT -i eth0  -s localhost -d ! 192.168.0.0/24 -j chain_outv
но поймать не смог - да и думаю что бред написал
пробовал другими путями но добился только того что получаю общее число пройденого трафа через внешний интерфейс

вот мой пример моего скрипта на iptables для учета статистики по всем ип адресам локальной сети
#!/bin/sh
IPTABLES="iptables"
while [ $i -le 254 ]
do
   $IPTABLES -N chain_in$i
   $IPTABLES -N chain_out$i
   let i=$i+1
done
i=1
while [ $i -le 254 ]
do
   $IPTABLES -A chain_in$i -j RETURN
   $IPTABLES -A chain_out$i -j RETURN
   let i=$i+1
done

i=1
while [ $i -le 254 ]
do
   $IPTABLES -A FORWARD  -i eth1  -s 192.168.0.$i  -d ! 192.168.0.100  -j chain_out$i
   $IPTABLES -A FORWARD  -i eth0  -d 192.168.0.$i  -s ! 192.168.0.100  -j chain_in$i
   let i=$i+1
done
$IPTABLES -t nat -A POSTROUTING -p TCP -j MASQUERADE

PS не материте сильно:) я в этом только начал копаться вполне возможно что вообще бред написал:(


"Как посчитать трафик кронов на шлюзе"
Отправлено Прохожий , 09-Апр-03 13:26 
У меня немного другое горе
есть шлюз который подк к инетe через VPN по тунелю
eth0 - лок
eth1 - внеш
ещё поднимается тунель ppp0
дык вот траф инетный видно на eth1 а не на ppp0
почему ?
как тут вести статистику по клиентам ?

"Как посчитать трафик кронов на шлюзе"
Отправлено Madcat , 06-Май-03 18:50 
Странно. Вроде должен подниматься pptp0 или я ошибаюсь?
Но все равно... Считай просто на eth0 да и все...

"Тематический каталог: Linux Расчет трафика через Iptables. (..."
Отправлено Denis , 08-Май-03 11:07 
Мне нужно перенаправить входящие из инета пакеты на порт 1352 в другой порт но на локальной машине. Я пишу вот это:

[root@localhost sbin]# iptables -t nat -A PREROUTING -p tcp -d 81.30.192.36 --dport 1352 -j DNAT --to-destination 192.168.1.2:1352

И мне он выдает вот это:                              

/lib/modules/2.4.18-6mdk/kernel/net/ipv4/netfilter/ip_tables.o.gz: init_module:
Device or resource busy                                                        
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters                                                        
modprobe: insmod /lib/modules/2.4.18-6mdk/kernel/net/ipv4/netfilter/ip_tables.o.gz failed                                                                      
modprobe: insmod ip_tables failed                                              
iptables v1.2.5: can't initialize iptables table `nat': iptables who? (do you need to insmod?)                                                                  
Perhaps iptables or your kernel needs to be upgraded.  

Что делать и как? Если можно то поподробнее я с линуксом знаком не давно и едро пересобирать не умею.


"Тематический каталог: Linux Расчет трафика через Iptables. (..."
Отправлено Madcat , 08-Май-03 13:10 
>Мне нужно перенаправить входящие из инета пакеты на порт 1352 в другой
>порт но на локальной машине. Я пишу вот это:
>
>[root@localhost sbin]# iptables -t nat -A PREROUTING -p tcp -d 81.30.192.36 --dport
>1352 -j DNAT --to-destination 192.168.1.2:1352
>
>И мне он выдает вот это:
>
>/lib/modules/2.4.18-6mdk/kernel/net/ipv4/netfilter/ip_tables.o.gz: init_module:
>Device or resource busy
>Hint: insmod errors can be caused by incorrect module parameters, including invalid
>IO or IRQ parameters
>modprobe: insmod /lib/modules/2.4.18-6mdk/kernel/net/ipv4/netfilter/ip_tables.o.gz failed
>modprobe: insmod ip_tables failed
>iptables v1.2.5: can't initialize iptables table `nat': iptables who? (do you need
>to insmod?)
>Perhaps iptables or your kernel needs to be upgraded.
>
>Что делать и как? Если можно то поподробнее я с линуксом знаком
>не давно и едро пересобирать не умею.

В ядрах 2.4.18-5 нет поддержки iptables.
Решение:
Поставить другое ядро.
Например kernel-2.4.18-18mppe.i386.rpm
Взять его по этой ссылке. 12 мег..
http://prdownloads.sourceforge.net/poptop/kernel-2.4.18-18mp...


"Apache Toolbox - комплект модулей не входящих в поставку apache"
Отправлено DrBuoy , 14-Май-03 16:05 
Хорошая штука, наверное, но, почему-то, до распаковки не узнаешь, что только для Апача_1.3.хх. У меня - 2.0.43, и инсталлироваться пакет не захотел. Может, чего-нибудь я не так делал? Буду признателен, если кто подскажет, как надо

"??"
Отправлено Max , 14-Июл-03 17:13 
A chem otlichaetsya eto ot togo chto napisano vyshe? Zachen sozdavat' otdel'nye chainy dlya pol'zovatelei esli mozhno sozdat' odin chain dlya nix, a tam prosto neskol'ko pravil?


#!/bin/bash
/sbin/iptables -N accounting
/sbin/iptables -I INPUT 1 -i ppp0 -j accounting
/sbin/iptables -I OUTPUT 1 -o ppp0 -j accounting
/sbin/iptables -I FORWARD 1 -i ppp0 -j accounting
/sbin/iptables -I FORWARD 1 -o ppp0 -j accounting


i=2
while [ $i -le 254 ]
   do
    /sbin/iptables -A accounting -i ppp0 -d 192.168.90.$i -j RETURN
    /sbin/iptables -A accounting -o ppp0 -s 192.168.90.$i -j RETURN
    i=`expr $i + 1`
   done


"Linux Расчет трафика через Iptables. Вопрос по анализу лога."
Отправлено Deniz , 27-Авг-03 12:15 
Сделал биллинг на основе данного скрипта, вроде считает. Хотя все не так выглядит как хотелось бы.
Хотелось бы узнать:
Есть ли готовый скрипт который может анализировать эти текстовые файлы и создавать что нить более наглядное? Или может кто-нибудь поделиться мыслями какие шаги должны быть в скрипте для анализа этих текстовых файлов?
Хотелось бы просто видеть сколько мб прокачивается всего и по отдельным айпи в частности на одной странице .
немного програмирую на bash, но если вариантов нет попробую изучуть подходящий для этого язык.
Заранее спасибо за ответы.


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено SavaJr , 12-Сен-03 08:03 
быстро и просто кладет в базу

каждый час
========================
iptables -vnxL -Z FORWARD |grep ACCEPT |grep -e "192.168" |perl stat.mysql.saver


сорс stat.mysql.saver
======================================
#! /usr/bin/perl

use Mysql;
$db = Mysql->Connect('localhost', 'traffic', 'root');

#!/usr/bin/perl

while (<STDIN>) {
    #print $_;
    ($empty, $pkts, $bytes, $target, $prot, $opt, $in, $out, $source, $destination) = split(/\s+/);
    #print $pkts;
    #print "\n\r";
    $sql = "insert into traffic values ('', '$pkts', '$bytes', '$target', '$prot', '$opt', '$in', '$out', '$sour
ce', '$destination', NOW())";
    $db->Query($sql);
}


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Андрей , 15-Окт-03 11:10 
сделал скрипт, генерит страничку со статистикой,
скрин можно посмотреть здесь
http://sgb.irk.ru/~andrek/img/traf.jpg
базу кладет в mysql, работает с настройками iptables  см. наверх.
скрипт лежит здесь
http://sgb.irk.ru/~andrek/files/start.pl
вся настройка внутри.

"Linux Расчет трафика через Iptables. (linux firewall iptable..."
Отправлено soldja , 22-Окт-03 12:20 
картинка симпотная, но сам скрипт недоступен - you  don't have permission to access bla-bla.. сheck it, plz? :)

"Linux Расчет трафика через Iptables. (linux firewall iptable..."
Отправлено andrek , 22-Окт-03 12:35 
ок, проверил, права исправил :)
Статистики на месяц нету пока только по дням, мыслей есть много но нету времени..
Если кто сделает подсчет за месяц, кинь инфо плиз.
Успехов!
Андрей.

"Linux Расчет трафика через Iptables. (linux firewall iptable..."
Отправлено soldja , 22-Окт-03 13:56 
>ок, проверил, права исправил :)
>Статистики на месяц нету пока только по дням, мыслей есть много но
>нету времени..
>Если кто сделает подсчет за месяц, кинь инфо плиз.
>Успехов!
>Андрей.
спасибо :)
если не лениться не буду, может и сделаю статистику по месяцам


"Linux Расчет трафика через Iptables. (linux firewall iptable..."
Отправлено andrek , 12-Ноя-03 15:54 
Вот еще одна рабочая ссылка на скрипт
http://wizardplus.irk.ru/~andrek/files/start.pl
Скрина нету, сами увидите при загрузке.

"Проблема syslog"
Отправлено John , 04-Дек-03 20:44 
Использую простой метод сбора информации для дальнейшего расчета траффика,
который описан в руководствах по iptables.
Задаю правила на брэндмауэре (для эксперимента подключил свой компьютер
через брэндмауэр к локальной сети)
eth0(192.168.11.9) -  включен в мой компьютер (ip 192.168.11.60),
eth1(192.168. 1.9) -  в локальную сеть

Правила такие:
iptables -A FORWARD -i eth1 -o eth0 -d 192.168.11.60 -j LOG --log-level info --log-prefix FORWARD pakets

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.9


в /etc/syslog.conf добавил kernel.=info /var/log/iptables
Перекачиваю информацию из локальной сети (100Mbit) на свой компьютер.

При небольшом трафике все ОК, но при увеличении в лог попадают заголовки не всех пакетов.

При суммировании длинны пакетов получилось следущее.
Выкачав информации объемом 400Mb я насчитал только порядка 20Mb.

Да и при просмотре файла видно что количество строк раз в 10 меньше чем
должно было пройти пакетов.

При использовании ULOG картина аналогичная.

Комманда iptables -v -L показывает все верно.

Может где нибудь необходимо размер какого-нибудь буфера увеличить ???.


"Проблема syslog"
Отправлено вася , 03-Авг-04 16:48 
>Комманда iptables -v -L показывает все верно.
>
>Может где нибудь необходимо размер какого-нибудь буфера увеличить ???.

может здесь зарыта собака:
man iptables, далее смотри --limit rate
лимиты совпадений, по умолчанию допускается 3 совпадения в час


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Peter , 20-Дек-03 16:00 
# Насчет всяких там ограничений по счетчикам...

IN=`iptables -L INPUT   -v -x | grep traf | awk '{print $2}'`
FW=`iptables -L FORWARD -v -x | grep traf | awk '{print $2}'`

echo qwerty | awk -v inp=$IN -v fwd=$FW '
{
    printf "INPUT + FORWARD = %f\n", a+b;
    printf "INPUT=.6f FORWARD=.6f\n",a,b;
}'

# awk посчитает все во float'е, и числа могут
# быть о-чень большого размера, кому не лень -
# попробуйте... Здесь счетчики в байтах, кому не
# нравится - можно поделить на 1024, а можно -
# и еще раз...


"Linux Расчет трафика через Iptables. (linux firewall iptables traffic)"
Отправлено Peter , 20-Дек-03 16:04 
Sorry, в предыдущем тексте непонятки с квадратиками... Это стандартный сишный printf float-чисел, например - процент14.6f.

"Linux Расчет трафика через Iptables. мой скрипт"
Отправлено FlanjaR , 21-Янв-05 16:49 
Вот мой скрип, был написан за пару часов. Так что несколько кривоват, но работает и решает проблему добавления юзеров (ип-адресов)

=====================[tcount]=
#!/bin/bash

. /etc/tcount/tcount.conf

HOSTS=`cat $HOSTS_ACCEPT_CONF`

ins_mod() {
for MOD in $IP_MOD
do
    M=`lsmod | grep ^$MOD`
    if [ -z "$M" ]
    then
    `modprobe $MOD`
    fi
done
}


addrule() {
    $IPTABLES -N TCOUNT_OUT_$1
    $IPTABLES -N TCOUNT_IN_$1
    $IPTABLES -F TCOUNT_OUT_$1
    $IPTABLES -F TCOUNT_IN_$1
    $IPTABLES -A INPUT -j TCOUNT_IN_$1
    $IPTABLES -A FORWARD -j TCOUNT_OUT_$1
    $IPTABLES -A FORWARD -j TCOUNT_IN_$1
    $IPTABLES -A OUTPUT -j TCOUNT_OUT_$1
    $IPTABLES -A TCOUNT_OUT_$1 -s $2
    $IPTABLES -A TCOUNT_IN_$1 -d $2
    
    $IPTABLES -t nat -A POSTROUTING -s $1 -o eth0 -j SNAT --to-source 192.168.1.1
}

rmrule() {
    $IPTABLES -D INPUT -j TCOUNT_IN_$1
    $IPTABLES -D FORWARD -j TCOUNT_OUT_$1
    $IPTABLES -D FORWARD -j TCOUNT_IN_$1
    $IPTABLES -D OUTPUT -j TCOUNT_OUT_$1
    $IPTABLES -D TCOUNT_OUT_$1 -s $2
    $IPTABLES -D TCOUNT_IN_$1 -d $2
    $IPTABLES -F TCOUNT_OUT_$1
    $IPTABLES -F TCOUNT_IN_$1
    $IPTABLES -X TCOUNT_OUT_$1
    $IPTABLES -X TCOUNT_IN_$1
    
    $IPTABLES -t nat -D POSTROUTING -s $1 -o eth0 -j SNAT --to-source 192.168.1.1
}

start() {
    ins_mod
    echo "adding rules"
    for HOST in $HOSTS
    do
    addrule $HOST $HOST
    done
}

stop() {
    echo "removing rules"
    for HOST in $HOSTS
    do
    rmrule $HOST $HOST
    done
}

restart() {
    stop
    start
}

if [ "$1" = "start" ]
then
    start
elif [ "$1" = "stop" ]
then
    stop
elif [ "$1" = "restart" ]
then
    restart
else
    echo "use: $0 {start|stop|restart}"
fi
# END


=====================[write]=
#!/bin/bash

MYSQL="/usr/bin/mysql -utcount --password=password tcount -e"
IPTABLES="/sbin/iptables"

DATE=`date +"%Y-%m-%d"`
NAME="Test"

my_write() {
    sql="INSERT INTO \`traffic\` ( \`id\` , \`date\` , \`ip\` , \`inb\` , \`outb\` ) VALUES ( '' , '$DATE', '$1', '$TRAF_IN', '$TRAF_OUT' );"
    `$MYSQL "$sql"`
}

my_change() {
    OLD_IN=`$MYSQL "$sql" | sed -e "1d" | awk '{print $1}'`
    OLD_OUT=`$MYSQL "$sql" | sed -e "1d" | awk '{print $2}'`
    let "NEW_IN = $TRAF_IN + $OLD_IN"
    let "NEW_OUT = $TRAF_OUT + $OLD_OUT"
    sql="UPDATE \`traffic\` SET \`inb\` = '$NEW_IN', \`outb\` = '$NEW_OUT'
    WHERE \`date\` = '$DATE' AND \`ip\` = '$1' LIMIT 1 ;"
    `$MYSQL "$sql"`
}

work() {
    sql="SELECT inb , outb FROM traffic WHERE date='$DATE' AND ip LIKE '$1'"
    IN=`$MYSQL "$sql" | sed '1d' | awk '{print $1}'`
    OUT=`$MYSQL "$sql" | sed '1d' | awk '{print $2}'`
    TRAF_OUT=`$IPTABLES -L -Z TCOUNT_OUT_$1 -x -v | sed -e "1,2D" | awk '{print $2}' | sed -e '2d'`
    TRAF_IN=`$IPTABLES -L -Z TCOUNT_IN_$1 -x -v | sed -e "1,2D" | awk '{print $2}' | sed -e '2d'`
    echo "$TRAF_IN"
    if [ "$IN" = "" ]
    then
    my_write $1
    else
    my_change $1
    fi

}

for HOST in `cat /etc/tcount/accept.conf`
do
    work $HOST
done  

#END

=====================[accept.conf]=
192.168.0.1
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6

=====================[tcount.conf]=
IPTABLES="/sbin/iptables"
HOSTS_ACCEPT_CONF="/etc/tcount/accept.conf"
IP_MOD="iptable_nat ipt_conntrack iptable_filter ip_tables"

tcount - добавляет и удаляет правила
write - пишет статистику в базу
accept.conf - список хостов которым разрешен доступ в инет
tcount.conf - пути


"Тематический каталог: Linux Расчет трафика через Iptables. (..."
Отправлено Makc , 23-Мрт-05 17:31 
Кто искал готовое решение по учету траффика для пользователей с разделением на внешний- забугорный и т.д. рекомендую взглянуть: http://stg.dp.ua/