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

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

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

set(LOG4CPP_LIBRARY_PATH log4cpp)

 

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

 

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

Писал ебилд для генты, на прогоне QA вылетел на линковке.

 

П.С Павел, посмотрите в юнит systemd в гите :-S - "и почему это у меня нжинкс глючит ?"

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


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

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

set(LOG4CPP_LIBRARY_PATH log4cpp)

 

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

 

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

Писал ебилд для генты, на прогоне QA вылетел на линковке.

 

П.С Павел, посмотрите в юнит systemd в гите :-S - "и почему это у меня нжинкс глючит ?"

 

Unit systemd уже переписал: https://github.com/FastVPSEestiOu/fastnetmon/blob/master/src/fastnetmon.service Нужно еще и код демона вытянуть новый, я добавил флаг --daemonize и он теперь своими силами демонизируется.

 

За ебилд респект! :)

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


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

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

set(LOG4CPP_LIBRARY_PATH log4cpp)

 

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

 

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

Писал ебилд для генты, на прогоне QA вылетел на линковке.

 

П.С Павел, посмотрите в юнит systemd в гите :-S - "и почему это у меня нжинкс глючит ?"

 

Unit systemd уже переписал: https://github.com/FastVPSEestiOu/fastnetmon/blob/master/src/fastnetmon.service Нужно еще и код демона вытянуть новый, я добавил флаг --daemonize и он теперь своими силами демонизируется.

 

За ебилд респект! :)

Спасибо.

Ебилд пока не готов до конца, собирать можно, нужно отладить инит скрипты для openRC - https://github.com/slepnoga/slepnoga/blob/master/portage/net-analyzer/fastnetmon/fastnetmon-9999.ebuild

Будет готов - подумаю насчет офф. дерева.

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


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

Круто, если что требуется от меня - смело пишите :)

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


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

На сколько реально добавить в программу такую фичу:

 

- имеем клиентов за NAT, входящие атаки на них мониторить смысла нет в принципе, мониторим только исходящие

- имеем клиентов с реальным адресами, этих смотрим по обоим направлениям

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


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

На сколько реально добавить в программу такую фичу:

 

- имеем клиентов за NAT, входящие атаки на них мониторить смысла нет в принципе, мониторим только исходящие

- имеем клиентов с реальным адресами, этих смотрим по обоим направлениям

 

День добрый!

 

В roadmap есть нечто похожее, в планах сделать группы хостов, для которых вручную конфигурируются параметры бана. Группа хостов - набор сетей с указанным именем. Но вот понимания, как это сделать максимально красиво пока мне не пришло :(

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


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

Кстати, заметил забавный глюк, если на вход программы начать заливать NF от нескольких сенсоров, то можно себя почувствовать богом всего интернета. Цифры устойчиво показывали какие-то жалкие Tbps и не заслуживающие внимания Gpps.

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


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

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

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


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

NF9 от ipt_NETFLOW

 

Приветствую!

 

Провел капитальную работу по части поддержки нескольких источников параметризированного (v9, ipfix) netflow. Теперь поддерживается почти бесконечное число уникальных агентов даже в пределах одного IP :) Весь код в репо, просьба пересобрать и проверить, если есть возможность.

 

Проверял работу как раз с ipt_NETFLOW, визуально - все работает на ура, за что автору спасибо - физический стенд не собрать так быстро =)

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


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

Версия git:7170f257cfaf2638d5735d8f165507962c43f139, в конфиге

graphite = off
graphite_host = 127.0.0.1
graphite_port = 2003

 

но при этом в лог постоянно валится такое:

 

