Jump to content

Recommended Posts

Posted

Из любопытства написал, утилитка, примитивная до невозможности, но помогает находить ассимметрию и всякие гадости. Если есть смысл - можно доработать и сделать умнее

К примеру у меня она нашла один вяленький 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. я ее цеплял у себя на миррор порт своего аплинка

Posted

P.S. я ее цеплял у себя на миррор порт своего аплинка

Круто, когда можно отмиррорить аплинк на комп. Достаточно часто это сделать нереально.

 

Не задумывались над задачей анализа NetFlow для этих целей? IMHO менее затратное решение.

Posted

nuclearcat, а у вас специально сделано, что если придет хотя бы один ответный пакет, то адрес навсегда оказывается в "белом листе", даже если ответные пакеты больше не приходят?

Posted

Да, так задумано, это было написано за 5 минут, для "сюминутного" анализа траффика. Для меня в частности было важно отловить местных провайдеров с корявым URPF.

Естественно можно анализировать более глубоко, и сделать очистку старых значений, но пока это видимо никому не нужно.

Posted

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

Posted (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 by agr

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.