Перейти к содержимому
Калькуляторы

FastNetMon - программа для выявления входящих/исходящих атак

А что за сервис по этим портам бегает?

 

Скорее всего это был торрент, который мы ошибочно приняли за атаку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что за сервис по этим портам бегает?

 

Скорее всего это был торрент, который мы ошибочно приняли за атаку.

Да, похоже на торрент, но точно сказать не можем, т.к. не сделали дамп сырого трафика. (tcpdump -w)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Павел, подскажите пожалуйста: когда fastnetmon выполняет скрипт уведомления, то происходит ли блокировка до завершения работы скрипта, или он выполняется в новом треде?

 

Павел, подскажите пожалуйста: когда fastnetmon выполняет скрипт уведомления, то происходит ли блокировка до завершения работы скрипта, или он выполняется в новом треде?

Отбой. :) Нашёл сам:

       // We should execute external script in separate thread because any lag in this code will be very distructive
       boost::thread exec_thread(exec_with_stdin_params, script_call_params, full_attack_description);
       exec_thread.detach();

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На самом деле блокировка в этом месте-таки есть, маленькая, но все же задержка от форка имеется. В будущем я думаю вынести это в спец тред и передавать в него сигнал на бан/анбан через очередь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Баг по sFLOW забил: https://github.com/FastVPSEestiOu/fastnetmon/issues/168 но, признаться, не обещаю скорого фикса. У меня стенд "одноногий" (Экстримы в моей прошивке не умеют зеркалить оба направления, лишь входящий) и надо бы pcap дамп.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Взять минимальный mtu в сети, это 1496, то для 100 000 килобит (100 мегабит) деленных на 1.5 килобита, то выйдет около 65000 пакетов чтобы забить весь канал.

Павел, в расчетах ошибся, 1496 байт - это 11968 бит. Соотв-но на MTU 1496 байт чтобы получить 100Мбит/c достаточно будет и 7000 пакетов.

В разных DDOS атаках размер пакетов разный, поэтому определять атаки только по числу пакетов очень сложно. Например атаки с NTP серверов идут с размером пакета в районе 400 байт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мда, Павел правда ошибся в расчетах и смело приравнял мегабиты к мегабайтам и так и посчитал =) Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте!

Поставил fastnetmon на прием netflow.

Все работает пока в конфиге не поставиш enable_ban = on. При запуске падает в кору.

Вот анализ core:

 

Program terminated with signal 11, Segmentation fault.

#0 0xb735b3b7 in vfprintf () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

(gdb) bt

#0 0xb735b3b7 in vfprintf () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

#1 0xb737ed80 in vsnprintf () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

#2 0xb766eef2 in log4cpp::StringUtil::vform(char const*, char*) () from /usr/lib/liblog4cpp.so.5

#3 0xb766043b in log4cpp::Category::_logUnconditionally(int, char const*, char*) () from /usr/lib/liblog4cpp.so.5

#4 0xb765fa1f in log4cpp::Category::info(char const*, ...) () from /usr/lib/liblog4cpp.so.5

#5 0x08070a4a in execute_ip_ban(unsigned int, map_element, map_element, std::string) ()

#6 0x080777df in recalculate_speed() ()

#7 0x08078777 in recalculate_speed_thread_handler() ()

#8 0xb77b542c in ?? () from /usr/lib/libboost_thread.so.1.49.0

#9 0xb7795c39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0

#10 0xb73f0c6e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

 

Компилил стандарным скриптом. Не подскажите в чем может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну видимо в том, что execute_ip_ban() пытается логировать данные, которых нет, где-то разыменовуется нулевой указатель. Нужно больше информации для дэбага, может с -g или -g3 пересобрать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

собрал з дебагом

gdb выдает:

#3 0xb764343b in log4cpp::Category::_logUnconditionally(int, char const*, char*) () from /usr/lib/liblog4cpp.so.5

#4 0xb7642a1f in log4cpp::Category::info(char const*, ...) () from /usr/lib/liblog4cpp.so.5

#5 0x080716db in execute_ip_ban (client_ip=client_ip@entry=3030414768, speed_element=..., average_speed_element=...,

flow_attack_details=<error reading variable: Cannot access memory at address 0x0>) at /usr/src/fastnetmon/src/fastnetmon.cpp:1860

#6 0x08079be4 in recalculate_speed () at /usr/src/fastnetmon/src/fastnetmon.cpp:1379

 

особо не вникал

в fastnetmon.cpp:1860 убрал вообще

logger.info("We run execute_ip_ban code with following params in_pps: %d out_pps: %d in_bps: %d out_bps: %d and we decide it's %s attack",

in_pps, out_pps, in_bps, out_bps, data_direction_as_string.c_str());

 

