Глава 3. Захват сетевых данных в реальном времени

Материал из wireshark.wiki

3.1. Введение

Захват сетевых данных в реальном времени является одной из ключевых функций Wireshark.

Движок захвата Wireshark предлагает следующий функционал:

  • Захват данных с сетевых интерфейсов разного типа, таких как Ethernet или 802.11.
  • Одновременный захват с нескольких сетевых интерфейсов.
  • Прекращение процесса захвата при различных условиях: при достижении установленного объема захваченных данных, при истечении фиксированного отрезка времени, при захвате определенного количества пакетов и др.
  • Одновременный вывод расшифрованных пакетов на экран во время работы Wireshark.
  • Захват только определенных пакетов, которые подпадают под конкретные условия, что позволяет уменьшить объем захватываемых данных. См. раздел 4.10, «Фильтрация при захвате».
  • Сохранение пакетов в нескольких файлах во время долгосрочного захвата, с возможностью циклической записи в фиксированное количество файлов (так называемый «кольцевой буфер»). См. раздел 4.8, «Файлы захвата и режимы работы с файлами».


Онлайн-курс по Wireshark

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.


3.2. Предварительные требования

Настройка Wireshark для первичного захвата пакетов может быть непростой задачей. Подробное руководство «Как настроить захват» доступно на английском языке по адресу https://gitlab.com/wireshark/wireshark/-/wikis/CaptureSetup.

При запуске захвата в режиме реального времени можно столкнуться со следующими трудностями:

  • Могут потребоваться специальные права доступа.
  • Необходимо правильно выбрать сетевой интерфейс для захвата данных пакетов.
  • Необходимо выбрать подходящее место в сети, с которого будет выполняться захват.

Если возникнут проблемы с настройкой среды для захвата данных, рекомендуется ознакомиться с вышеуказанным руководством.


3.3. Начало, остановка и перезапуск захвата

3.3.1. Начало захвата

Начать захват пакетов с помощью Wireshark можно одним из следующих способов:

  • Дважды кликнуть по интерфейсу на стартовом экране.
  • Выбрать интерфейс на стартовом экране и нажать на первую кнопку панели инструментов.
  • Выбрать интерфейс на стартовом экране и выбрать в главном меню ЗахватСтарт.

Получить более подробную информацию об интерфейсах можно в разделе 4.5. «Диалоговое окно "Параметры захвата"» (ЗахватОпции...).

Если известно имя интерфейса для захвата, Wireshark можно запустить из командной строки: $ wireshark -i eth0 -k

Это запустит Wireshark для захвата пакетов на интерфейсе eth0. Более подробную информацию можно найти в разделе 11.2. «Запуск Wireshark из командной строки».

3.3.2. Остановка захвата

Остановить захват пакетов можно одним из следующих способов:

  • Через главное меню: ЗахватСтоп.
  • Через панель инструментов: кнопка Остановить захват пакетов.
  • Нажатие комбинации клавиш Ctrl + E.

Захват будет автоматически остановлен, если выполнено одно из условий для автоматической остановки. Например, достигнут максимальный объем захваченных данных.

3.3.3. Перезапуск захвата

Перезапустить запущенный захват пакетов с теми же параметрами, которые были использованы прежде, можно одним из следующих способов:

  • Через главное меню: ЗахватПерезапуск.
  • Через панель инструментов: кнопка Перезапустить текущий захват.


3.4. Раздел «Захват» на начальном экране

При запуске Wireshark без выполнения захвата или без открытия файла с данными захвата откроется первоначальный экран. На этом экране можно увидеть список ранее открывавшихся файлов захвата и доступные интерфейсы для захвата. Рядом с именем каждого интерфейса отображается мини-график сетевой активности. Захват пакетов можно выполнять одновременно с нескольких выбранных интерфейсов.

Первоначальный экран Wireshark Первоначальный экран Wireshark

Отдельным интерфейсам можно задать настройки. А некоторые из них могут осуществлять захват только при заданных настройках. Возможность настройки обозначается размещенным слева от имени интерфейса значком в виде шестеренки, расположенной внутри круга. При нажатии на значок открывается окно с настройками для данного интерфейса.

При наведении указателя мыши на интерфейс будут отображены связанные с ним IPv4- и IPv6-адреса, а также фильтр захвата.

Захват с помощью Wireshark возможен не только через сетевые интерфейсы. На большинстве систем возможен также захват пакетов других форматов (USB, Bluetooth и др.). Интерфейс можно скрыть, если он недоступен для Wireshark. Как это сделать описано в разделе 4.6. «Диалоговое окно "Управление интерфейсами"».


