Захват трафика в реальном времени с помощью Tshark

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

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

Введение

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

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


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/protocol_dissection("Protocol Dissection") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/interface -.-> lab-548916{{"Захват трафика в реальном времени с помощью Tshark"}} wireshark/packet_capture -.-> lab-548916{{"Захват трафика в реальном времени с помощью Tshark"}} wireshark/protocol_dissection -.-> lab-548916{{"Захват трафика в реальном времени с помощью Tshark"}} wireshark/export_packets -.-> lab-548916{{"Захват трафика в реальном времени с помощью Tshark"}} wireshark/commandline_usage -.-> lab-548916{{"Захват трафика в реальном времени с помощью Tshark"}} end

Список интерфейсов с помощью параметра -D

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

  1. Сначала откройте терминал в среде виртуальной машины LabEx. Терминал - это ваш инструмент для взаимодействия с системой Linux с помощью команд. Рабочая директория по умолчанию - ~/project, то есть все файлы, которые вы создаете, будут сохраняться здесь, если вы не укажете иное.
Capture-capable network interfaces
  1. Чтобы получить список всех доступных сетевых интерфейсов, выполните следующую команду:
tshark -D
  1. Эта команда выведет список всех сетевых интерфейсов, которые можно использовать для захвата трафика. Типичный вывод выглядит так:
1. eth1
2. any
3. lo (Loopback)
4. nflog
5. nfqueue
6. docker0
  1. Флаг -D - это специальный параметр команды, который instructs tshark показать доступные интерфейсы. Каждый интерфейс имеет свою уникальную функцию:

    • eth1: Обычно это основной проводной сетевой интерфейс, который обрабатывает большинство внешних сетевых коммуникаций.
    • lo: Локальный интерфейс (loopback interface) обрабатывает внутренний сетевой трафик внутри вашего устройства.
    • any: Специальный виртуальный интерфейс, который одновременно захватывает трафик со всех доступных интерфейсов.
  2. Внимательно изучите список интерфейсов. Позже, когда мы начнем захватывать пакеты, вам нужно будет использовать имена этих интерфейсов, так как вы должны точно указать, какой сетевой интерфейс вы хотите мониторить. Нумерация интерфейсов поможет вам выбрать нужный интерфейс в последующих командах.

Выбор интерфейса с помощью -i eth1

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

  1. Сначала убедитесь, что вы находитесь в правильной рабочей директории, где будут храниться файлы с захваченным трафиком:
cd ~/project
  1. Чтобы начать захватывать пакеты именно на интерфейсе eth1, выполните следующую команду:
sudo tshark -i eth1
  1. Разберем, что делает каждая часть этой команды:

    • sudo: Дает вам права администратора, необходимые для доступа к сетевым интерфейсам.
    • tshark: Командная строка версии Wireshark.
    • -i eth1: Сообщает tshark прослушивать трафик на интерфейсе eth1 (если ваша система использует другие имена интерфейсов, измените это значение).
  2. Во время выполнения команды в терминале будут отображаться текущие сетевые пакеты, например:

Capturing on 'eth1'
1 0.000000000 192.168.1.100 → 192.168.1.1 TCP 74 55942 → 80 [SYN] Seq=0 Win=64240 Len=0
2 0.000123456 192.168.1.1 → 192.168.1.100 TCP 74 80 → 55942 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0

Каждая строка представляет собой сетевой пакет и показывает IP - адреса отправителя и получателя, тип протокола и другие технические детали.

  1. Чтобы остановить захват пакетов, нажмите Ctrl+C. Затем в терминале будут отображены сводные статистические данные о захваченном трафике.

  2. Важные заметки для начинающих:

    • eth1 - это имя по умолчанию для первого Ethernet - интерфейса в большинстве систем Linux.
    • Всегда используйте точное имя интерфейса, которое вы нашли при перечислении интерфейсов.
    • Требуется использовать sudo, так как для захвата сетевого трафика нужны специальные разрешения.
    • Вывод показывает реальные сетевые коммуникации, происходящие в вашей системе.

Запуск захвата с настройками по умолчанию

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

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