2015-05-11 14:09:03,864 [ERROR] Can't store data to Graphite
2015-05-11 14:09:03,948 [ERROR] Can't store data to Graphite
2015-05-11 14:09:03,948 [ERROR] Can't print programm screen into file
2015-05-11 14:09:05,031 [ERROR] Can't store data to Graphite
2015-05-11 14:09:05,115 [ERROR] Can't store data to Graphite
2015-05-11 14:09:05,115 [ERROR] Can't print programm screen into file
2015-05-11 14:09:06,197 [ERROR] Can't store data to Graphite
2015-05-11 14:09:06,284 [ERROR] Can't store data to Graphite
2015-05-11 14:09:06,284 [ERROR] Can't print programm screen into file
2015-05-11 14:09:07,366 [ERROR] Can't store data to Graphite
2015-05-11 14:09:07,450 [ERROR] Can't store data to Graphite
2015-05-11 14:09:07,451 [ERROR] Can't print programm screen into file
2015-05-11 14:09:08,540 [ERROR] Can't store data to Graphite
2015-05-11 14:09:08,625 [ERROR] Can't store data to Graphite
2015-05-11 14:09:08,625 [ERROR] Can't print programm screen into file

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


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

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


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

FYI, добавил опциональную поддержку анонса по BGP не только IP, на который идет атака, но и всей сети, которой он принадлежит. Очень удобно в случае, когда вся сеть перенаправляется куда-либо на фильтрацию. Включается фича вот так:

exabgp_announce_whole_subnet = on

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


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

не работает:

root@netmon01:/usr/local/src/fastnetmon/src/build # svn checkput https://svn0.ru.freebsd.org/base/stable/10 /usr/src
Unknown subcommand: 'checkput'
Type 'svn help' for usage.

 

наверное?

svn checkout https://svn0.ru.freebsd.org/base/stable/10 /usr/src

 

Linking CXX static library libsflow_plugin.a

[ 54%] Built target sflow_plugin

Scanning dependencies of target netflow_plugin

[ 63%] Building CXX object CMakeFiles/netflow_plugin.dir/netflow_plugin/netflow_collector.cpp.o

Linking CXX static library libnetflow_plugin.a

[ 63%] Built target netflow_plugin

Scanning dependencies of target pcap_plugin

[ 72%] Building CXX object CMakeFiles/pcap_plugin.dir/pcap_plugin/pcap_collector.cpp.o

Linking CXX static library libpcap_plugin.a

[ 72%] Built target pcap_plugin

Scanning dependencies of target netmap_plugin

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

/usr/local/src/fastnetmon/src/netmap_plugin/netmap_collector.cpp:225:13: error: unknown type name 'cpu_set_t'; did you mean 'cpusetid_t'?

cpu_set_t current_cpu_set;

^~~~~~~~~

cpusetid_t

/usr/include/sys/types.h:84:22: note: 'cpusetid_t' declared here

typedef __cpusetid_t cpusetid_t;

^

/usr/local/src/fastnetmon/src/netmap_plugin/netmap_collector.cpp:229:13: error: use of undeclared identifier 'CPU_ZERO'

CPU_ZERO(&current_cpu_set);

^

/usr/local/src/fastnetmon/src/netmap_plugin/netmap_collector.cpp:231:13: error: use of undeclared identifier 'CPU_SET'

CPU_SET(cpu_to_bind, &current_cpu_set);

^

/usr/local/src/fastnetmon/src/netmap_plugin/netmap_collector.cpp:236:78: error: unknown type name 'cpu_set_t'; did you mean 'cpusetid_t'?

pthread_attr_setaffinity_np(thread_attrs.native_handle(), sizeof(cpu_set_t), &current_cpu_set);

^~~~~~~~~

cpusetid_t

/usr/include/sys/types.h:84:22: note: 'cpusetid_t' declared here

typedef __cpusetid_t cpusetid_t;

^

/usr/local/src/fastnetmon/src/netmap_plugin/netmap_collector.cpp:236:13: error: use of undeclared identifier 'pthread_attr_setaffinity_np'

pthread_attr_setaffinity_np(thread_attrs.native_handle(), sizeof(cpu_set_t), &current_cpu_set);

^

5 errors generated.

*** Error code 1

 

Stop.