3.5. Диалоговое окно «Параметры захвата»

Диалоговое окно «Опции захвата» можно вызвать один из трех следующих способов:

  • через главное меню, выбрав последовательно пункты ЗахватОпции... ;
  • с помощью нажатия на пиктограмму с плавником акулы в панели инструментов;
  • нажав на надпись «Захват», расположенную над строкой в которой можно указать фильтр захвата.

3.5.1. Вкладка «Ввод»

Вкладка «Ввод» диалогового окна «Параметры захвата» Вкладка «Ввод» диалогового окна «Параметры захвата» в Wireshark

Интерфейс – столбец, в котором отображены интерфейсы. Если интерфейс можно настроить, то слева от его названия будет находиться значок с изображением шестеренки, помещенной в круг.

Трафик – столбец, в котором отображены графики сетевой активности.

Заголовок уровня Link – столбец, в котором отображены заголовки канального уровня, используемые этим интерфейсом. В некоторых случаях возможно изменение заголовка. Для получения более подробной информации см. раздел 4.9 «Тип заголовка канального уровня».

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

Длина снимка (байт) – столбец, в котором можно указать максимальное количество байтов данных, которое может быть захвачено в каждом отдельном пакете. При необходимости можно задать явную длину. Это оправданный шаг, если программа установлена на компьютере с невысокой производительностью или нужно сохранить конфиденциальность данных.

Буфер (Мбайт) – столбец, в котором можно указать размер буфера, выделенного для захвата пакетов. Этот параметр можно увеличить или уменьшить по мере необходимости, но обычно настройки по умолчанию являются оптимальными.

Режим монитора – столбец, в котором можно активировать захват полных и необработанных заголовков беспроводных кадров 802.11 без привязки к тому, кто является отправителем и получателем кадров. Возможность использования режима зависит от типа интерфейса, оборудования, драйвера и операционной системы. При активации режима может произойти отключение от беспроводной сети.

Фильтр захвата – столбец, в котором можно указать выражение фильтра захвата (см. раздел 4.10. «Фильтрация во время захвата»).

Чтобы начать захват, можно дважды кликнуть мышью по строке, связанной с тем интерфейсом, трафик которого нужно проанализировать

3.5.2. Вкладка «Вывод»

Вкладка «Вывод» диалогового окна «Параметры захвата»

Вкладка «Вывод» диалогового окна «Параметры захвата» в Wireshark

Захватывать в постоянный файл – раздел, в котором можно указать расположение и имя файла, в который будет выполняться захват. По умолчанию поле не заполнено и данные захвата сохраняются во временном файле (см. раздел 4.8. «Файлы захвата и режимы файлов»).

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

Автоматически создавать новый файл... – раздел, в котором можно задать одно или несколько условий, при создании которых результат захвата автоматически будет сохраняться в новом файле. При выборе более одного условия используется функция логического ИЛИ, т.е. для начала сохранения в новый файл достаточно выполнения одного любого условия. Условия могут быть связаны с количеством захваченных кадров, размером файла, продолжительностью захвата, текущим временем, кратным заданному значению.

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

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

3.5.3. Вкладка «Параметры»

Вкладка «Параметры» диалогового окна «Параметры захвата»

кладка «Опции» диалогового окна «Параметры захвата» в Wireshark

Раздел «Параметры отображения»

Обновлять список пакетов в реальном времени – опция, которая отвечает за отображение захваченных пакетов в области списка пакетов в режиме реального времени. Если эта опция выключена, то пакеты не будут отображаться во время захвата и будут показаны только после его окончания. Если опция включена, то пакеты будут отображаться сразу во время захвата. По умолчанию опция включена.

Автопрокрутка при захвате в реальном времени – опция, при активации которой в области списка пакетов будут отображаться самые последние пакеты, захваченные в режиме реального времени.

Показывать информацию о захвате в реальном времени – опция, которая отвечает за отображение окна «Информация о захвате», в котором отображаются графики использования пакетов разных видов. По умолчанию опция отключена.

Раздел «Разрешение имен»

Разрешение MAC-адресов – опция, отвечающая за определение производителя сетевого адаптера, который является отправителями или получателями кадров. Определение выполняется на основе первых 3 байт (24 бита) MAC-адреса в которых обозначен идентификатор производителя.

Разрешение сетевых имен – опция, отвечающая за определение доменных имен, с которыми связаны IP-адреса, являющиеся отправителями и получателями пакетов. Надо учитывать, что с одним доменным именем может быть связано более одного IP-адреса. В подобном случае в области списка пакетов вместо разных идентификаторов сетевого уровня будет отображаться один общий идентификатор в виде доменного имени.

