Отладка с использованием журналов в Tshark

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

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

Введение

В этом практическом занятии (лабораторной работе) вы научитесь основным техникам отладки с использованием командной строки инструмента Wireshark — Tshark. Вы узнаете, как устанавливать уровни отладки с помощью параметра --log-level, захватывать текущий сетевой трафик на интерфейсе eth1 с использованием параметра -i и сохранять логи в файлы с помощью параметра --log-file для дальнейшего анализа.

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


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/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/interface -.-> lab-548920{{"Отладка с использованием журналов в Tshark"}} wireshark/packet_capture -.-> lab-548920{{"Отладка с использованием журналов в Tshark"}} wireshark/display_filters -.-> lab-548920{{"Отладка с использованием журналов в Tshark"}} wireshark/packet_analysis -.-> lab-548920{{"Отладка с использованием журналов в Tshark"}} wireshark/commandline_usage -.-> lab-548920{{"Отладка с использованием журналов в Tshark"}} end

Установка уровня отладки с помощью параметра --log-level debug

На этом этапе вы научитесь настраивать уровень детализации лог-сообщений при использовании командной строки инструмента Wireshark — tshark. Флаг --log-level позволяет контролировать объем информации, выводимой tshark, что особенно полезно, когда вам нужно понять, что происходит «за кулисами», или решить проблемы.

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

    cd ~/project
  2. Базовая структура команды для настройки уровней логирования проста. Вы просто указываете желаемый уровень после флага:

    tshark --log-level <level>

    Вот наиболее часто используемые уровни логирования, от менее до более детального:

    • critical - Отображает только серьезные ошибки, которые могут помешать работе tshark
    • warning - Показывает потенциальные проблемы, не являющиеся критическими, но заслуживающие внимания
    • message - Уровень по умолчанию, который показывает обычные сообщения о работе программы
    • info - Предоставляет дополнительную информационную информацию о действиях tshark
    • debug - Показывает самую детальную техническую информацию для глубокой отладки
  3. В этом упражнении мы будем использовать уровень debug, чтобы увидеть максимальное количество информации. Это поможет нам понять все внутренние операции tshark. Запустите эту команду:

    tshark --log-level debug
  4. После выполнения команды вы заметите гораздо больше выходных данных, чем обычно. Этот отладочный вывод включает в себя детали инициализации, внутренние сообщения обработки и техническую информацию о том, как tshark обрабатывает сетевой трафик.

  5. Когда вы готовы остановить tshark, просто нажмите Ctrl+C в терминале. Эта комбинация клавиш отправляет сигнал прерывания для остановки текущей выполняемой команды.

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

На этом этапе мы узнаем, как захватывать текущий сетевой трафик с помощью мощного командного инструмента Wireshark — tshark. Сетевые интерфейсы представляют собой физические или виртуальные точки, через которые ваше компьютер подключается к сети, а eth1 обычно является первым Ethernet-интерфейсом в системах Linux.

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

    tshark -D

    Эта команда выводит список всех сетевых интерфейсов, к которым tshark может получить доступ. Найдите eth1 в выводе — это обычно ваш основной Ethernet-соединение.

  2. Теперь начнем захватывать реальный сетевой трафик. Флаг -i указывает tshark, какой интерфейс нужно отслеживать:

    tshark -i eth1
  3. По мере передачи пакетов по сети вы будете видеть их в режиме реального времени. Каждая строка представляет один сетевой пакет и показывает:

    • Точное время его захвата (таймстамп)
    • Откуда он пришел и куда направлен (IP-адреса)
    • Какой тип сетевого взаимодействия он содержит (протокол)
    • Сколько данных он несет (длина пакета)
  4. Дайте процессу захвата работать около 10 секунд, чтобы собрать репрезентативную выборку трафика. Когда будете готовы, нажмите Ctrl+C, чтобы остановить захват. Это даст вам практический опыт захвата пакетов в режиме реального времени.

  5. Иногда вам может понадобиться захватить определенное количество пакетов. Флаг -c позволяет установить такое ограничение:

    tshark -i eth1 -c 10

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

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

    tshark -i eth1 --log-level debug

    Это показывает не только пакеты, но и внутренние операции tshark, помогая вам понять, что происходит «за кулисами».

Запись логов в файл с использованием параметра --log-file tshark.log

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

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

    cd ~/project
  2. Чтобы начать захватывать сетевой трафик и одновременно сохранять все логи в файл с именем tshark.log, выполните эту команду. Параметр -i eth1 указывает, что мы осуществляем захват с Ethernet-интерфейса:

    tshark -i eth1 --log-file tshark.log
  3. Дайте процессу захвата работать около 10 секунд, чтобы собрать достаточное количество данных, а затем нажмите Ctrl+C, чтобы корректно остановить процесс захвата. Этот сигнал прерывания клавиатуры гарантирует, что файл журнала будет правильно закрыт.

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

    ls -l tshark.log

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

  5. Просмотрите содержимое файла журнала, чтобы изучить захваченные пакеты. Команда cat отображает все содержимое файла в терминале:

    cat tshark.log

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

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

    tshark -i eth1 --log-level debug --log-file tshark.log -c 20

    Эта комплексная команда будет:

    • Захватывать пакеты конкретно с сетевого интерфейса eth1
    • Устанавливать уровень логирования на debug для максимальной детализации
    • Сохранять весь вывод в файл tshark.log
    • Автоматически останавливаться после захвата ровно 20 пакетов

Проверка журналов на наличие ошибок

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

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

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

    cat tshark.log
  3. Чтобы найти конкретно сообщения об ошибках в журнале, используйте grep с регистронезависимым сопоставлением (флаг -i). Это поможет найти все записи об ошибках, независимо от регистра букв:

    grep -i "error" tshark.log
  4. Для более комплексного анализа и поиска нескольких типов проблем, включая предупреждения и сбои, используйте флаг -E, который позволяет использовать расширенные регулярные выражения:

    grep -E -i "error|warning|fail" tshark.log
  5. Чтобы определить количество ошибок, передайте вывод grep в утилиту подсчета слов (wc) с опцией подсчета строк (-l). Это даст вам быстрое представление о том, сколько ошибок было записано:

    grep -i "error" tshark.log | wc -l
  6. Для более структурированного представления ошибок на уровне пакетов используйте фильтр отображения tshark (-Y), чтобы показать только кадры с флагами ошибок. Это поможет выявить проблемные пакеты в вашем захвате:

    tshark -r tshark.log -Y "frame.error_flag == 1"
  7. Чтобы сохранить только сообщения об ошибках для дальнейшего анализа или отчетности, перенаправьте вывод grep в новый файл. Это создаст чистый журнал, содержащий только ошибки:

    grep -i "error" tshark.log > errors.txt

Резюме

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

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