суббота, 16 февраля 2008 г.

Wireshark - анализатор пакетов.

Утилитка, может быть, "крекерская", но ее использование упрощает понимание процессов, которые происходят в сети и может быть полезно при изучении сетевых протоколов и даже при простом обыденном поиске проблем.

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


Скачать ее, под *nix или под Windows, можно с сайта wireshark.org. Раньше она называлась Ethereal. ) Кроме того, она включена в большинство крупных дистрибутивов Linux и *BSD.


Для начала работы с Wireshark требуется хотя-бы захватить какие-либо пакеты. Удобнее всего это делать через "Capture options", расположенное на главной панели и
нструментов или в меню Capture.

В опциях нужно задать интерфейс компьютера, на котором нужно отлавливать пакеты. Также можно задать, делать ли это в promisc режиме (т.е. слушать весь траффик) или нет (получать только пакеты для этой машины). Тут же для удобства можно выбрать опции показа захватываемых пакетов - обновлять ли список в реальном времени и прокручивать ли список автоматически. Удобно обычно поставить сразу все галки.)



После этого wireshark начинает, как правило, что-то захватывать...



... и показывать список захваченных пакетов, из которых можно выбирать пакет для более поднобного анализа. В среднем окне показывается декодированный пакет (т.е. wireshark сам раскладывает пакет по полям для известных протоколов). В нижнемокне показывается пакет или кадр в виде "как есть" (raw). Причем, выбранная в среднем окне часть будет подсвечиваться - так что даже без соответствующего RFC можно изучить формат заголовка интересного тебе протокола и т.д. )

Кроме того, в wireshark есть несколько удобных и полезных функций. Например, Analyse -> Expert Info Composite покажет список основных событий, которые произошли во время захвата - открытие новых сессий, не совсем хорошее поведение протоколов (повторные квитанции в TCP, повторные передачи сегментов и т.д.).



Там же - Follow (TCP|UDP|SSL) Stream - позволяет собрать сессию передачи воедино и посмотреть ее содержимое в целом - вплоть до восстановления переданной в течение сессии HTML-страницы. )



Statistics->Summary позволяет просмотреть некоторую статистику в целом по сессии захвата - в том числе, среднее количество пакетов в секунду и объем передава
емых данных.



Statistic -> Protocol Hierarhy - статистику по используемым протоколам, в том числе - в процентном соотношении.



Statistics -> Conversations показывает информацию об участниках связи, кто кому сколько передавал пакетов, данных и в какую сторону. )



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



Ну и для совсем уж ленивых людей, wireshark может автоматически генерировать правила для блокировки или разрешения траффика, похожего на выбранный пакет. Analyse - Firewall ACL Rules. При этом можно выбрать тип файрвола (Cisco acl, Netfilter, windows firewall и т.д.)



Кроме захвата пакетов непосредственно Wireshark, можно использовать tcpdump с опцией -w:
tcpdump -i ppp0 -w file.pcap

И затем открывать полученный файл в Wireshark для просмотра.

В общем, утилита удобная и должна быть Must Have у любого администратора. ) Единственное, чего в ней может не хватать - это генератора пакетов, но для этого есть другие, более подходящие средства.

Комментариев нет:

Отправить комментарий