pavel.odintsov Опубликовано 11 июня, 2015 (изменено) · Жалоба Забейте пожалуйста иссю вот тут https://github.com/FastVPSEestiOu/fastnetmon/issues Сейчас доберусь до дома с ENOG9 и починю :) Изменено 11 июня, 2015 пользователем pavel.odintsov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 12 июня, 2015 · Жалоба собрал з дебагом 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()); пока что работает нормально Баг найден и пофикшен! Теперь проблем на 32 битных платформах быть не должно! Попробуйте, пожалуйста, сейчас с кодом из Git, в релиз 1.1.2 фиксы не вошли. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 15 июня, 2015 · Жалоба В Git версии добавлена поддержка сэмплированного потока для NetFLOW v5. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Megas Опубликовано 15 июня, 2015 · Жалоба Нашел все таки свою проблему, как бы неплохо было проверять наличие bash при запуске fastnetmon и если его нет в системе то ругаться в логи, незаметил сразу этот момент, сори. данный параметр независимо от значения является логическим, было бы неплохо его дописать. notify_script_pass_details = yes не совсем понял как реализовывается информация о фиксации атаки, чтобы бы получить в почту расширенную информацию относительно сработавшего правила, какой имеено трафик привел к срабатыванию. Сейчас активно протестил на speedtest.net, скрипт срабатывает, на 1г канале долетает до 70к ппс, при том что в настройках забито 20к, тут возможно стоит все таки реализовать формулу с burst в течении которого можно всетаки делать превышение pps. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 15 июня, 2015 · Жалоба Так это не скрипт, это бинарик в общем случае, так что как-либо проверить без запуска не получится. Спидтест можно победить растянув время расчета average: average_calculation_time = 5 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
varney Опубликовано 15 июня, 2015 · Жалоба Redis сейчас оторван и не работает, он был в тулзе раньше, когда она еще и трафик считала, но со временем мне эта идея нравится перестала - потому что это совершенно отдельная задача и приделывать к монитору атак эту фичу мне расхотелось :) Ааа.. я пропустил что-то этот месседж. т.е. теперь тока графит? если да, то наверно надо бы и выризать эту опцию, чтобы больше никого не смущать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 15 июня, 2015 · Жалоба Редис используется - но только для сохранения деталей об атаке. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mark_47 Опубликовано 17 июня, 2015 · Жалоба Здравствуйте, Павел. Тестирую вашу систему. Столкнулся с проблемой - настроил sflow на коммутаторе Qtech 2850, и после команды sflow destination 10.230.84.193 6343 где 10.230.84.193 - адрес сервера fastnetmon fastnetmon падает, в логах ошибка: 2015-06-11 23:07:13,023 [ERROR] Internal error!!! Пример пакетов из wireshark, логи и конфиг тут: https://yadi.sk/d/JsESdayZhJG4z Может быть я что-то неверно указал в конфиге? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 17 июня, 2015 · Жалоба Добрый день! Завалился парсер sFLOW, дело не в конфиге, ошибка блин.... я даже не думал, что ее можно выбить :) Просьба, сделать pcap дамп этого трафика и дать мне: tcpdump -w /root/sflow_data.pcap -n 'udp dst port 6343' Можно почтой pavel.odintsov@gmail.com Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 17 июня, 2015 · Жалоба Починено :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
UAVpilot Опубликовано 18 июня, 2015 · Жалоба Flow трекинг по дефалту выключен, включается спец параметром в конфиге, попробуйте вот так: enable_connection_tracking = on А вот что с трафиком в байтах, не понятно, давайте добьемся работы визуализации flow, а следом решим проблему с мегабитами. Павел, у меня аналогичная проблема: Поставил на CentOS 7 из RPM. Конфиг: enable_ban = on ban_time = 1900 ban_for_pps = on ban_for_bandwidth = on ban_for_flows = on threshold_pps = 20000 threshold_mbps = 1000 threshold_flows = 3500 ban_details_records_count = 500 check_period = 1 sort_parameter = packets redis_host = 127.0.0.1 max_ips_in_list = 7 notify_script_path = /usr/local/bin/notify_about_attack.sh redis_enabled = no #interfaces = eno16777728 netflow = on netflow_port = 2055 netflow_host = 0.0.0.0 sflow = off mirror = off mirror_netmap = off pcap = off average_calculation_time = 5 average_calculation_time_for_subnets = 20 enable_connection_tracking = on enable_pf_ring_zc_mode = off process_incoming_traffic = on process_outgoing_traffic = on networks_list_path = /etc/fastnetmon.nets enable_subnet_counters = on print_average_traffic_counts = off Показывает pps и flows, mbps по нулям. :( P.S. Ещё обнаружил, что игнорируется параметр networks_list_path - чтобы там небыло написано всегда ищет только /etc/networks_list Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 18 июня, 2015 · Жалоба А как она будет работать, если Вы удалили все интерфейсы #interfaces = eno16777728 ? :) Укажите нужный ифейс и перезапустите тулкит. networks_list_path - исправлено в Git версии: https://github.com/FastVPSEestiOu/fastnetmon/blob/master/docs/DEV_VERSION.md Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
UAVpilot Опубликовано 19 июня, 2015 · Жалоба А как она будет работать, если Вы удалили все интерфейсы #interfaces = eno16777728 ? :) Укажите нужный ифейс и перезапустите тулкит. Это я уже факультативно пробовал. Если я правильно понял вашу программу, то в случае netflow она просто слушает порт 2055 на всех интерфейсах (0.0.0.0:2055) и параметр interfaces на это не влияет. :) Но таки раскоментировал и перезапустил - всё по прежнему, считает только pps и flows, mbps по нулям. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 19 июня, 2015 · Жалоба А, NetFlow, да ему ифейс не нужен. Трафик сэмплированный? Какой версии флоу? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
UAVpilot Опубликовано 19 июня, 2015 (изменено) · Жалоба netflow v9. Семплированный, во всяком случае PRTG байтики считает. upd: для проверки направил его на nfcapd - байты считает. Date flow start Duration Proto Src IP Addr:Port Dst IP Addr:Port Packets Bytes Flows 2015-06-19 16:01:48.636 0.000 UDP 69.116.224.174:27032 -> XX.XXX.206.70:53 1 80 1 2015-06-19 16:01:48.636 0.000 TCP 83.216.94.69:57208 -> XX.XXX.207.71:80 1 48 1 2015-06-19 16:01:48.684 0.000 UDP 121.94.103.218:22680 -> XX.XXX.208.94:53 1 79 1 2015-06-19 16:01:48.684 0.000 UDP 115.140.206.163:46013 -> XX.XXX.208.94:53 1 79 1 2015-06-19 16:01:48.700 0.000 UDP 91.136.113.171:9917 -> XX.XXX.208.94:53 1 75 1 2015-06-19 16:01:48.700 0.000 UDP 86.77.240.25:39605 -> XX.XXX.208.94:53 1 75 1 2015-06-19 16:01:48.724 0.000 UDP 105.50.181.33:34183 -> XX.XXX.208.143:53 1 65 1 2015-06-19 16:01:48.724 0.000 TCP 88.192.240.215:24108 -> XX.XXX.207.49:80 1 60 1 2015-06-19 16:01:48.776 0.000 UDP 17.26.99.230:33818 -> XX.XXX.208.94:53 1 67 1 2015-06-19 16:01:48.812 0.000 UDP 124.232.142.220:49078 -> XX.XXX.116.204:53 1 58 1 2015-06-19 16:01:48.856 0.000 UDP 71.28.34.53:44653 -> XX.XXX.208.143:53 1 79 1 2015-06-19 16:01:48.936 0.000 UDP 128.10.143.157:36275 -> XX.XXX.206.70:53 1 72 1 2015-06-19 16:01:48.948 0.000 TCP 88.192.240.215:24109 -> XX.XXX.207.49:80 1 60 1 2015-06-19 16:01:48.972 0.000 TCP 198.100.145.72:80 -> XX.XXX.116.145:65515 1 44 1 2015-06-19 16:01:43.328 5.804 TCP 14.201.190.97:53031 -> XX.XXX.207.49:80 6 384 1 2015-06-19 16:01:58.424 0.092 TCP 164.0.124.210:37237 -> XX.XXX.207.49:80 2 100 1 Изменено 22 июня, 2015 пользователем UAVpilot Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 19 июня, 2015 · Жалоба Сэмплирование в случае v9/IPFIX очень сложно выдернуть из потока, поэтому надо забить в /etc/fastnetmon.conf: netflow_sampling_ratio = ваш_сэмплинг_ратио Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
UAVpilot Опубликовано 22 июня, 2015 · Жалоба Попробовал netflow_sampling_ratio и на маршрутизаторе пробовал менять тип семплирования - пофиг. Попробовал выключить семплирование - байтики появились Однако есть сомнения по прочему трафику: Other traffic 48982526762 pps 377315 mbps При реальном трафике примерно на порядок меньшем (in+out). Но в данном случае это не принципиально, как-нибудь на досуге проверю. Спасибо! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 22 июня, 2015 · Жалоба Other Tarffic - это все кроме IPv4, но счетчики как-то крупноваты, мягко говоря. Какой дивайс генерирует флоу? Машина 64 битная? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 22 июня, 2015 · Жалоба Можете на pavel.odintsov at gmail.com скинуть дамп флоу? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
olegarhiy Опубликовано 1 июля, 2015 (изменено) · Жалоба Приветствую :) Павел, при решении своей маленькой задачки организации реакции на DDoS я столкнулся с тем, что при использовании клиента информация по каждому IP адресу или сети выводится на основе сию секундных данных. Т.е. если я использую Netflow данные с маршрутизаторов Cisco, где минимальный timeout для активной сессии составляет 60 сек (т.е. раз в 60 секунд маршрутизатор отсылает данные об активной сессии), то в момент когда fastnetmon получает эти данные он вычисляет не "чистый" pps, т.е. количество пакетов за 1 секунду, а количество пакетов за 60 сек. Это вводит в заблуждение, т.к. в течение 59 секунд загрузка нулевая, а на 60 секунде в 60 раз больше фактической. Очевидно, что fastnetmon не может знать с какой частотой информацию о сессиях ему посылает Netflow сенсор, поэтому и ведет себя так, т.е. основываясь на сию секундных данных. Для реакции ("бана") есть решение, которое позволяет усреднить и тем самым корректно обсчитывать данные: average_calculation_time = 60 average_calculation_time_for_subnets = 65 А вот для вычислением среднего текущего сетевого трафика в клиентской части приложения, увы, такого решения я не нашел. Было бы здорово, если при выставлении параметра, отвечающего за частоту обновления отображаемой информации в клиентской части приложения, мы сразу бы получали усредненные значения (т.е. каждые 60 сек выводим данные усредненные за 60 сек): # How often we redraw client's screen check_period = 60 Но в идеале, конечно, было бы здорово частоту обновления показателей регулировать отдельно от периода времени, за который мы хотим получать средние значения. Павел, как думаешь, возможно удовлетворить такую прихоть? :) Изменено 1 июля, 2015 пользователем olegarhiy Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 1 июля, 2015 · Жалоба Крутой рисерч! Блеск :) А у вас точно последняя версия? Просто в 1.1.2 уже везде используются усредненные графики и клиент отображает именно их, а не абсолютные значения. Они как раз должны обсчитываться корректно и не мотаться сильно (ибо они же берутся и для бана). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
olegarhiy Опубликовано 1 июля, 2015 (изменено) · Жалоба Спасибо :) Версия (branch) 1.1.2. Только что обновился, но ничего не изменилось (устанавливаю с помощью fastnetmon_install.pl на Debian Wheezy). Отмечу, что версия в клиенте отображается как "FastNetMon v1.0". Изменено 1 июля, 2015 пользователем olegarhiy Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
UAVpilot Опубликовано 2 июля, 2015 (изменено) · Жалоба Извиняюсь, выпал на некоторе время в отпуск. :) Other Tarffic - это все кроме IPv4, но счетчики как-то крупноваты, мягко говоря. Какой дивайс генерирует флоу? Машина 64 битная? netflow генерит Cisco C7606 (nfdump считает трафик правильно). fastnetmon работает на 64-биной машине. И если позволите несколько пожеланий: 1. Хотелось-бы иметь промежуточные итоги по интерфейсам в случае работы с несколькими сетевыми интерфейсами (в netflow есть id интерфейса). Это было-бы полезно при наличии нескольких каналов разной ёмкости. Например у меня скачёк входящего трафика на 1Gbit/s на некоторых считается серьёзной перегрузкой, а на других практически незаметен. 2. Возможность отключить в fastnetmon_client (fastnetmon.dat) показ входящего и исходящего трафика. Например меня совершенно не интересует исходящий трафик в fastnetmon. :) 3. Возможность задавать формат файлов в /var/log/fastnetmon_attacks, например чтобы дату поставить перед адресом для удобства сортировки. Или даже чтоб можно было делать подкаталоги по датам или по ip. Последние два пункта не существенны т.к. в принцие решаются внешними средствами. P.S. Спасибо за fastnetmon! :) Upd: поставил 1.1.3 - Other Tarffic стал походить на правду. Изменено 3 июля, 2015 пользователем UAVpilot Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Rolex Опубликовано 3 июля, 2015 (изменено) · Жалоба Не получается собрать fastnetmon с redis на 7 centos. #uname -a Linux mirror.xxxxxx.xx 3.10.0-229.4.2.el7.x86_64 #1 SMP Wed May 13 10:06:09 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux #yum install hiredis-devel hiredis -y ]Package hiredis-devel-0.12.1-1.el7.x86_64 already installed and latest version Package hiredis-0.12.1-1.el7.x86_64 already installed and latest version Соответствующие ремарки в CMakeLists.txt сняты. # whereis hiredis hiredis: /usr/include/hiredis Итог: CMake Error at CMakeLists.txt:174 (find_package): By not providing "FindHiredis.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Hiredis", but CMake did not find one. Could not find a package configuration file provided by "Hiredis" with any of the following names: HiredisConfig.cmake hiredis-config.cmake Add the installation prefix of "Hiredis" to CMAKE_PREFIX_PATH or set "Hiredis_DIR" to a directory containing one of the above files. If "Hiredis" provides a separate development package or SDK, be sure it has been installed. -- Configuring incomplete, errors occurred! Что я делаю не так? Можно ли сделать сборку RPM для 7го центоса включая полный комплект поддерживаемого функционала. P/S - Редис нужен для отправки системой детальной информации по атаке непосредственно клиенту по его запросу. Изменено 3 июля, 2015 пользователем Rolex Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 4 июля, 2015 · Жалоба Rolex, поправлено. Работаю над тем, чтобы внести Redis в стандартные фичи :) Переключитесь на с DEV ветку https://github.com/FastVPSEestiOu/fastnetmon/blob/master/docs/DEV_VERSION.md и сделайте что и раньше - раскомментируйте строчки. UAVpilot, а можно дамп трафика на pavel.odintsov@gmail.com? Фича 2 - уже есть: process_incoming_traffic = on process_outgoing_traffic = off Фича 3 - скажите, какие переменные нужны и я добавлю :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...