darkstat - инструмент для анализа сетевого трафика

ArticleCategory: [Choose a category, translators: do not translate this, see list below for available categories]

System Administration

AuthorImage: [Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in de Mario M. Knopf

de to en Mario M. Knopf

en to ru Pukhlyakov Kirill

AboutTheAuthor:[A small biography about the author]

Mario нравится изучать Linux, сети и все, что связано с безопасностью.

Abstract:[Here you write a little summary]

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

ArticleIllustration:[One image that will end up at the top of the article]

[Illustration]

ArticleBody:[The main part of the article]

Введение

"darkstat" [1] - инструмент для анализа сетевого трафика, который на основе полученных данных создает отчеты в формате HTML для просмотра в браузере. Создатель этого приложения долгое время пользовался "ntop'ом", но из-за его нестабильности решил написать "darkstat". Приложением анализируется взаимодействие между хостами, их трафик, порты и протоколы. Также можно получить графики за определенный период и общие данные по проанализированным пакетам с момента запуска приложения.

Установка

В конце заметки есть адреса [3] откуда можно скачать "darkstat".

Как и многие другие приложения для мониторинга сети, "darkstat" использует "libpcap" [7], библиотеку используемую снифферами для захвата и анализа пакетов передаваемых сетевыми устройствами. Для установки "darkstat" вам необходима эта библиотека.

Компилируется приложение обычным способом - "./configure && make && make install". Не забывайте, что последняя команда должна быть выполнена с привилегиями root'а.

Запуск приложения

Хотя "darkstat" и предполагает возможность запуска с параметрами, первый раз обойдемся без них. Для корректной работы приложения его необходимо запустить root'ом или с привилегиями "sudo" [8]:

neo5k@proteus> sudo /usr/local/sbin/darkstat

We trust you have received the usual lecture from the local System Administrator.
It usually boils down to these two things:

#1) Respect the privacy of others.
#2) Think before you type.

Password:

После авторизации пользователя "darkstat" стартует и выводит несколько сообщений на консоль:

darkstat v2.6 using libpcap v2.4 (i686-pc-linux-gnu)
Firing up threads...
Sniffing on device eth0, local IP is 192.168.1.1
DNS: Thread is awake.
WWW: Thread is awake and awaiting connections.
WWW: You are using the English language version.
GRAPH: Starting at 8 secs, 51 mins, 22hrs, 30 days.
Can't load db from darkstat.db, starting from scratch.
ACCT: Capturing traffic...
Point your browser at http://localhost:666/ to see the stats.

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

Параметры

Как мы уже сказали можно использовать параметры при запуске "darkstat". Рассмотрим их:

"-i" определяет интерфейс для мониторинга.

darkstat -i eth1

Если "darkstat" запущен без параметров, приложение открывает привилегированный порт 666. Это можно предотвратить используя параметр "-p":

darkstat -p 8080

Для связки порта с интерфейсом используем параметр "-b":

darkstat -b 127.0.0.1

Предотвратить DNS-Resolution можно используя параметр "-n". Это может быть интересно пользователям выделенных линий.

darkstat -n

Параметр "-P" используется для предотвращения работы "darkstat" в "promiscuous mode". Но это не рекомендуется делать, потому что "darkstat" принимает и анализирует пакеты адресованные MAC'у интерфейса, который мониторят. Все остальные пакеты игнорируются.

darkstat -P

Параметр "-l" используется для активации "SNAT" в локальной сети. "SNAT"("Source Network Address Translation") означает маскирование роутером локального IP адреса клиента своим внешним.

darkstat -l 192.168.1.0/255.255.255.0

Параметр "-e" используется для указания выражения фильтрации пакетов.

darkstat -e "port not 22"

Начиная с версии 2.5 можно использовать параметр detach для отвязки "darkstat" от запускающего терминала. Соответственно "darkstat" будет работать демоном.

darkstat --detach

Параметром "-d" можно указать каталог, где "darkstat" будет создавать свою базу.

darkstat -d /directory

Параметр "-v" для включения "verbose mode":

darkstat -v

Чтобы узнать версию приложения, синтаксис и примеры использования - есть параметр "-h".

darkstat -h

Обработка

После запуска приложения откройте браузер и наберите адрес "http://localhost:666/". Там уже вы увидите кое-какую статистику и несколько графиков:

darkstat ( главное )
Скриншот 1: darkstat ( главное )

В разделе "hosts" расположены компьютеры, участвующие во взаимодействии. Они могут быть отсортированы по трафику или адресам. Это дает вам возможность быстро найти самые активные машины в сети. Например, на следующем скриншоте видно, что это клиент с локальным IP адресом "192.168.1.203".

darkstat ( хосты )
Скриншот 2: darkstat ( хосты )

Следующий скриншот показывает номера портов, используемых серверными и клиентскими приложениями. Вы конечно сразу узнали следующие: 21 (FTP), 22 (SSH), 139 (Samba), 631 (CUPS), 666 (darkstat), 3128 (Squid). Тем не менее два из известных невидимы: "dhcpd" и "dnsmasq", потому что они работают через "UDP". Другие порты с номерами больше 1024 используются клиентскими приложениями для взаимодействия. Исключением является "squid", использующий порт 3128. Список всех поддерживаемых портов вы можете изучить на IANA [9] или можете посмотреть на файл "/etc/services".

darkstat ( порты )
Скриншот 3: darkstat ( порты )

На следующем скриншоте вы видите протоколы "ICMP", "TCP" и "UDP", которые используются для передачи файлов. Если хотите узнать подробнее о них - читайте тут: [10], [11] и [12].

darkstat ( протоколы )
Скриншот 4: darkstat ( протоколы )

На последнем скриншоте расположены графики с обобщенной временной информацией:

darkstat ( графики )
Скриншот 5: darkstat ( графики )

Перспективы

К сожалению версия 2.6 приложения "darkstat" зависит от "pthreads", что становится проблемой использования на других платформах ( например NetBSD ). Поэтому Emil Mikulic, автор приложения, решил не развивать далее версию 2.х и перешел к 3.х.

В новой версии ожидается появление следующих возможностей: захват пакетов с разных интерфейсов одновременно, парсер конфигурационного файла, улучшенный вывод для диаграмм ( сравнимый с RRDtool [13] ), настраиваемый CSS файл, административный вход и редактирование базы через веб интерфейс.

Вывод

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

Ссылки

[1] http://purl.org/net/darkstat [Домашняя страница darkstat]
[2] http://www.ntop.org/ [Домашняя страница ntop]
[3] http://dmr.ath.cx/net/darkstat/darkstat-2.6.tar.gz [Загрузить]
[4] http://yallara.cs.rmit.edu.au/~emikulic/_/darkstat-2.6.tar.gz [Загрузить: зеркало #1]
[5] http://neo5k.de/downloads/files/darkstat-2.6.tar.gz [Загрузить: зеркало #2]
[6] http://ftp.debian.org/debian/pool/main/d/darkstat/ [Пакеты для дистрибутива Debian]
[7] http://www.tcpdump.org/ [Домашняя страница libpcap]
[8] http://www.courtesan.com/sudo/ [Домашняя страница sudo]
[9] http://www.iana.org/assignments/port-numbers [IANA Port-Numbers]
[10] ftp://ftp.rfc-editor.org/in-notes/rfc792.txt [RFC 792 - ICMP]
[11] ftp://ftp.rfc-editor.org/in-notes/rfc793.txt [RFC 793 - TCP]
[12] ftp://ftp.rfc-editor.org/in-notes/rfc768.txt [RFC 768 - UDP]
[13] http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ [Домашняя страница RRDtool]