Команда sudo необходима, так как для захвата сетевого трафика требуются привилегии суперпользователя. Флаг -i eth1 сообщает tshark прослушивать трафик именно на сетевом интерфейсе eth1.

  1. Основные аспекты этой команды:

    • Захватывает все типы пакетов (TCP, UDP, ICMP и др.), проходящие через eth1.
    • Показывает сводки пакетов в реальном времени по мере их захвата.
    • Использует фильтры захвата по умолчанию (захватывает весь трафик без фильтрации).
    • Отображает основную информацию о пакетах, включая:
      • Номер пакета (последовательный счетчик, начиная с 1).
      • Метку времени (показывает, когда был захвачен каждый пакет).
      • IP - адреса отправителя и получателя (показывает, откуда и куда идет трафик).
      • Протокол (идентифицирует тип сетевого протокола).
      • Основную информацию о содержимом пакета.
  2. Вы должны увидеть вывод, похожий на следующий:

1 0.000000000 192.168.1.100 → 8.8.8.8 DNS 74 Standard query
2 0.000123456 8.8.8.8 → 192.168.1.100 DNS 90 Standard query response

Каждая строка представляет один сетевой пакет. Стрелка (→) показывает направление потока трафика между IP - адресами отправителя и получателя.

  1. Чтобы временно приостановить вывод (без остановки захвата), нажмите Ctrl+S. Нажмите Ctrl+Q, чтобы продолжить. Это полезно, когда вы хотите рассмотреть конкретные пакеты, не беспокоясь о том, что новые будут быстро пролистываться.

  2. Не забудьте эти важные аспекты этого базового захвата:

    • Захват по умолчанию показывает только заголовки пакетов (не полный полезный объем), чтобы упростить отображение.
    • Захват продолжается до тех пор, пока вы не остановите его с помощью Ctrl+C.
    • Пакеты еще не сохраняются на диск (мы рассмотрим это на следующем этапе).
    • Вывод в терминале - это только живой просмотр - мы еще не сохраняем эту информацию постоянно.

Остановка и сохранение в файл с помощью -w capture.pcap

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

  1. Сначала убедитесь, что вы находитесь в правильном рабочем каталоге, где хотите сохранить файл захвата. Каталог ~/project обычно используется для лабораторных работ:
cd ~/project
  1. Чтобы начать новую сессию захвата, которая будет автоматически сохранять пакеты в файл, выполните эту команду. Флаг -w указывает tshark, где хранить захваченные данные:
tshark -i eth1 -w capture.pcap
  1. Давайте разберем ключевые аспекты этой команды:

    • -w capture.pcap: Указывает имя выходного файла и сохраняет пакеты в стандартном формате PCAP (PCAP format)
    • Файл будет создан в вашем текущем рабочем каталоге (~/project)
    • В отличие от мониторинга в реальном времени, эта команда работает без вывода на экран, сохраняя данные в файл

    Важное замечание о разрешениях (Permissions):

    • Не используйте sudo с этой командой (например, sudo tshark -i eth1 -w capture.pcap)
    • Каталог ~/project имеет определенные разрешения, которые ограничивают доступ, включая root-доступ
    • Запуск с sudo приведет к ошибке "Permission denied" (Отказано в доступе)
    • Используйте команду без sudo, чтобы обеспечить правильное создание файла с правильными разрешениями
  2. Дайте захвату поработать около 30 секунд, чтобы собрать значимый сетевой трафик. Этого времени достаточно, чтобы захватить различные типы пакетов, не создавая слишком большой файл.

  3. Чтобы корректно остановить захват и завершить файл, нажмите Ctrl+C. Терминал отобразит сводную информацию о вашей сессии захвата:

^CCapturing on 'eth1'
45 packets captured
  1. Убедитесь, что ваш файл захвата был успешно создан, перечислив содержимое каталога. Флаги -lh показывают размер файла в удобочитаемом формате:
ls -lh capture.pcap
  1. Вы должны увидеть вывод, подобный этому, показывающий, что файл был создан с правильными разрешениями и содержит захваченные данные:
-rw-r--r-- 1 labex labex 12K Aug 10 15:30 capture.pcap
  1. Важные замечания о работе с PCAP-файлами:
    • PCAP-файлы можно проанализировать позже с помощью графического интерфейса Wireshark (Wireshark GUI) или команд tshark
    • Размер файла увеличивается с продолжительностью захвата - следите за местом на диске
    • Используйте уникальные имена файлов для отдельных сессий захвата, чтобы избежать перезаписи
    • Расширение .pcap является стандартным для файлов захвата пакетов

Резюме

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

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