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

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

и еще, если верить тому что выдает fastnetmon, то один из айпишников жрет канал со скоростью 170 mbps.

это при том, что у него порт по идее 100 мбитный :D

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


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

Запустил на одной из машин, посмотрим как будет работать) Уже увидел наглядно самых активных пользователей)

Вопрос немного не по теме, ipcad можно подружить с pf_ring? а то сейчас он по ULOG работает у нас. Нагрузка терпимая, но если бы прикрутить pf_ring получилось, то было бы совсем здорово.

 

Это точно возможно, IPCAD судя по доке работает на PCAP. А у PF_RING есть режим эмуляции pcap. Все, что нужно сделать - это слинковать IPCAD c pcap от PF_RING, оно лежит в папке userspace. Я на практике не теми же методами и работает весьма прилично.

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


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

Про 170 мегабит... я проверю код обсчета скорости, в принципе мог напортачить.

 

Update: вроде бы все ок, а трафик идет от клиента или к нему?

Изменено пользователем pavel.odintsov

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


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

Про 170 мегабит... я проверю код обсчета скорости, в принципе мог напортачить.

 

Update: вроде бы все ок, а трафик идет от клиента или к нему?

Если не изменяет память, то было incoming. Но суть не в этом. Не важно в какую сторону, у него ж порт 100мбитный, он за пределы ста мегабит вообще по идее ни на upload, ни на download не может выйти.

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


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

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

 

Update: также добавил возможность забить прослушиваемые интерфейсы в конфиг (параметр interfaces) и их теперь не обязательно передавать вручную как параметры командной строки.

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


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

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

 

Update: также добавил возможность забить прослушиваемые интерфейсы в конфиг (параметр interfaces) и их теперь не обязательно передавать вручную как параметры командной строки.

Пока аномальных скоростей у пользователей больше не было замечено. Буду мониторить дальше.

Вопрос по redis. fastnetmon в нем хранит информацию о переданных байтах, а возможно ли туда складировать больше информации? кто, куда и в какое время обратился? Или такой функционал не имеется в to-do?

Грубо говоря IPCAD сейчас мной используется для этого, но разумеется лучше было бы использовать одну программу-анализатор трафика, чем две (одну для мониторинга нагрузки, а другую для мониторинга кто и куда обратился)

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


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

По поводу получения текущей информации с Redis, нужно проверить, чтобы в конфигурации было вот так:

redis_port = 6379
redis_host = 127.0.0.1
redis_enabled = yes

Ибо по умолчанию он отключен, чтобы не смущать тех, кому он не нужен.

 

Чтобы получить данные по конкретному IP нужно сделать вот такоие запросы:

redis-cli 
redis 127.0.0.1:6379> get zz.yy.xx.1_incoming
"8404196"
redis 127.0.0.1:6379> get zz.yy.xx.1_outgoing
"8189989"

А если интересуют все IP, о которых есть информация в redis:

keys *

Вроде бы, в старых версиях были проблемы с командой keys *, так что если что-то будет не так - советую попробовать redis из бэкпортов.

 

По поводу более полной информации о трафике тут, боюсь, будет очень большая нагрузка, так как сейчас данные сбрасываются в redis каждые check_period секунд общим блоком, что в целом не сильно нагружает машину redis'ом. Если этой инфорамации будет больше и сбрасываться она будет часто - мы получим не особено хорошие скоростные характеристики. Поэтому, боюсь, данная функциональность конфликтует с идеологией программы.

Изменено пользователем pavel.odintsov

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


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

Еще один важный эта в развитии!

 

1) Теперь нет завязки на С++ 11, он выкинут от начала до конца и теперь все должно компилится под Debian 6/7 и CentOS 6/7.

2) Внедрил отличный лакапер - patricia из MPM пакета

3) Отошел от пересчета с сэмплирование и обсчитываю данные ежесекундно

4) Исправил лютые баги :)

 