Разрешение имен транспортного уровня – опция, отвечающая за определение сервисов, с которыми связаны UDP- или TCP-порты, являющиеся отправителями и получателями дейтаграмм или сегментов соответственно.

Раздел «Автоматически останавливать захват после...»

Автоматически останавливать захват после... – раздел, в котором можно задать одно или несколько условий, при возникновении которых захват будет остановлен. При выборе более одного условия используется функция логического ИЛИ, т.е. захват будет остановлен при возникновении любого из условий. Можно задать следующие условия: захват определенного количества пакетов или файлов, истечение фиксированного отрезка времени, достижение определенного размера файла захвата.

Раздел «Directory For temporary files»

Directory For temporary files – раздел, в котором можно указать каталог для сохранения временного файла захвата.

Онлайн-курс по Wireshark

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.


3.6. Диалоговое окно «Управление интерфейсами»

Диалоговое окно «Управление интерфейсами»

Диалоговое окно «Управлять интерфейсами» в Wireshark

Диалоговое окно «Управлять интерфейсами» можно вызвать, нажав одноименную кнопку на вкладке «Ввод» диалогового окна «Опции захвата». В окне «Управлять интерфейсами» имеются три вкладки: «Локальные интерфейсы», «Каналы» и «Удаленные интерфейсы».

3.6.1. Вкладка «Локальные интерфейсы»

На вкладке «Локальные интерфейсы» имеются следующие столбцы:

  • Показать – столбец, в котором можно включить или выключить отображение интерфейсов на первоначальном экране и в окне «Параметры захвата».
  • Понятное имя – столбец, в котором отображаются удобочитаемые имена интерфейсов.
  • Имя интерфейса – столбец, в котором отображаются системные имена интерфейсов.
  • Комментарий – столбец, в котором отображаются комментарии к интерфейсу.

3.6.2. Вкладка «Каналы»

На вкладке «Каналы» можно добавлять или удалять именованные каналы (named pipe). Из каналов, указанных на этой вкладке, можно выполнять захват данных. Для добавления канала необходимо, чтобы соответствующий именованный канал уже был создан.

Чтобы добавить канал, нажмите «+», а чтобы удалить – «-».

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

В контексте программы Wireshark, под термином «канал» (или «pipe») подразумевается механизм передачи данных между программами и процессами. В случае с Wireshark этот механизм часто используется, чтобы передавать пакеты или другую информацию от приложений или служб программе Wireshark для дальнейшего анализа. Каналы могут быть особенно полезными при работе с удаленными системами или сетевыми устройствами, которые не имеют установленного Wireshark. В таких случаях сетевые пакеты могут быть захвачены удаленно и переданы через канал для локального анализа. Wireshark может быть настроен на чтение данных из этого канала как из обычного сетевого интерфейса.

3.6.3. Вкладка «Удаленные интерфейсы»

Вкладка «Удаленные интерфейсы» доступна только при использовании Wireshark в ОС Windows. На этой вкладке можно добавлять или удалять интерфейсы, с помощью которых может быть выполнен удаленный захват данных с другого устройства. Для возможности подключения к удаленному интерфейсу на целевой платформе должна быть запущена служба Remote Packet Capture Protocol.

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

  • Хост – IP-адрес или доменное имя узла, к которому должно быть выполнено удаленное подключение. В выпадающем списке содержится список узлов, с которыми ранее уже удавалось установить соединение.
  • Порт – номер порта, по которому будет выполняться подключение. Если не указать этот параметр, то будет использоваться порт по умолчанию (2002).
  • Недействительная аутентификация – аутентификация при которой не надо указывать логин и пароль. Уровень безопасности при использовании этого варианта минимальный.
  • Аутентификация по паролю – аутентификация, при которой можно указать имя пользователя и пароль для удаленного подключения.

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

Чтобы добавить интерфейс нажмите «+», а чтобы удалить – «-».

Примечание

На удаленном узле должен быть открыт TCP-порт 2002, который используется для службы Remote Packet Capture Protocol.

На платформах Linux и Unix возможен захват данных более безопасным способом через SSH-туннель.


3.7. Диалоговое окно «Вывод скомпилированного фильтра»

Диалоговое окно «Вывод скомпилированного фильтра»

Диалоговое окно «Вывод скомпилированного фильтра» в Wireshark

Диалоговое окно «Вывод откомпилированного фильтра» можно вызвать, нажав одноименную кнопку на вкладке «Ввод» диалогового окна «Опции захвата».

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

