nuclearcat Posted June 7, 2012 Posted June 7, 2012 Из любопытства написал, утилитка, примитивная до невозможности, но помогает находить ассимметрию и всякие гадости. Если есть смысл - можно доработать и сделать умнее К примеру у меня она нашла один вяленький DDoS, и одного "спутникоеда". Как работает? Смотрит, если пакеты уходят на ip, добавляет этот адрес в хеш, и если ответы на этот адрес пришли - помечает. Если же пакеты на этот адрес уходят, а ответов нет, при превышении кол-ва пакетов более n - выведет ip адрес на экран и обнулит статистику. Запуск прост интерфейс, pcap правило, и количество пакетов на которые срабатывать ./blockdetect -d eth1.194 -f "not net 82.X.X.0/24" -n 1000 Надолго не запускать, очистки мусора нет, потому скорее всего через полчаса она сожрет всю память, если у вас много траффика :) Исходники на http://www.nuclearcat.com/block_detect_test.tgz P.S. я ее цеплял у себя на миррор порт своего аплинка Вставить ник Quote
Andy52280 Posted June 8, 2012 Posted June 8, 2012 P.S. я ее цеплял у себя на миррор порт своего аплинка Круто, когда можно отмиррорить аплинк на комп. Достаточно часто это сделать нереально. Не задумывались над задачей анализа NetFlow для этих целей? IMHO менее затратное решение. Вставить ник Quote
agr Posted June 8, 2012 Posted June 8, 2012 nuclearcat, а у вас специально сделано, что если придет хотя бы один ответный пакет, то адрес навсегда оказывается в "белом листе", даже если ответные пакеты больше не приходят? Вставить ник Quote
nuclearcat Posted June 8, 2012 Author Posted June 8, 2012 Да, так задумано, это было написано за 5 минут, для "сюминутного" анализа траффика. Для меня в частности было важно отловить местных провайдеров с корявым URPF. Естественно можно анализировать более глубоко, и сделать очистку старых значений, но пока это видимо никому не нужно. Вставить ник Quote
Dimic Posted June 9, 2012 Posted June 9, 2012 nuclearcat Хелп ми In file included from blockdetect.c:14: /usr/include/netinet/ip.h:69: error: field 'ip_src' has incomplete type /usr/include/netinet/ip.h:69: error: field 'ip_dst' has incomplete type /usr/include/netinet/ip.h:155: error: field 'ipt_addr' has incomplete type /usr/include/netinet/ip.h:190: error: field 'ippseudo_src' has incomplete type /usr/include/netinet/ip.h:191: error: field 'ippseudo_dst' has incomplete type blockdetect.c: In function 'tor_cb': FreeBSD 8.2 Вставить ник Quote
agr Posted June 9, 2012 Posted June 9, 2012 (edited) Dimic, поставьте "#include <netinet/in.h>" перед "#include <netinet/ip.h>". Но только вам это не поможет :) Эти ошибки исчезнут, но будут другие. В FreeBSD несколько другое API, надо частично переделать код. Попробовал эту утилиту. Отзеркалил трафик с одного браса(аплинк мне без вариантов не удастся отзеркалить). Основная отлавливаемая категория трафика - пакеты на ip адреса, которые в данный момент не привязаны к pppoe-сессиям на брасе, судя по всему эти ip прописаны где-то в торрентах или тому подобном. Также время от времени кто-то подставляет мои IP при сканировании портов - на один мой случайный IP много syn/ack и fin/ack приходит. Также поймал одного своего флудера. Также есть довольно приличное количество пакетов на серые сети, в особенности на адрес 192.168.1.2, видимо у клиентов маршруты неправильно встали при подключении pppoe. И еще почему-то много запросов на 80-й порт адреса 111.111.111.111 от самых разных моих клиентов, что бы это значило? В общем, для экспресс-мониторинга вещь годная если дальше развивать. Если кому надо есть патчик для очистки памяти. garbage_collect_patch.txt Edited June 9, 2012 by agr Вставить ник Quote
nuclearcat Posted June 9, 2012 Author Posted June 9, 2012 Кстати я 111.111.111.111 тоже видел, весьма странно. Патч применю, причешу и залью на code.google.com Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.