Фильтрация трафика в Wireshark

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

Введение

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

Начало работы с Tshark

Перед переходом к графическому интерфейсу вы начнёте с tshark — версии Wireshark для командной строки. Это мощный инструмент для быстрого анализа и написания сценариев. На этом этапе вы проверите установку и выполните базовый просмотр предоставленного файла захвата пакетов.

  1. Сначала убедитесь, что tshark установлен правильно, проверив его версию.

    tshark --version
    

    В выводе должны отображаться версии Wireshark и tshark, примерно так:

    TShark (Wireshark) x.x.x (Git vx.x.x packaged as x.x.x-1)
    ...
    
  2. В каталоге проекта находится пример файла захвата пакетов с именем capture.pcap. Используйте команду ls, чтобы убедиться, что файл существует.

    ls -lh capture.pcap
    

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

    -rw-rw-r-- 1 labex labex 9.1M Oct 24  2015 capture.pcap
    
  3. Чтобы получить общую сводку по файлу захвата, используйте утилиту capinfos, которая входит в состав Wireshark.

    capinfos capture.pcap
    

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

    File name:           capture.pcap
    File type:           Wireshark/tcpdump/... - pcap
    File encapsulation:  Ethernet
    File timestamp precision:  microseconds (6)
    Packet size limit:   file hdr: 65535 bytes
    Number of packets:   14 k
    File size:           9444 kB
    Data size:           9216 kB
    Capture duration:    298.505344 seconds
    First packet time:   2011-01-26 02:52:22.484409
    Last packet time:    2011-01-26 02:57:20.989753
    Data byte rate:      30 kBps
    Data bit rate:       247 kbps
    Average packet size: 646.28 bytes
    Average packet rate: 47 packets/s
    SHA256:              77d06d3f33f1a95fb9f2610f20ead8ce978449077d6ba22d4945b85bd48f75d1
    RIPEMD160:           68e950b2e438c7be011a46646ddfc8105b65b339
    SHA1:                06e502dca8dbfe8e6a9cabc61f722d94756f6db9
    Strict time order:   True
    Number of interfaces in file: 1
    Interface #0 info:
                         Encapsulation = Ethernet (1 - ether)
                         Capture length = 65535
                         Time precision = microseconds (6)
                         Time ticks per second = 1000000
                         Number of stat entries = 0
                         Number of packets = 14261
    
  4. Наконец, используйте tshark, чтобы прочитать первые пять пакетов из файла. Флаг -r задаёт входной файл, а -c ограничивает количество пакетов.

    tshark -r capture.pcap -c 5
    

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

        1   0.000000 192.168.3.131 → 72.14.213.138 HTTP 997 GET /complete/search?client=chrome&hl=en-US&q=cr HTTP/1.1
        2   0.029841 72.14.213.138 → 192.168.3.131 HTTP 440 HTTP/1.1 200 OK  (text/javascript)
        3   0.223883 192.168.3.131 → 72.14.213.102 TCP 66 55950 → 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=4 SACK_PERM=1
        4   0.229423 192.168.3.131 → 72.14.213.138 TCP 54 57011 → 80 [ACK] Seq=944 Ack=387 Win=16192 Len=0
        5   0.242649 72.14.213.102 → 192.168.3.131 TCP 66 80 → 55950 [SYN, ACK] Seq=0 Ack=1 Win=5720 Len=0 MSS=1430 SACK_PERM=1 WS=64
    

Базовая фильтрация с помощью Tshark

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

  1. Фильтры отображения задаются флагом -Y (с прописной буквой Y). Чтобы просмотреть только TCP-пакеты, используйте фильтр tcp. Выведем первые пять TCP-пакетов из файла.

    tshark -r capture.pcap -Y "tcp" -c 5
    

    Теперь в выводе будут только пакеты, в которых используется протокол TCP.

  2. Фильтрацию также можно выполнять по IP-адресам. Чтобы просмотреть все пакеты, отправленные с исходного IP-адреса 192.168.3.131, используйте фильтр ip.src.

    tshark -r capture.pcap -Y "ip.src == 192.168.3.131" -c 5
    

    Обратите внимание: для точного совпадения используется оператор ==.

  3. Фильтры можно объединять с помощью логических операторов, например && (AND). Чтобы найти TCP-пакеты, отправленные с IP-адреса 192.168.3.131, объедините два предыдущих фильтра.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131"
    
  4. Отфильтрованный результат можно сохранить в новый файл захвата для последующего анализа. Флаг -w задаёт выходной файл. Сохраним отфильтрованные TCP-пакеты в файл filtered_tcp.pcap.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131" -w filtered_tcp.pcap
    
  5. Убедитесь, что новый файл создан.

    ls -lh filtered_tcp.pcap
    

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

