Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Решение административных задач в Linux

Анализ трафика в Linux - быстро и просто

Оригинал: Linux traffic analysis, quick and simple
Автор: Sergio Gonzalez Duran
Дата: 6 декабря 2007
Перевод: Александр Тарасов aka oioki
Дата перевода: 27 декабря 2007

В Linux-среде популярны такие полновесные анализаторы трафика, как ntop и vnstat, но иногда бывает нужна такая программа, которая бы давала базовую информацию о количестве проходящего в сети трафика, и делала это быстро. Darkstat - пакетный сниффер, работающий в фоновом режиме, вполне справляется с этой ролью. Программа собирает сетевую статистику и может отображать ее по HTTP.

Мной была опробована последняя версия (darkstat-3.0.707.tar.bz2) на системах CentOS 5 и Fedora 7. Для установки сначала распакуйте архив:

tar -xvjf darkstat-3.0.707.tar.bz2

Затем введите стандартные команды

./configure; make; make install

Для запуска darkstat на интерфейсе eth0 введите

darkstat -i eth0

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

darkstat 3.0.707 (built with libpcap 2.4)
darkstat (19646): starting up
darkstat (19646): daemonizing to run in the background!
darkstat (19647): I am the main process
darkstat (19647): DNS child has PID 19648
darkstat (19646): parent waiting
darkstat (19647): caplen is 54
darkstat (19648): set uid/gid to 99/99
darkstat (19647): capturing in promiscuous mode
darkstat (19647): listening on 0.0.0.0:667
darkstat (19647): loaded 129 protos
darkstat (19647): loaded 4594 tcp and 4549 udp servs, from total 9158
darkstat (19647): chrooted into: /var/empty
darkstat (19647): set uid/gid to 99/99
darkstat (19647): local_ip update(eth0) = 192.168.0.5
darkstat (19647): entering main loop
darkstat (19646): parent done reading, calling waitpid
darkstat (19646): waitpid ret 0, status is 3

В третьей строке написано, что darkstat работает как служба и автоматически становится демоном. Его PID отображается на четвертой строке. Можно остановить программу, отдав одну из команд kill -9 19647 или killall darkstat.

Для просмотра данных, собранных darkstat, нужно набрать в браузере адрес http://сервер:667 - у darkstat имеется свой встроенный веб-сервер. На девятой строке (listening on 0.0.0.0:667) указан порт, к которому нужно подключаться веб-браузером. Можно указать другой порт с помощью ключа -p.

Ключ -l указывает сеть в формате адреса сети/маски, для которой будет собираться статистика по входящему или исходящему трафику. Ключ -f позволяет отфильтровывать пакеты:

darkstat -i eth0 -l 192.168.0.0/255.255.255.0 -f "port 22"

В этом примере мы отфильтровываем пакеты службы SSH, которая работает на порте 22. Таким образом можно узнать, на каких машинах используется протокол SSH. Синтаксис фильтра основан на tcpdump; для более подробной информации нужно обратиться к его документации.

Darkstat - простая программа, поэтому не ждите от нее "свисточков и звоночков". На странице графиков (рис.1) отображаются четыре симпатичных, но не очень полезных графика и кое-какая дополнительная информация. При наведении мышью на столбце появляется точное значение входящих и исходящих байт.


Рис.1.

Страница хостов (рис.2) содержит IP- и MAC-адреса каждой машины в сети, а также количество входящих и исходящих пакетов.


Рис.2.

Нажатие на IP-адресе выводит более подробную информацию о хосте - открытые порты и задействованные протоколы (рис.3). Можно производить сортировку по столбцам In, Out и Total, но только в порядке уменьшения.


Рис.3.

К сожалению, информация, которую генерирует darkstat, не обновляется автоматически, поэтому приходится обновлять страницу вручную. Но тем не менее darkstat выполняет свою работу. Данные представлены в простой форме и читать их легко. Иногда это именно то, что нужно.