Сжатие файлов захвата в Tshark

WiresharkWiresharkBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/protocol_dissection("Protocol Dissection") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/interface -.-> lab-548918{{"Сжатие файлов захвата в Tshark"}} wireshark/packet_capture -.-> lab-548918{{"Сжатие файлов захвата в Tshark"}} wireshark/display_filters -.-> lab-548918{{"Сжатие файлов захвата в Tshark"}} wireshark/protocol_dissection -.-> lab-548918{{"Сжатие файлов захвата в Tshark"}} wireshark/packet_analysis -.-> lab-548918{{"Сжатие файлов захвата в Tshark"}} wireshark/commandline_usage -.-> lab-548918{{"Сжатие файлов захвата в Tshark"}} end

Захват трафика с использованием -i eth1

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

  1. Сначала подготовим рабочую среду. Откройте терминал в виртуальной машине LabEx и перейдите в директорию проекта, где мы будем хранить наши захваты:

    cd ~/project
  2. Перед началом захвата необходимо определить доступные сетевые интерфейсы. Запустите эту команду, чтобы их перечислить:

    tshark -D

    Вы увидите вывод, в котором перечислены ваши сетевые интерфейсы, обычно это включает:

    1. eth1 (основной Ethernet-интерфейс)
    2. any (все интерфейсы)
    3. lo (циклический интерфейс для внутреннего обмена)
  3. Чтобы начать захватывать пакеты на основном сетевом интерфейсе (обычно это eth1), используйте следующую команду:

    tshark -i eth1

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

  4. Чтобы остановить непрерывный захват (который в противном случае будет работать бесконечно), нажмите Ctrl+C. Затем в терминале будут отображены статистические данные о захвате, включая общее количество захваченных пакетов.

  5. Для практики давайте захватим ровно 5 пакетов. Флаг -c позволяет ограничить количество захваченных пакетов:

    tshark -i eth1 -c 5

    Эта команда автоматически остановится после захвата 5 пакетов, предоставив вам удобную выборку для изучения.

Сохранение с использованием Gzip с помощью -w capture.pcap.gz

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

  1. Сначала перейдем в нашу рабочую директорию, где мы будем хранить файлы с захваченным трафиком. Это обеспечит хранение всех наших файлов в одном месте:

    cd ~/project
  2. Теперь мы захватим активный сетевой трафик и сохраним его в сжатом виде. Следующая команда выполняет сразу три важные задачи:

    • Указывает, какой сетевой интерфейс нужно отслеживать (eth1)
    • Автоматически сжимает выходной файл (обратите внимание на расширение .gz)
    • Ограничивает захват до 10 пакетов для демонстрации
    tshark -i eth1 -w capture.pcap.gz -c 10

    Во время выполнения команды вы увидите, как Tshark подсчитывает каждый захваченный пакет, пока не достигнет 10.

  3. После завершения захвата убедимся, что наш сжатый файл был создан правильно. Опции -lh показывают размер файла в удобочитаемом формате:

    ls -lh capture.pcap.gz

    В выводе показаны детали сжатого файла, включая его размер (намного меньше, чем размер несжатого захвата):

    -rw-r--r-- 1 labex labex 1.2K Mar 1 10:00 capture.pcap.gz
  4. Наконец, мы можем читать данные непосредственно из сжатого файла без ручного распаковывания. Эта команда отображает только первые 3 пакета, чтобы убедиться, что захват прошел успешно:

    tshark -r capture.pcap.gz -c 3

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

Чтение сжатого файла с использованием -r capture.pcap.gz