make[2]: stopped in /usr/local/src/fastnetmon/src/build

*** Error code 1

 

Stop.

make[1]: stopped in /usr/local/src/fastnetmon/src/build

*** Error code 1

 

Stop.

make: stopped in /usr/local/src/fastnetmon/src/build

root@netmon01:/usr/local/src/fastnetmon/src/build #

 

наверное надо сперва собрать netmap? но в доке об этом не упоминается.

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

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


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

Megas, определенно это баг, прошу в тикеты: https://github.com/FastVPSEestiOu/fastnetmon/issues/236 починю сегодня, он связан с развешиваем ядер процессоров нетмана по определенным ядрам - это дает очень хорошее ускорение.

 

Блин, нужен CI сервер на FreeBSD типа travis-ci.org, но с поддержкой FreeBSD, чтобы вот так не разносить все постоянно :)

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


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

Megas, исправлено! Попробуйте. Решилось добавлением одного include и тайпдефом на один тип. Как сайд эффект - 3-5% ускорение захвата пакетов.

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


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

Megas, исправлено! Попробуйте. Решилось добавлением одного include и тайпдефом на один тип. Как сайд эффект - 3-5% ускорение захвата пакетов.

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

 

last pid: 23653;  load averages:  2.65,  1.59,  0.80                                                                                                                                                                 up 7+22:00:57  11:51:04
32 processes:  1 running, 31 sleeping
CPU 0:  8.7% user,  0.0% nice, 23.2% system, 11.8% interrupt, 56.3% idle
CPU 1: 13.8% user,  0.0% nice, 28.3% system, 18.1% interrupt, 39.8% idle
CPU 2: 17.3% user,  0.0% nice, 32.3% system, 26.4% interrupt, 24.0% idle
CPU 3:  5.9% user,  0.0% nice, 22.4% system, 15.4% interrupt, 56.3% idle
Mem: 26M Active, 109M Inact, 2414M Wired, 3136K Cache, 1352M Free
ARC: 1253M Total, 438M MFU, 407M MRU, 29K Anon, 19M Header, 388M Other
Swap: 8192M Total, 8192M Free

 PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
23633 root         10  42    0   435M 28168K select  3   6:45 133.54% fastnetmon
23378 root          1  20    0 26012K  5712K select  3   0:04   0.10% tmux
 789 root          1  20    0 25448K  3924K select  3   0:10   0.00% ntpd
 824 root          1  20    0 24108K  5592K select  3   0:04   0.00% sendmail
 831 root          1  20    0 16592K  2216K nanslp  2   0:01   0.00% cron
 631 root          1  20    0 14492K  2096K select  1   0:01   0.00% syslogd
23607 root          1  20    0 26176K  3804K nanslp  3   0:00   0.00% fastnetmon_client
 885 root          1  20    0 86476K  7000K select  3   0:00   0.00% sshd
23383 root          1  20    0 47744K  9624K select  2   0:00   0.00% mc

 

CPU: Intel(R) Core(TM)2 Quad CPU    Q8300  @ 2.50GHz (2502.47-MHz K8-class CPU)

ix0@pci0:1:0:0: class=0x020000 card=0x00038086 chip=0x10fb8086 rev=0x01 hdr=0x00
   vendor     = 'Intel Corporation'
   device     = '82599EB 10-Gigabit SFI/SFP+ Network Connection'
   class      = network
   subclass   = ethernet

 

Пока запустил на этом, трафика не много, порядка 1-2 гиг на 400-500к.

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


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

Ну, вполне красиво он его прогрузил :) А irq разбросаны равномерно? Как это вообще на Фре сделать?

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


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

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

 

https://calomel.org/freebsd_network_tuning.html

http://www.mellanox.com/related-docs/prod_software/Performance_Tuning_Guide_for_Mellanox_Network_Adapters.pdf

https://github.com/AlexandreNo/mlnx-en-dkms/blob/master/ofed_scripts/set_irq_affinity_bynode.sh

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


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