Фильтры BPF (Berkeley Packet Filter) используются для отбора пакетов по заданным условиям для дальнейшего анализа или обработки. Компиляция фильтра означает преобразование запроса (например, «показать все пакеты, идущие на порт 80») в набор инструкций, которые компьютер может быстро выполнить для отбора нужных пакетов.

3.8. Файлы захвата и режимы файла

Во время захвата сетевых пакетов базовый механизм захвата libpcap получает пакеты с сетевой карты и хранит данные о них в небольшом буфере ядра операционной системы. Эти данные считываются Wireshark и сохраняются в файл захвата.

По умолчанию Wireshark сохраняет пакеты во временный файл. Также существует возможность настроить Wireshark для сохранения данных в определенный («постоянный») файл и переключаться на другой файл после истечения определенного времени или после захвата заданного числа пакетов. Эти параметры можно настроить на вкладке «Вывод» диалогового окна «Параметры захвата».

Вкладка «Вывод» диалогового окна «Параметры захвата»

Вкладка «Вывод» диалогового окна «Параметры захвата» в Wireshark


Полезно

Работа с большими файлами (несколько сотен МБ и более) может быть медленной. Если ожидается работа с большими файлами, то рекомендуется настроить сохранение захваченных данных в разные файлы.


Осторожно

Сохранение данных более чем в одном файле может привести к потере информации о взаимосвязи пакетов. Например, при установлении TCP-соединения однократно согласовываются параметры, которые остаются неизменными на протяжении всего времени жизни соединения. Если пакеты, относящиеся к этапу установления соединения, сохранены в одном файле, а данные этого соединения, которые необходимо анализировать, находятся в другом файле, то возможна потеря информации, связанной с контекстом, который был задан на этапе установления соединения.

Информация о папках, используемых для файлов захвата, приведена в Приложении Б. «Файлы и папки».

Таблица 4.1. Варианты сохранения в файл захвата
Имя файла Автоматически создать новый файл Использовать кольцевой буфер Режим Итоговое имя файла(ов)
Единый временный файл wiresharkXXXXXX (где XXXXXX это уникальный номер)
file.capng Единый именованный файл file.capng
file.capng + Бесконечное множество именованных файлов file_00001_20231214110102.capng,

file_00002_20231214110318.capng,

...

file.capng + + Множество именованных файлов количество которых ограничено размером кольцевого буфера file_00001_20231214110102.capng,

file_00002_20231214110318.capng,

...

Единый временный файл (по умолчанию) – сохранение захваченных данных в один временный файл. После завершения захвата файл может быть сохранен в заданный каталог с заданным именем.

Единый именованный файл – сохранение захваченных данных в один файл, имя и расположение которого должны быть заданы заранее.

Бесконечное множество файлов – сохранение захваченных данных в условно неограниченное множество файлов. Запись в новый файл начинается при возникновении одного из заданных условий (захват определенного количества кадров, достижение конкретного объема файла, истечение фиксированного отрезка времени и др.)

Множество файлов, количество которых ограничено размером кольцевого буфера – сохранение захваченных данных во множество файлов, количество которых ограничено значением, заданным в параметре «Использовать кольцевой буфер». Запись в новый файл начинается при выполнении одного из заданных условий (захват определенного количества кадров, достижение конкретного объема файла, истечение фиксированного отрезка времени и др.). Может быть задано любое количество условий. Количество файлов будет увеличиваться до тех пор, пока не достигнет значения, указанного в параметре «Использовать кольцевой буфер». После достижения этого значения количество файлов не будет увеличиваться, а новые файлы будут создаваться после автоматического удаления самого старого из уже имевшихся файлов.

Примечание

Несмотря на то что в некоторых случаях ограничения по количеству файлов или их размеру отсутствуют, следует помнить, что на самом деле они существуют, так как свободное место на диске, где эти файлы хранятся, не бесконечно.


3.9. Тип заголовка кадра на канальном уровне

Тип заголовка кадра на канальном уровне можно изменить в параметре «Заголовок уровня Link» вкладки «Ввод» диалогового окна «Опции захвата».

В большинстве случаев тип заголовка канального уровня изменять не требуется. Но иногда возможны и исключения. Тип заголовка необходимо изменить, если, например, используется стандарт DOCSIS, Cisco HDLC, если беспроводные кадры нужно захватывать в формате 802.11, а не 802.3 и в некоторых других случаях, когда требуется отображение заголовков канального уровня в форматах, отличных от Ethernet, при условии что необходимый формат поддерживается Wireshark и Npcap умеет выполнять захват в нем.

Онлайн-курс по Wireshark

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.