На этом этапе вы будете работать с ранее созданным сжатым файлом с захваченными пакетами (capture.pcap.gz). Мы воспользуемся командной строковой утилитой Wireshark tshark для чтения и анализа этого файла без необходимости предварительного ручного распаковывания. Это особенно полезно при работе с большими файлами с захваченным трафиком, которые могут занимать значительное место на диске, если распаковать их.

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

    cd ~/project
    ls -l capture.pcap.gz

    Вы должны увидеть список сжатого файла с указанием его размера и прав доступа. Это подтверждает, что мы готовы продолжить.

  2. Базовая команда для чтения сжатого файла с захваченными пакетами выводит сводки по пакетам. Каждая строка представляет собой один сетевой пакет с важной информацией, такой как временная метка, адреса источника и назначения, а также протокол:

    tshark -r capture.pcap.gz

    Обратите внимание, что tshark автоматически обрабатывает сжатие gzip - нам не нужно выполнять отдельные шаги по распаковке.

  3. При работе с большими файлами часто полезно ограничить вывод. Эта команда показывает только первые 5 пакетов, что полезно для быстрой проверки:

    tshark -r capture.pcap.gz -c 5

    Флаг -c означает "количество" и контролирует, сколько пакетов нужно отобразить.

  4. Чтобы более детально изучить содержимое пакетов, мы используем подробный режим с помощью -V. В этом примере показаны полные детали первых 3 пакетов, включая все заголовки протоколов и данные полезной нагрузки:

    tshark -r capture.pcap.gz -V -c 3

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

  5. Для целенаправленного анализа мы можем фильтровать пакеты по протоколу. Эта команда отображает первые 2 HTTP - пакета, найденные в захвате:

    tshark -r capture.pcap.gz -Y "http" -c 2

    Флаг -Y применяет фильтр отображения (аналогично синтаксису основного фильтра в Wireshark).

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

    tshark -r capture.pcap.gz -q -z io,stat,0

    Флаг -q делает вывод тихим (подавляет отображение пакетов), в то время как -z предоставляет различные варианты статистики. Это дает быстрый обзор размера и содержимого захвата.

Проверка с использованием -V

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

  1. Сначала перейдем в нашу рабочую директорию и убедимся, что наш сжатый файл с захваченными пакетами существует. Команда cd изменяет текущую директорию, а ls -l показывает подробную информацию о файлах:

    cd ~/project
    ls -l capture.pcap.gz
  2. Теперь мы используем -V, чтобы увидеть полные детали протокола. Флаг -c 3 ограничивает вывод первыми 3 пакетами, что упрощает анализ:

    tshark -r capture.pcap.gz -V -c 3

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

  3. При исследовании HTTP - трафика мы комбинируем -V с фильтром отображения (-Y). Это показывает только HTTP - пакеты с полными деталями протокола:

    tshark -r capture.pcap.gz -Y "http" -V -c 2
  4. Для анализа TCP эта команда отображает один TCP - пакет со всеми его полями протокола. Вы увидите номера последовательности, флаги, размер окна и другую специфическую для TCP информацию:

    tshark -r capture.pcap.gz -V -Y "tcp" -c 1
  5. DNS - запросы показывают интересные детали в подробном режиме. Эта команда показывает один DNS - пакет, включая тип запроса, класс и полный раздел вопроса:

    tshark -r capture.pcap.gz -V -Y "dns" -c 1
  6. Наконец, мы можем проверить пакеты с неправильными контрольными суммами. Это помогает выявить возможные повреждения сети или проблемы с захватом:

    tshark -r capture.pcap.gz -V -Y "tcp.checksum_bad==1" -c 1

Резюме

В этом практическом занятии вы научились эффективно захватывать, сжимать и анализировать сетевой трафик с использованием командной строковой утилиты tshark из Wireshark. Вы практиковались в захвате текущего сетевого трафика на интерфейсе eth1 с помощью флага -i eth1 и сохранении сжатых файлов непосредственно в формате gzip с использованием -w capture.pcap.gz.

В ходе упражнений показано, как эффективно управлять захватом пакетов, комбинируя сжатие и анализ. Вы убедились, что можно читать сжатые файлы без ручного распаковывания, используя -r capture.pcap.gz, и освоили важные флаги, такие как -i, -w, -r и -c.