LINUX.ORG.RU
ФорумAdmin

Прозрачный анализатор трафика


0

0

Есть ли такой софт который можно поставить на юниксовый роутер для анализа проходящего трафика и показа юзерам статистики (либо отзеркалить апстрим-порт свитча на отдельную машинку для анализа)?

Прокси не подходит, т.к. должно быть прозрачно и для любых протоколов. В статистике хотелось бы видеть _имя_ и адрес посещённого хоста, протокол, количество полученного и отданного трафика и время.

Если ничего готового нет то может быть будут идеи как и на основе чего такое можно реализовать? В чём лучше хранить такое количество данных чтобы быстро их доставать в реальном времени?

anonymous

либо libpcap либо iptables на предмет действий LOG и ULOG и ещё чего-нить такого.

а дальше логи->БД->веб морда и т.д. и т.п.

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

А какой канал максимум на libpcap можно обсчитать? Опять же имена хостов получить достаточно хитрая задачка... Получается нужно из пробегающих dns-пакетов извлекать пары имя-хост и потом подставлять куда надо, ибо реверс-dns зачастую выдаёт совсем не то или вообще ничего не выдаёт.

anonymous
()
Ответ на: комментарий от anonymous

>ибо реверс-dns зачастую выдаёт совсем не то или вообще ничего не выдаёт.

на ип адрес может быть повешено дофига всяких разных имён, я возьму и в hosts пропишу нужное днс имя, которого больше нет нигде... ученье свет короче

dimon555 ★★★★★
()

Сделать прозрачный прокси для некоторых протоколов (http, https), это тебе даст список посещенных веб-сайтов. Для других протоколов будет только список IP и протоколов (udp, tcp и тд) и по типу трафика (по портам) можно рассортировать.

ansky ★★★★★
()

лучше скрестить из вышеперечисленного: прозрачный прокси где возможно + netflow (я всегда юзал ipcad + flow-tools).

sidor ★★
()
Ответ на: комментарий от Nao

> netams
> вполне симпатичненько.


Читал но не пробовал. Скажем в месяц будет гигов 10 сжатых netflow-данных (а это несколько сотен миллионов потоков). Как оно в базе будет храниться и какой перформанс получится при этом на отчётах? Если эти отчёты юзерам отдать через веб они же одним-двумя запросами базу нафиг положат... Насколько грамотно netams в табличках это хранит? Секционирование по времени или куча динамически создаваемых?

Пока промежуточная идея такая. Обрабатывать flow-файлы по мере их получения коллектором и на их основе обновлять некие счётчики в базе. Таблицы секционировать (если база позволяет) либо создавать их динамически (дофига, на каждого юзера и день по одной). В конкретной таблице хранить отдельно входящие и исходящие хосты и суммировать количество байтиков по ним. Reverse-DNS резолвить скриптом в несколько тредов и результат кэшировать в memcached (либо положиться на кэш самого DNS).

Пока не понятно как показывать протокол (порт), ибо придётся сопоставлять входящие и исходящие потоки и выделять из них отдельные двунаправленные соединения а затем определять кто их инициировал. Без этого получим белиберду из случайно выбираемых портов отправителя. Грубо говоря, если мы упрощенно рассматриваем tcp соединение как независимые входящие и исходящие пакеты, то юзер в детализации своего входящего трафика увидит кучу входящих соединений на абстрактные и не понятные для него порты, а хотелось бы чтобы показался к примеру входящий трафик протокола http или ICQ. Определять по порту отправителя можно, но не совсем надёжно, т.к. соединение теоретически могло быть инициировано удалённым хостом с well known 80 или 5190 порта на какой-нибудь открытый у юзера сервис и это действительно входящий трафик.

anonymous
()
Ответ на: комментарий от Nao

>если подменять на прокси сертификаты то ходит)

А как такое сделать? Что-то никогда о таком не думал.

Redfoxnet
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.