Библиотека сайта rus-linux.net
Анализ трафика в 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 выполняет свою работу. Данные представлены в простой форме и читать их легко. Иногда это именно то, что нужно.