В общем, жду фидбэка и багрепортов! :)

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


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

Еще один важный эта в развитии!

 

1) Теперь нет завязки на С++ 11, он выкинут от начала до конца и теперь все должно компилится под Debian 6/7 и CentOS 6/7.

2) Внедрил отличный лакапер - patricia из MPM пакета

3) Отошел от пересчета с сэмплирование и обсчитываю данные ежесекундно

4) Исправил лютые баги :)

 

В общем, жду фидбэка и багрепортов! :)

 

Павел, добрый день.

Может ли Fastnetmon разбирать MPLS трафик ?

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


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

вел, добрый день.

Может ли Fastnetmon разбирать MPLS трафик ?

 

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

 

А что требуется разбирать? Снять метки MPLS? Сейчас при фиксации трафика с VLAN тегом, я его просто снимаю и обрабатываю в общей куче. Вы хотите такое же поведение, но с MPLS?

 

Кстати, офтопный вопрос, у вас MPLS в сети датацентра?

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


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

А что требуется разбирать? Снять метки MPLS? Сейчас при фиксации трафика с VLAN тегом, я его просто снимаю и обрабатываю в общей куче. Вы хотите такое же поведение, но с MPLS?

Кстати, офтопный вопрос, у вас MPLS в сети датацентра?

 

Да, аналогичное поведение с MPLS.

И в сети датацентра, и на аплинках есть MPLS трафик.

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


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

Ох, все упирается в то, умеет ли PF_RING его идентифицировать. Боюсь, что не умеет: http://www.ntop.org/pfring_api/structpkt__parsing__info.html#a15426a76810fed9d14b966e4da5f4486

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


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

Ох, все упирается в то, умеет ли PF_RING его идентифицировать. Боюсь, что не умеет: http://www.ntop.org/pfring_api/structpkt__parsing__info.html#a15426a76810fed9d14b966e4da5f4486

 

ага, не умеет.

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


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

Ох, все упирается в то, умеет ли PF_RING его идентифицировать. Боюсь, что не умеет: http://www.ntop.org/pfring_api/structpkt__parsing__info.html#a15426a76810fed9d14b966e4da5f4486

 

ага, не умеет.

 

Я думаю, если они прикрутят анализ MPLS меток - мне это будет сделать уже делом техники. Они довольно отзывчивые ребята, может забросите удочку им в рассылку?

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


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

Программу поставили у себя на боевом сервере, уже полгода работает как часы. После согласования с ТТК процедуры блэкхола по bgp для атакуемых адресов - видим только сообщения о том, что атака успешно отбита, а не полку в каналах и вопли клиентов, как раньше. Автору мегареспект!

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


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

Ох, все упирается в то, умеет ли PF_RING его идентифицировать. Боюсь, что не умеет: http://www.ntop.org/pfring_api/structpkt__parsing__info.html#a15426a76810fed9d14b966e4da5f4486

 

ага, не умеет.

 

Я думаю, если они прикрутят анализ MPLS меток - мне это будет сделать уже делом техники. Они довольно отзывчивые ребята, может забросите удочку им в рассылку?

 

спасибо, спишусь с ребятами, надеюсь откликнутся

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


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

Ага, было бы супер, будем ждать :)

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


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

Я думаю, если они прикрутят анализ MPLS меток - мне это будет сделать уже делом техники. Они довольно отзывчивые ребята, может забросите удочку им в рассылку?

спасибо, спишусь с ребятами, надеюсь откликнутся

 

Смотрю ченджлог, поддержка MPLS уже добавлена :)

 

2014-09-24 PF_RING 6.0.2

* PF_RING kernel module

- MPLS support

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


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

Смотрю ченджлог, поддержка MPLS уже добавлена :)

 

2014-09-24 PF_RING 6.0.2

* PF_RING kernel module

- MPLS support

 

Однако.

Ребята телепаты.

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


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

Телепаты телепатами, а попробуйте собрать мой монитор с новой версией библиотеки :)

 

