Анализ сетевого трафика с помощью Ethereal
Программа имеет графический интерфейс и позволяет перехватывать и отображать пакеты, проходящие через сетевые интерфейсы системы. Подобно утилите tcpdump, программа Ethereal располагает средствами фильтрации трафика на уровне узлов и протоколов.
Программа способна также читать файлы пакетных данных, сгенерированные другими сетевыми анализаторами, в том числе Sniffer, LANalyzer, snoop, Microsoft Network Monitor и др. Программа распознает пакеты более двухсот протоколов и отображает многие специфичные поля пакетов различных типов.
Исходная версия Ethereal написана Джеральдом Кумбзом (Gerald Combs) в 1997 году. За последние годы в разработку программы внесли свой вклад множество людей. В настоящее время программа входит в состав Red Hat 7.2 (версия 0.8.18-9). Утилиту можно скачать с Web-узла www. ethereal. com.
Если программа Ethereal уже установлена в системе, то для ее запуска достаточно ввести
В результате появится графический интерфейс программы, проинициализированный установками по умолчанию. Полный синтаксис вызова программы таков:
Рассмотрим эти опции подробнее.
Задает начальную высоту панели побайтового просмотра (нижней).
Задает стандартное число пакетов, перехватываемых в интерактивном режиме.
Задает правило фильтрации перехватываемых пакетов.
Вывод синтаксической справки и номера версии.
Задает имя интерфейса или канала, из которого следует извлекать пакеты.
Заставляет программу немедленно начать перехватывать пакеты.
Задает шрифт, используемый для отображения текстовых данных.
Запрещает преобразование имен сетевых объектов.
Задает выбранный приоритет в формате тип_приоритета: значение (см. man-страницу).
Не переводить интерфейс в беспорядочный режим.
Задает начальную высоту панели со списком пакетов (верхней).
Заставляет программу завершиться по окончании сеанса перехвата пакетов.
Чтение пакетов из указанного файла.
Задает правило фильтрации пакетов, извлекаемых из входного файла (задается с помощью опции -r).
Заставляет программу породить отдельный процесс для перехвата пакетов.
Задает стандартное число байтов, извлекаемых из каждого пакета в интерактивном режиме.
Задает начальную высоту панели иерархического просмотра (средней).
Задает формат метки времени, отображаемой в панели со списком пакетов. Возможные значения таковы: r (относительный), a (абсолютный) и d (разностный).
Вывод номера версии.
Задает имя файла, куда будут записываться перехватываемые пакеты.
Окно программы разделено на три основные области, или панели. Размер каждой из них можно регулировать. В верхней панели отображается список пакетов, перехваченных программой. Для каждого пакета указывается номер, время получения, узел-отправитель, узел-получатель, протокол и некоторая общая информация. Любой пакет можно выбрать для дальнейшего анализа. В средней панели отображается иерархическая модель выбранного пакета. Здесь приводятся значения всех полей в заголовке пакета по каждому протоколу из стека ТСР/IР. Если выбрать какой-либо протокол или поле, в нижней панели появится его содержимое в шестнадцатеричном виде.
В верхней части окна программы содержатся раскрывающиеся меню File, Edit, Capture, Display и Tool. Многие их команды можно вызвать из контекстного меню, появляющегося после щелчка правой кнопкой мыши в любой из панелей.
Меню File содержит команды:
- позволяющие открывать,
- закрывать и перезагружать файл пакетных данных,
- сохранять текущие пакетные данные,
- распечатывать информацию, отображаемую в панелях,
- завершать работу программы.
Меню Edit содержит команды:
- для поиска и маркировки пакетов,
- редактирования фильтров и задания различных установок.
В меню Capture содержатся команды Start и Stop, запускающие и останавливающие сеанс интерактивного перехвата пакетов.
Меню Display содержит команды:
- для задания формата времени,
- цветового форматирования отображаемых данных,
- раскрытия и сжатия иерархических списков и др.
Команды меню Tools предназначены для:
- выбора подключаемых модулей,
- отслеживания TCP-потоков (об этом речь пойдет ниже),
- отображения статистических данных.
В нижней части окна выводится название текущего фильтра вместе со служебной информацией.
Синтаксис правил фильтрации программы Ethereal такой же, как и у программы tcpdump, так как именно последняя используется для фактического перехвата пакетов. Поддерживается также понятие экранного фильтра (меню Display), позволяющего отображать только пакеты, интересующие пользователя.
После задания различных параметров и фильтров можно начинать сеанс перехвата пакетов. Для этого предназначена команда Start в меню Capture.
При выборе данной команды появится окно Capture Preferences (см. рис.), в котором можно задать интерфейс для мониторинга, число перехватываемых пакетов (по умолчанию — бесконечность), фильтры (в рассматриваемом примере включается фильтрация TCP-пакетов), файл для сохранения пакетных данных, число байтов данных, отображаемых для каждого пакета, и ряд вспомогательных опций.
Если не установить опцию Capture packets in promiscuous mode, программа сможет перехватывать только пакеты, непосредственно адресованные выбранному интерфейсу. Опция Update list of packets in real time включает режим интерактивного отображения перехватываемых пакетов. Если она не установлена, список пакетов появится только по окончании сеанса. Опция Automatic scrolling in live capture указывает на то, что программа должна автоматически прокручивать список пакетов для выделения текущего пакета. Наконец, последняя опция, Enable name resolution, позволяет включить режим преобразования IP-адресов в доменные имена.
В процессе перехвата пакетов отображается окно Capture Activity (см. рис. сбоку), в котором анализируется тип трафика и указывается, сколько процентов от общего числа пакетов составляют пакеты определенного типа. В этом окне есть кнопка Stop, позволяющая остановить перехват пакетов. После щелчка на этой кнопке окно Capture Activity исчезнет и в верхней панели основного окна появится список перехваченных пакетов (см. самый первый рис.). На нем видно, что программа Ethereal перехватила пакеты, переданные в ходе сеанса связи между двумя узлами (205.153.63.30 и 198.133.219.28). Первый пакет (он выделен) содержит метод GET. В ответ возвращается пакет, где HTTP/1.1 200 OK – это, в свою очередь, означает успешный запрос ресурса. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения. Обратите внимание на то, что в средней панели выделен differentiated services field протокола IP (подсказка RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers – читайте wiki, если нужно). В нижней панели показано содержимое заголовка этого протокола.
Отображаемые данные можно сортировать самыми разными способами. Например, если нужно просмотреть все пакеты, отправляемые с заданного узла, щелкните на заголовке столбца Source, и содержимое этого столбца будет отсортировано в алфавитном порядке.
Но у программы Ethereal есть и более интересный режим сортировки. Если в верхней панели выделить определенный пакет, а затем в меню Tools выбрать команду Follow TCP Stream, появится окно Contents of TCP stream. В этом окне отображается ход TCP-сеанса, к которому принадлежит выбранный пакет.
Возможности программы Ethereal очень велики. Она популярна не только из-за своей надежности, но еще и потому, что ее сопровождением занимается целая группа разработчиков, которая регулярно выпускает обновления. Существует также список рассылки, в котором разработчики могут обмениваться информацией, обсуждать найденные ошибки и предлагаемые обновления.


Автор, посты , конечно, интересные. Но вы не подумывали поменять дизайн?