пока что работает нормально

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте!

Поставил fastnetmon на прием netflow.

Все работает пока в конфиге не поставиш enable_ban = on. При запуске падает в кору.

Вот анализ core:

 

Program terminated with signal 11, Segmentation fault.

#0 0xb735b3b7 in vfprintf () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

(gdb) bt

#0 0xb735b3b7 in vfprintf () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

#1 0xb737ed80 in vsnprintf () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

#2 0xb766eef2 in log4cpp::StringUtil::vform(char const*, char*) () from /usr/lib/liblog4cpp.so.5

#3 0xb766043b in log4cpp::Category::_logUnconditionally(int, char const*, char*) () from /usr/lib/liblog4cpp.so.5

#4 0xb765fa1f in log4cpp::Category::info(char const*, ...) () from /usr/lib/liblog4cpp.so.5

#5 0x08070a4a in execute_ip_ban(unsigned int, map_element, map_element, std::string) ()

#6 0x080777df in recalculate_speed() ()

#7 0x08078777 in recalculate_speed_thread_handler() ()

#8 0xb77b542c in ?? () from /usr/lib/libboost_thread.so.1.49.0

#9 0xb7795c39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0

#10 0xb73f0c6e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

 

Компилил стандарным скриптом. Не подскажите в чем может быть проблема?

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

 

насколько я помню скрипт бана должен забирать данные с stdin иначе fastnetmon валится в корку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем привет! Вернулся с отпуска.

 

Lynx10, кардинально можно решить вырубив трекинг соединений: enable_connection_tracking = off. А можно мне бинарик и корку на почту pavel.odintsov@gmail.com ? Поидее, там везде передаются std::string, а они пустые ну никак не должны быть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавил возможность сохранения инфы об атаках в Redis! :) Кому интересно быть в курсе новостей, подписываемся на группу: https://groups.google.com/forum/#!forum/fastnetmon почти все пишу там сразу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну вот потребовалось вновь собрать на чистой машине

FreeBSD 9.3-RELEASE-p13 amd64

boost-all-1.55.0

boost-jam-1.55.0

boost-libs-1.55.0_4

libpcap-1.7.2

libpthread-stubs-0.3_6

log4cpp-1.1_1

 

а в ответ:

Scanning dependencies of target example_plugin

[ 9%] Building CXX object CMakeFiles/example_plugin.dir/example_plugin/example_collector.cpp.o

Linking CXX static library libexample_plugin.a

[ 9%] Built target example_plugin

Scanning dependencies of target fast_library

[ 18%] Building CXX object CMakeFiles/fast_library.dir/fast_library.cpp.o

/usr/distr/fastnetmon/src/fast_library.cpp: In function 'uint64_t fast_ntoh(uint64_t)':

/usr/distr/fastnetmon/src/fast_library.cpp:37: error: 'be64toh' was not declared in this scope

/usr/distr/fastnetmon/src/fast_library.cpp: In function 'uint64_t fast_hton(uint64_t)':

/usr/distr/fastnetmon/src/fast_library.cpp:51: error: 'htobe64' was not declared in this scope

*** [CMakeFiles/fast_library.dir/fast_library.cpp.o] Error code 1

 

Stop in /usr/distr/fastnetmon/src/build.

*** [CMakeFiles/fast_library.dir/all] Error code 1

 

и через нативный порт в том же месте:

[ 45%] Building CXX object CMakeFiles/ipfix_rfc.dir/ipfix_rfc.cpp.o

/usr/distr/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp: In function 'uint64_t fast_ntoh(uint64_t)':

/usr/distr/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp:37: error: 'be64toh' was not declared in this scope

/usr/distr/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp: In function 'uint64_t fast_hton(uint64_t)':

/usr/distr/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp:51: error: 'htobe64' was not declared in this scope

*** [CMakeFiles/fast_library.dir/fast_library.cpp.o] Error code 1

1 error

*** [CMakeFiles/fast_library.dir/all] Error code 2

Linking CXX static library libipfix_rfc.a

[ 45%] Built target ipfix_rfc

1 error

*** [all] Error code 2

1 error

===> Compilation failed unexpectedly.

Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to

the maintainer.

*** [do-build] Error code 1

 

доставил gcc, прогресс дало, но не надолго, хотя ядро с поддержкой netmap-а уже собрано.

Scanning dependencies of target netmap_plugin

[ 81%] Building CXX object CMakeFiles/netmap_plugin.dir/netmap_plugin/netmap_collector.cpp.o

/usr/distr/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp: In function 'uint64_t fast_ntoh(uint64_t)':

/usr/distr/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp:37: error: 'be64toh' was not declared in this scope

/usr/distr/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp: In function 'uint64_t fast_hton(uint64_t)':