Судя по коду:

 if (hdr->extended_hdr.parsed_pkt.eth_type == ETH_P_MPLS_UC /* MPLS Unicast Traffic */) {
   int i = 0, max_tags = 10, last_tag = 0;
   u_int32_t tag;
   u_int16_t iph_start;

   for (i = 0; i < max_tags && !last_tag && displ <= data_len; i++) {
     tag = htonl(*((u_int32_t *) (&data[displ])));

     if (tag & 0x00000100) /* Found last MPLS tag */
       last_tag = 1;

     displ += 4;
   }

   if (i == max_tags) /* max tags reached for MPLS packet */
     return(0);

   iph_start = htons(*((u_int16_t *) (&data[displ])));

   if ((iph_start & 0x4000) == 0x4000) { /* Found IP4 Packet after tags */
     hdr->extended_hdr.parsed_pkt.eth_type = ETH_P_IP;
   } else if ((iph_start & 0x6000) == 0x6000) { /* Found IP6 Packet after tags */
     hdr->extended_hdr.parsed_pkt.eth_type = ETH_P_IPV6;
   } else { /* Cannot determine packet type after MPLS labels */
     return(0);
   }
 }

 hdr->extended_hdr.parsed_pkt.offset.l3_offset = hdr->extended_hdr.parsed_pkt.offset.eth_offset + displ;

 //if(unlikely(enable_debug))
 //  printk("[PF_RING] [eth_type=%04X]\n", hdr->extended_hdr.parsed_pkt.eth_type);

 if(hdr->extended_hdr.parsed_pkt.eth_type == ETH_P_IP /* IPv4 */) {
   struct iphdr *ip;
   u_int16_t frag_off;

   hdr->extended_hdr.parsed_pkt.ip_version = 4;

 

Он распаковывает MPLS и должен подать на вход к FastNetMon как обычный трафик с указанием MPLS метки и монитор его увидит весь, так как на MPLS метки не смотрит, а src/dst IP в нем будут прописаны.

 

Программу поставили у себя на боевом сервере, уже полгода работает как часы. После согласования с ТТК процедуры блэкхола по bgp для атакуемых адресов - видим только сообщения о том, что атака успешно отбита, а не полку в каналах и вопли клиентов, как раньше. Автору мегареспект!

 

Спасибо! Очень приятно! :)

Изменено пользователем pavel.odintsov

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


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

Он распаковывает MPLS и должен подать на вход к FastNetMon как обычный трафик с указанием MPLS метки и монитор его увидит весь, так как на MPLS метки не смотрит, а src/dst IP в нем будут прописаны.

 

 

Павел, спасибо!

Сегодня днем попробую.

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


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

Он распаковывает MPLS и должен подать на вход к FastNetMon как обычный трафик с указанием MPLS метки и монитор его увидит весь, так как на MPLS метки не смотрит, а src/dst IP в нем будут прописаны.

 

 

Павел, спасибо!

Сегодня днем попробую.

 

Как успехи, трафик распаковался?

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


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

Как успехи, трафик распаковался?

 

сорри, отъезжал, не успел.

завтра проверю все.

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


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

Как успехи, трафик распаковался?

 

сорри, отъезжал, не успел.

завтра проверю все.

 

Ок, а-то мне самому уже интересно :)

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


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

Ок, а-то мне самому уже интересно :)

 

Segmentation fault (core dumped)

 

Core was generated by `./fastnetmon eth0'.

Program terminated with signal 11, Segmentation fault.

#0 0x000000000040326f in make_and_lookup ()

(gdb) bt

#0 0x000000000040326f in make_and_lookup ()

#1 0x00000000004055ce in load_our_networks_list () at fastnetmon.cpp:715

#2 0x00000000004078af in main (argc=2, argv=0x7fffb0ddfc78) at fastnetmon.cpp:1232

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

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


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

Join the conversation

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

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

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

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

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

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

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