Учет трафика
3736
5
Коллеги, всех приветствую.
Помогите, пожалуйста, с решением такой задачи.
Исходные данные:
1) Сеть около 40 рабочих станций
2) Шлюз под управлением Ubuntu Server 8.04
3) На шлюзе три сетевых интерфейса: смотрщий в локалку (eth0) и два интерфейса для двух разных провайдров, основной и резервный (eth1 и eth2).
4) На шлюзе подняты три впн-туннеля с удаленными филиалами с помощью openvpn (tun0, tun1, tun2).
5) Интернет раздается клиентам средствами iptables и прокси-сервера squid

Требуется организовать подсчет трафика, проходящего через iptables с подробной расшифровккой вида "с какого ip - когда - на какой ip - какой порт - сколько байт", в виде удобочитаемых веб-страниц. Должна быть группировка информации по ип, по портам. Отдельно требуется считать трафик впн. Трафик squid'а рашифровывать не надо, достаточно указать его общий объем.
Требуется организовать только подсчет трафика. Никаких ограничений, внесения изменений в правила Iptables и squid не надо!

Какую софтину можете посоветовать?
kalita
Никаких ограничений, внесения изменений в правила Iptables и squid не надо!
Надо =)
Настройте экспорт информации о траффике через ulogd/fprobe-ulog из iptables по протоколу netwlow. И записывайте например в файл для дальнейших анализов, либо напрвьте на NetAMS(бесплатный)/UTM(платный биллинг). Для разбора/фильтра/анализа netflow-потока существует множество инструментов.
А вообще для linux нет такой "софтины", но есть набор инструментов, которые позволяют данную задачу решать очень гибко.
kalita
Например:

SARG (Squid Analysis Report Generator - анализатор логов SQUID и генератор отчётов по ним) - малюсенькая программа (чуть больше 300кб) которая анализирует логи прокси сервера SQUID и выдаёт отчёт - кто, куда лазил, сколько соединений, сколько мегов скачано. Строит достаточно красивые графики - по часам суток, дням месяца и другие. Также выдаёт и побочную инфу - процент попадания в кэш (т.е. сколько squid отдал из своего локального кэша, а не из инета). Программа простая до безобразия, но очень функциональная. Траффик ей особо не посчитаешь - т.к. даже если у вас только инет через squid всё равно SARG считает вместе с инфой отданной из кэша - т.е. всегда будет врать в большую сторону. Статистику выдаёт в html-виде, т.е. для человеческого просмотра нужен установленный WWW-сервер на машине (можно просто вытаскивать её к себе на комп, но это тоже не для слабонервных занятие - несколько тысяч мелких файлов, мегов под 300 размером).

Ну это типа самый простой вариант.
KotoZ
Не, SARG не пойдет. Анализ трафика squid'а уже сделан с помощью lightsquid'а, и это полностью устраивает. Нужно анализировать тот трафик, который ходит не через проксю.
Mad_Dollar
Надо =)
Я имею в виду, что вручную-то я внесу нужные изменения. Просто я хочу, чтобы САМА программа, ведущая статиску, не пыталась этого делать. Т.е. не вводила никаких квот, ограничений, и не убивала уже существующие правила.

За совет спасибо, буду пробовать
kalita
Т.е. не вводила никаких квот, ограничений, и не убивала уже существующие правила.
настройте логгирование в ulog в iptables для тех правил которые вам нужно считать. Например можно сделать таким образом:
Добавить цепочку в filter.forward, например logging, состоящую из бвух правил - сначала -j ulog, потом -j accept.
разрешающие правила в filter.forward заменить -j accept на -j logging
потом ставите пакеты flow-tools и fprobe-ulog, настраиваете.
первый пакет - это утилиты для приема/записи_на_диск/фильтра/экспорта netflow-потоков.
второй - демон для принятия данных от ulog и соответсвенно преобразования и экспорта их в netwlow-поток
В вашем случае если отдельную машину под биллинг вы не будете организовывать можете это совместить на одном хосте.
При приеме потока существует возможность выполнить скрипт (use google) - и полученный фал можно перегнать например перл/шелл-скриптом в любую sql-базу любого формата. Ну а для работы с sql можно либо самописный простенький скрипт писать и по крону вызывать, генерируя статитеский хтмл с нужными отчетами, либо взять какую-нибудь вебморду на перл/пхп написать самому...

впринципе по запросу aptitude search flow
нашелся какой-то пакет flowscan - попробуйте, я честно не пробовал, но судя по описанию может подойдет.