Изучение трафика в графическом интерфейсе Wireshark

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

  1. Запустите приложение Wireshark из терминала. Важно: используйте Desktop Interface, а не отдельный Terminal Interface, поскольку Wireshark — графическое приложение, которому для корректной работы требуется графическая среда. Символ & в конце команды запускает приложение в фоновом режиме и освобождает терминал для выполнения других команд.

    wireshark &
    

    Не закрывайте Wireshark, пока не завершите этот этап и не выполните проверку этапа.

    Примечание: Если выполнить эту команду в отдельном терминале без рабочего стола, Wireshark не запустится. Для графических приложений всегда используйте Desktop Interface.

    Графический интерфейс Wireshark

  2. Откроется главное окно Wireshark. Поскольку вы анализируете уже существующий файл, выбирать сетевой интерфейс не нужно. Откройте файл capture.pcap.

    • В строке меню выберите File -> Open....
    • В диалоговом окне файлов перейдите в /home/labex/project и выберите capture.pcap.
    • Нажмите кнопку Open.
  3. В главном окне появятся пакеты из файла. Изучите три основные панели:

    Главное окно Wireshark

    • Панель списка пакетов (сверху): список всех пакетов в захвате с колонками номера пакета, времени, источника, назначения, протокола и другими сводными сведениями.
    • Панель сведений о пакете (посередине): подробное, раскрываемое представление уровней протокола выбранного пакета. Можно раскрыть каждый уровень, например Ethernet, IP или TCP, и просмотреть его поля.
    • Панель байтов пакета (снизу): исходные данные выбранного пакета в шестнадцатеричном формате и ASCII.
  4. Нажимайте разные пакеты в панели списка пакетов и наблюдайте, как соответствующим образом меняются сведения на панелях сведений о пакете и байтов пакета. Такая интерактивная работа — одна из самых мощных возможностей Wireshark.

Применение фильтров отображения в GUI

Синтаксис фильтров отображения, изученный в tshark, работает в GUI Wireshark точно так же. GUI сразу показывает результат, поэтому в нём удобно создавать и проверять сложные фильтры.

  1. Найдите панель фильтра отображения в верхней части окна Wireshark. Это длинное текстовое поле; обычно в нём отображается подсказка «Apply a display filter...».

  2. Отфильтруем HTTP-трафик. Введите http в панель фильтра и нажмите Enter либо кнопку Apply (стрелку справа от панели).

    http
    

    Фильтр HTTP в Wireshark

    Панель списка пакетов сразу обновится и покажет только HTTP-пакеты. Обратите внимание: панель фильтра станет зелёной, что означает корректный синтаксис фильтра. Если ввести некорректный фильтр, панель станет красной.

  3. Теперь найдём весь DNS-трафик. Очистите предыдущий фильтр, введите dns в панель фильтра и нажмите Enter.

    dns
    

    Теперь вы увидите все запросы и ответы Domain Name System в файле захвата.

  4. Фильтры можно объединять так же, как в tshark. Чтобы найти HTTP-трафик, связанный с IP-адресом 192.168.3.131 как с источником или назначением, объедините фильтры ip.addr и http.

    http && ip.addr == 192.168.3.131
    

    Фильтр HTTP в Wireshark

    Такое сочетание позволяет сосредоточиться на конкретных взаимодействиях. Попробуйте другие фильтры, например tcp.port == 80 (для трафика через стандартный HTTP-порт) или udp (для UDP-трафика). Чтобы очистить фильтр и снова увидеть все пакеты, нажмите кнопку X в панели фильтра.

Экспорт отфильтрованных данных

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

  1. Сначала примените в GUI Wireshark фильтр http, как на предыдущем этапе.

  2. Чтобы сохранить только отображаемые (отфильтрованные) пакеты в новый файл захвата:

    • Выберите File -> Export Specified Packets....
    • В диалоговом окне в разделе «All Packets» убедитесь, что выбран переключатель Displayed.
    • Назовите файл http_capture.pcap и сохраните его в каталоге /home/labex/project.

    Экспорт указанных пакетов в Wireshark

  3. Сводку пакетов также можно экспортировать в текстовый или CSV-файл. Для экспорта в CSV:

    • Выберите File -> Export Packet Dissections -> As CSV....
    • Убедитесь, что для «All Packets» выбран пункт Displayed.
    • Назовите файл http_packets.csv и сохраните его в каталоге проекта.
  4. Те же операции экспорта можно выполнять из командной строки с помощью tshark. Это удобно для автоматизации. Следующая команда читает исходный файл capture.pcap, фильтрует пакеты по http и экспортирует выбранные поля в CSV-файл.

    tshark -r capture.pcap -Y "http" -T fields -e frame.number -e ip.src -e ip.dst -e http.request.method -e http.host -E header=y -E separator=, > http_export_cli.csv
    
    • -T fields: задаёт формат вывода.
    • -e ...: задаёт поля (столбцы) для экспорта.
    • -E header=y: добавляет строку заголовка.
    • -E separator=,: использует запятую в качестве разделителя.
  5. Убедитесь, что экспортированные файлы созданы.

    ls -lh http_*
    

    В каталоге должны находиться файлы http_capture.pcap, http_packets.csv и http_export_cli.csv.

Итоги

В этой лабораторной работе вы изучили основы фильтрации сетевого трафика с помощью Wireshark и его аналога для командной строки — tshark. Сначала вы просмотрели файл захвата с помощью tshark и capinfos. Затем попрактиковались в применении фильтров отображения для выделения определённых протоколов и IP-адресов: сначала в tshark, а затем в интерактивном GUI Wireshark. В заключение вы научились экспортировать отфильтрованные результаты в новые файлы захвата и удобные для чтения CSV-файлы для отчётности и анализа. Эти базовые навыки необходимы для анализа сетей и устранения неполадок.