/usr/distr/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp:51: error: 'htobe64' was not declared in this scope

*** [CMakeFiles/fast_library.dir/fast_library.cpp.o] Error code 1

Изменено пользователем varney

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да такая же ошибка при компиляции.

 

/usr/home/work/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp: In function 'uint64_t fast_ntoh(uint64_t)':
/usr/home/work/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp:37: error: 'be64toh' was not declared in this scope
/usr/home/work/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp: In function 'uint64_t fast_hton(uint64_t)':
/usr/home/work/fastnetmon/src/FreeBSD_port/work/fastnetmon-master/src/fast_library.cpp:51: error: 'htobe64' was not declared in this scope
*** [CMakeFiles/fast_library.dir/fast_library.cpp.o] Error code 1
1 error
*** [CMakeFiles/fast_library.dir/all] Error code 2
Linking CXX static library libsflow_plugin.a
[ 81%] Built target sflow_plugin
Linking CXX static library libnetmap_plugin.a
[ 81%] Built target netmap_plugin
Linking CXX static library libipfix_rfc.a
[ 81%] Built target ipfix_rfc
1 error
*** [all] Error code 2
1 error
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** [do-build] Error code 1

 

FreeBSD FreeBSD 9.3-STABLE #0 r268628: Tue Jul 15 00:43:08 MSK 2014 amd64

Изменено пользователем polmax

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

polmax, varney, вытягивайте новую версию - скорее всего не хватало #include <sys/endian.h>, где и объявлены функции be64toh и htobe64 :) На FreeBSD 11 оно пробрасывается сразу, а вот на старых нужно явно указать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня так получается

2015-04-23 16:30:41,929 [iNFO] We haven't template for flowset_id: 257 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:30:42,933 [iNFO] We haven't template for flowset_id: 257 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:30:43,936 [iNFO] We haven't template for flowset_id: 257 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:30:44,936 [iNFO] We haven't template for flowset_id: 257 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:30:45,937 [iNFO] We haven't template for flowset_id: 257 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:30:45,937 [iNFO] We haven't template for flowset_id: 257 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:30:46,937 [iNFO] We haven't template for flowset_id: 257 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:30:47,937 [iNFO] We haven't template for flowset_id: 257 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:30:47,937 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:30:47,937 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:31:48,075 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:31:48,075 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:32:49,330 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:32:49,330 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:33:48,471 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:33:48,471 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:34:49,612 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:34:49,612 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:35:48,754 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:35:48,755 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:36:48,968 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:36:48,968 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:37:49,085 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:37:49,085 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:38:49,205 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:38:49,206 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:39:49,450 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:39:49,450 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:40:49,589 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:40:49,589 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:41:49,761 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:41:49,761 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:42:49,715 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:42:49,715 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!
2015-04-23 16:43:49,847 [iNFO] I received netflow v9 options flowset id but I haven't support for it
2015-04-23 16:43:49,847 [iNFO] We haven't template for flowset_id: 256 but it's not an error if this message go away in 5-10 seconds. We need some time to learn it!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это вполне нормальное поведение, трафик при этом виден?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

polmax, varney, вытягивайте новую версию - скорее всего не хватало #include <sys/endian.h>, где и объявлены функции be64toh и htobe64 :) На FreeBSD 11 оно пробрасывается сразу, а вот на старых нужно явно указать.

спасибо. из сорцов все успешно, нативка осталась с той же ошибкой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Отлично! Нативка - вы про порт https://github.com/FastVPSEestiOu/fastnetmon/blob/master/src/FreeBSD_port/Makefile ? Там поидее стягивается последний снимок репо, поидее оно тоже должно ОК работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Отлично! Нативка - вы про порт, поидее оно тоже должно ОК работать.

про него самого. не собирается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, странно, а вычищали порт из кэша?

 

А между тем, FastNetMon получил полную поддержку протокола BGP и умеет пирится с роутерами по протоколу BGP - теперь никаких костылей для реализации блокировки! :)

 

Инструкция тут: https://github.com/FastVPSEestiOu/fastnetmon/blob/master/docs/EXABGP_INTEGRATION.md

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кто запутался во всех доступных бэкаэндах для захвата пакетов, нарисовал таблицу: https://github.com/FastVPSEestiOu/fastnetmon/blob/master/docs/CAPTURE_BACKENDS.md

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавьте пожалуйста перед

set(LOG4CPP_LIBRARY_PATH log4cpp)

 

проверку, что библиотека установлена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавьте пожалуйста перед

set(LOG4CPP_LIBRARY_PATH log4cpp)

 

проверку, что библиотека установлена.

 

А на какой ос бага воспроизвелась или просто руками собирали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.