Ну, вполне красиво он его прогрузил :) А irq разбросаны равномерно? Как это вообще на Фре сделать?

dadv в свое время предлагал вариант:

 vmstat -ai | egrep "ix[0-9]:que [0-9]" | sed -E 's/^irq([0-9]+): ix([0-9]+):que ([0-9]+).*/\1 \2 \3/' |\
 while read irq iface queue
 do
  cpu=$(( ($iface+$queue) % $cpus ))
  echo "Binding ${iface} queue ${queue} (irq ${irq}) -> CPU${cpu}"
  cpuset -l $cpu -x $irq
 done

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

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


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

Вот что-то похожее на то, что нужно:

# Max number of threads for NIC IRQ balancing 3 for 4 cores in box leaving at
# least (default 1) one core for system or service processing. Again, if you
# notice one cpu being overloaded due to network processing this directive will
# spread out the load at the cost of cpu affinity unbinding. The default of "1"
# is faster.
#net.isr.maxthreads="1"

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


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

Подскажите пожалуйста:

 

2015-06-04 14:25:33,017 [iNFO] Time from last run of speed_recalc is soooo big, we got ugly lags: 2

 

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


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

В целом не страшно. Если будет часто - повод пошаманить с оптимизаций машины. Но несколько раз в час - ничего опасного.

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


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

подскажите отчего мои "лыжи не едут".

FastNetMon v1.0 FastVPS Eesti OU (c) VPS and dedicated: http://FastVPS.host
IPs ordered by: packets
Incoming traffic             0 pps      0 mbps      0 flows
xxx.xxx.223.170               0 pps      0 mbps      0 flows
xxx.xxx.222.170               0 pps      0 mbps      0 flows
xxx.xxx.221.170               0 pps      0 mbps      0 flows
xxx.xxx.220.170               0 pps      0 mbps      0 flows
xxx.xxx.219.170               0 pps      0 mbps      0 flows
xxx.xxx.218.170               0 pps      0 mbps      0 flows
xxx.xxx.217.170               0 pps      0 mbps      0 flows

Outgoing traffic             0 pps      0 mbps      0 flows
xxx.xxx.223.170               0 pps      0 mbps      0 flows
xxx.xxx.222.170               0 pps      0 mbps      0 flows
xxx.xxx.221.170               0 pps      0 mbps      0 flows
xxx.xxx.220.170               0 pps      0 mbps      0 flows
xxx.xxx.219.170               0 pps      0 mbps      0 flows
xxx.xxx.218.170               0 pps      0 mbps      0 flows
xxx.xxx.217.170               0 pps      0 mbps      0 flows

Internal traffic             0 pps      0 mbps

Other traffic                0 pps      0 mbps

Screen updated in:              0 sec 39892 microseconds
Traffic calculated in:          0 sec 6667 microseconds
Total amount of not processed packets: 0

Subnet load:
xxx.xxx.192.0/19         pps in: 0 out: 0 mbps in: 0 out: 0

 

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

да и в логах тишина

2015-06-04 00:05:52,447 [iNFO] Logger initialized!
2015-06-04 00:05:52,447 [iNFO] Read configuration file
2015-06-04 00:05:52,447 [iNFO] We loaded 2 networks from networks file
2015-06-04 00:05:52,448 [iNFO] I will allocate 8192 records for subnet 12615711 cidr mask: 19
2015-06-04 00:05:52,462 [iNFO] We start total zerofication of counters
2015-06-04 00:05:52,463 [iNFO] We finished zerofication
2015-06-04 00:05:52,463 [iNFO] We loaded 2 subnets to our in-memory list of networks
2015-06-04 00:05:52,463 [iNFO] Total number of monitored hosts (total size of all networks): 8192
2015-06-04 00:05:52,463 [iNFO] Run banlist cleanup thread

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


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

Join the conversation

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

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

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

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

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

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

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