pavel.odintsov Опубликовано 3 декабря, 2014 · Жалоба Rolex, исправлено! Было аж два бага. Правильное название параметра в конфиге: threshold_flows, в Git актуальная версия. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 3 декабря, 2014 · Жалоба Также вынес время бана в конфиг. Про пороги - довольно сложная концепция, честно говоря. Это подразумевает два пороговых уровня. Первый - инициальный бан, а второй - уже уровень аварии. Но тут уже напрашивается подход в виде управления группами сетей с разбором для каждой сети своих правил и нотифай скриптов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kostyan Опубликовано 4 декабря, 2014 (изменено) · Жалоба При компиляции возникла следующая ошибка: [100%] Building CXX object CMakeFiles/fastnetmon.dir/fastnetmon.cpp.o Linking CXX executable fastnetmon /usr/bin/ld: CMakeFiles/fastnetmon.dir/fastnetmon.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv' //usr/lib/x86_64-linux-gnu/libboost_system.so.1.55.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status CMakeFiles/fastnetmon.dir/build.make:93: recipe for target 'fastnetmon' failed make[2]: *** [fastnetmon] Error 1 CMakeFiles/Makefile2:61: recipe for target 'CMakeFiles/fastnetmon.dir/all' failed make[1]: *** [CMakeFiles/fastnetmon.dir/all] Error 2 Makefile:76: recipe for target 'all' failed make: *** [all] Error 2 вылечил следующим образом: в файлике /usr/src/fastnetmon/build/CMakeFiles/fastnetmon.dir/link.txt добавил опцию -lboost_system uname -a Linux debian 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2+deb7u1 x86_64 GNU/Linux Изменено 4 декабря, 2014 пользователем Kostyan Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 4 декабря, 2014 · Жалоба А дебиян точно без кастомщины? У меня тоже на Debian 7 основная машинка под разработку, система не просило ни разу... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 4 декабря, 2014 · Жалоба Update: теперь усредненный трафик используется всегда при бане, усреднение по тарфику считается за 5 секунд: https://github.com/FastVPSEestiOu/fastnetmon/commit/990c29ea7b5350980bd98abef954399583f7be10 То есть если за последние 5 секунд нагрузка на сеть составляла 50 000 пакетов/секунду, то это повод для бана Хочется больше - меняем параметр average_calculation_time в конфиге /etc/fastnetmon.conf. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Rolex Опубликовано 5 декабря, 2014 · Жалоба Собрали, запустили. Ждемс, любуемся. Просьба включить отображение списка по среднему по умочанию. И точное при включенном параметре. ;) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 5 декабря, 2014 · Жалоба Так, еще апдейт, теперь дампы атак кладутся в спец папку /var/log/fastnetmon_attacks в формате: "/var/log/fastnetmon_attacks/10.10.10.200_05_12_14_13:58:20", из лога убраны, чтобы не засорять его лишней инфой. В принципе такие файлики можно теперь складировать и анализировать в будущем. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Rolex Опубликовано 5 декабря, 2014 (изменено) · Жалоба Не собралось: /home/fastnetmon/fastnetmon/fastnetmon.cpp: In function вЂvoid execute_ip_ban(uint32_t, map_element, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, std::string)’: /home/fastnetmon/fastnetmon/fastnetmon.cpp:2333: error: call of overloaded вЂabs(unsigned int)’ is ambiguous /usr/include/stdlib.h:771: note: candidates are: int abs(int) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cmath:102: note: long double std::abs(long double) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cmath:98: note: float std::abs(float) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cmath:94: note: double std::abs(double) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cstdlib:170: note: long long int __gnu_cxx::abs(long long int) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cstdlib:139: note: long int std::abs(long int) make[2]: *** [CMakeFiles/fastnetmon.dir/fastnetmon.cpp.o] Error 1 make[1]: *** [CMakeFiles/fastnetmon.dir/all] Error 2 centos. Последний коммит который собирается нормально: https://github.com/FastVPSEestiOu/fastnetmon/commit/e5e9ab2a4f02d9753c47872598e8612416f0eb97 Изменено 5 декабря, 2014 пользователем Rolex Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 5 декабря, 2014 · Жалоба Не собралось: /home/fastnetmon/fastnetmon/fastnetmon.cpp: In function вЂvoid execute_ip_ban(uint32_t, map_element, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, std::string)’: /home/fastnetmon/fastnetmon/fastnetmon.cpp:2333: error: call of overloaded вЂabs(unsigned int)’ is ambiguous /usr/include/stdlib.h:771: note: candidates are: int abs(int) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cmath:102: note: long double std::abs(long double) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cmath:98: note: float std::abs(float) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cmath:94: note: double std::abs(double) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cstdlib:170: note: long long int __gnu_cxx::abs(long long int) /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cstdlib:139: note: long int std::abs(long int) make[2]: *** [CMakeFiles/fastnetmon.dir/fastnetmon.cpp.o] Error 1 make[1]: *** [CMakeFiles/fastnetmon.dir/all] Error 2 centos. Последний коммит который собирается нормально: https://github.com/FastVPSEestiOu/fastnetmon/commit/e5e9ab2a4f02d9753c47872598e8612416f0eb97 Fixed! Там таился более серьезный баг на самом деле - я вычетал два беззнаковых числа и поидее в итоге вышло бы беззнаковое. Спасибо вдвойне и Вам и Центосу за вопли на этом месте :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 5 декабря, 2014 · Жалоба Все фичи собрал воедино, итого вышло так: https://github.com/FastVPSEestiOu/fastnetmon/issues/65 https://github.com/FastVPSEestiOu/fastnetmon/issues/64 https://github.com/FastVPSEestiOu/fastnetmon/issues/62 https://github.com/FastVPSEestiOu/fastnetmon/issues/63 https://github.com/FastVPSEestiOu/fastnetmon/issues/60 https://github.com/FastVPSEestiOu/fastnetmon/issues/55 Всем спасибо за фидбэк! По мере наличия времени буду дописывать фичи. В родмэпе пока вайтлистинг высокоскоростных закачек по http, а там по списку :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.elektrobenzo Опубликовано 6 декабря, 2014 · Жалоба Все фичи собрал воедино, итого вышло так: https://github.com/F...etmon/issues/65 https://github.com/F...etmon/issues/64 https://github.com/F...etmon/issues/62 https://github.com/F...etmon/issues/63 https://github.com/F...etmon/issues/60 https://github.com/F...etmon/issues/55 Здорово Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 10 декабря, 2014 · Жалоба Update: добавлена распаковка L2TP, теперь можно ловить DDoS атаки даже если они идут в туннеле. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 11 декабря, 2014 (изменено) · Жалоба Rolex, сделал спецификатор attack_details, чтобы отличать бан от высылки деталей по атаке: https://github.com/FastVPSEestiOu/fastnetmon/blob/master/notify_about_attack.sh Также добавил поддержку PF_RING ZeroCopy/DNA и теперь поидее скорости до которых монитор может анализировать ограничены лишь фантазией автора (и бюджетом! Фича платная, к сожалению). Изменено 11 декабря, 2014 пользователем pavel.odintsov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Rolex Опубликовано 18 декабря, 2014 (изменено) · Жалоба Пересобрал в тот же день. Очень полезно. Заметил странность: IP: xxx.xxx.xxx.xxx Initial attack power: 15515 packets per second Peak attack power: 20678 packets per second Attack direction: incoming Attack protocol: udp Total incoming traffic: 98 mbps Total outgoing traffic: 8 mbps Total incoming pps: 15515 packets per second Total outgoing pps: 3017 packets per second Total incoming flows: 11735 flows per second Total outgoing flows: 150 flows per second Average incoming traffic: 98 mbps Average outgoing traffic: 8 mbps Average incoming pps: 15515 packets per second Average outgoing pps: 3017 packets per second Average incoming flows: 11735 flows per second Average outgoing flows: 150 flows per second Incoming tcp traffic: 0 mbps Outgoing tcp traffic: 0 mbps Incoming tcp pps: 14 packets per second Outgoing tcp pps: 15 packets per second Incoming udp traffic: 529 mbps Outgoing udp traffic: 3 mbps Incoming udp pps: 68634 packets per second Outgoing udp pps: 1920 packets per second Incoming icmp traffic: 0 mbps Outgoing icmp traffic: 0 mbps Incoming icmp pps: 24 packets per second Outgoing icmp pps: 1 packets per second Прошу помочь разобраться: Не коррелируют между собой строки: 1) Initial attack power: 15515 packets per second 2) Peak attack power: 20678 packets per second 3) Total incoming pps: 15515 packets per second 4) Incoming udp pps: 68634 packets per second Иначе говоря имхо 3 поле ну никак не может быть меньше чем четвертое. Как формируются эти цифры? P/S автоматическая блокировка отключена. Только наблюдаем. Изменено 18 декабря, 2014 пользователем Rolex Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 19 декабря, 2014 · Жалоба А в каком режиме работает? ZC или обычном PF_RING? Там обсчет такой же как и для суммарных счетчиков - просто если сумели определить тип протокола, то увеличиваем счетчик и ему. Но то, что счетчик на юдп увеличился, а для суммарных пакетов - нет, ну очень странное поведение. Впрочем, если использовался ZC режим - такое могло произойти, там был баг с атомарностью инкрементов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 19 декабря, 2014 · Жалоба Воспроизвелось и у нас, забил issue: https://github.com/FastVPSEestiOu/fastnetmon/issues/85 попробую разобраться, почему так. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 19 декабря, 2014 · Жалоба Надеюсь починил, попробуйте, пожалуйста. Перемудрил с switch/case/break; Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Rolex Опубликовано 19 декабря, 2014 (изменено) · Жалоба Ага, спасибо. Пересобрал. Как будет атака - по результатам, отпишу. P/S Запускаю все со значениями по умолчанию. (кроме параметров конфига) Изменено 19 декабря, 2014 пользователем Rolex Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 19 декабря, 2014 · Жалоба Угу, тут явно мой баг был :( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 22 декабря, 2014 · Жалоба Разбил прогу на две части, теперь есть fastnetmon демон и fastnetmon_client - клиент. Теперь можно запускаться в неинтерактивном режиме и отвязываться от консоли и из клиента дергать состояние демона лишь если это требуется. Если хочется дергать состояние через веб, то милости прошу: /tmp/fastnetmon.dat парсить файлик. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Rolex Опубликовано 22 декабря, 2014 (изменено) · Жалоба Несросталочка осталась: Initial attack power: 225087 packets per second Peak attack power: 303720 packets per second Attack direction: incoming Attack protocol: udp Total incoming traffic: 830 mbps Total outgoing traffic: 5 mbps Total incoming pps: 225087 packets per second Total outgoing pps: 1537 packets per second Total incoming flows: 708 flows per second Total outgoing flows: 18 flows per second Average incoming traffic: 830 mbps Average outgoing traffic: 5 mbps Average incoming pps: 225087 packets per second Average outgoing pps: 1537 packets per second Average incoming flows: 708 flows per second Average outgoing flows: 18 flows per second Incoming tcp traffic: 0 mbps Outgoing tcp traffic: 0 mbps Incoming tcp pps: 3 packets per second Outgoing tcp pps: 7 packets per second Incoming udp traffic: 3906 mbps Outgoing udp traffic: 0 mbps Incoming udp pps: 1055516 packets per second Outgoing udp pps: 179 packets per second Incoming icmp traffic: 1 mbps Outgoing icmp traffic: 13 mbps Incoming icmp pps: 3306 packets per second Outgoing icmp pps: 3450 packets per second Peak attack power: 303720 packets per second Incoming udp pps: 1055516 packets per second Total incoming pps: 225087 packets per second Изменено 22 декабря, 2014 пользователем Rolex Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Rolex Опубликовано 24 декабря, 2014 · Жалоба Вывел fastnetmon_client на мониторинг инженерам для постоянного контроля. Инженеры рады, следят за циферками, сидят медитируют. ;) Продолжаем работу в режиме тестирования. Выбираем железо для постоянного размещения демона мониторинга на отдельном сервере. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
grfmaniak Опубликовано 26 декабря, 2014 · Жалоба Можно как-то проверить будет ли программа корректно вызывать скрипт бана? А то поставил новую версию, пусть в конфиге прописал, скрипт имеет права на запись. Пришла атака, а скрипт и не вызвался, хотя в логах "вызываю скрипт с параметрами" и было. В результате пришлось руками срочно разгребать. Как затестить этот момент? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 26 декабря, 2014 · Жалоба Можно как-то проверить будет ли программа корректно вызывать скрипт бана? А то поставил новую версию, пусть в конфиге прописал, скрипт имеет права на запись. Пришла атака, а скрипт и не вызвался, хотя в логах "вызываю скрипт с параметрами" и было. В результате пришлось руками срочно разгребать. Как затестить этот момент? Тестово дернуть, боюсь, никак. Но я добавил дебага в логи, чтобы писало в случае невозможности запуска, а также детализировало почему это вышло. Несросталочка осталась: Peak attack power: 303720 packets per second Incoming udp pps: 1055516 packets per second Total incoming pps: 225087 packets per second Пока мыслей нету, почему такое происходит :( Вывел fastnetmon_client на мониторинг инженерам для постоянного контроля. Инженеры рады, следят за циферками, сидят медитируют. ;) Продолжаем работу в режиме тестирования. Выбираем железо для постоянного размещения демона мониторинга на отдельном сервере. Главное берите хорошие сетевки - Intel 82599 либо XL710. С процами вопрос сложный, но в общем чем больше ядер и чем выше частота - тем лучше. Хотя хорошим приобретением было бы взять лицензию на PF_RING ZC - около 200 баксов на сетевую карту, с ним FastNetMon проворачивает около 6MPPS/10GE (правда, без трекинга соединений) на очень слабом проце (E5-2407). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 9 января, 2015 · Жалоба В режиме обработки только sFLOW должно теперь компилиться и под FreeBSD. Сборка как и всегда через cmake. git clone https://github.com/FastVPSEestiOu/fastnetmon.git cd fastnetmon mkdir build cd build cmake .. make Захочет curses, libstdc++, pcap, pthread, boost. Это все нужно стянуть из портов, далее cmake их найдет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...