2892

Как пользоваться Wireshark в Linux

Рассказываем, что такое Wireshark и как правильно с ним работать.

Что такое Wireshark?

Wireshark — инструмент для анализа входящего и исходящего трафика. В частности, это анализатор трафика в сетях Ethernet (ранее он назывался Ethereal). Программа умеет просматривать проходящий через определенное устройство трафик в текстовом виде или в графической среде (на выбор пользователя). При этом в нем есть целый набор механизмов по фильтрации и поиску конкретных пакетов, переданных по сети.

За всем трафиком можно наблюдать в реальном времени. Wireshark хорошо «ознакомлен» с тем, как работают сети. Из-за этого для него не составляет труда перехватывать информацию любого уровня.

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

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

Как установить Wireshark?

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

  • Открываем терминал.
Панель инструментов в Linux Mint

Обычно терминал закреплен на панели с избранными программами, но его также можно включить, одновременно нажав клавиши Ctrl + Alt + T

Для Debian и ей подобных (Ubuntu, Mint) — sudo apt-get install wireshark

В Red Hat Enterprise Linux и CentOS — sudo yum install wireshark

Для openSUSE — sudo zypper install wireshark

Для новых редакций Fedora — sudo dnf install wireshark

Команда установки wireshark в Linux Mint

В моем примере будет Debian-подобная система с менеджером пакетов apt-get

  • Затем вводим пароль администратора.
Запрос на ввод пароля в терминале Linux Mint

При вводе пароля набираемые символы не отображаются. Придется вводить вслепую

  • После этого подтверждаем установку, прописав заглавную букву «Д» (или «Y» в английской версии операционной системы).
Запрос на подтверждение установки

Если ввести строчную букву, то система может воспринять это как отказ

  • В ходе настройки пакета wireshark-common выбираем пункт Yes и нажимаем на клавишу «Ввод» (Enter).
Окно настройки пакета wireshark-common

Заключительный этап установки

Особенности приложения

Чем, собственно, хорош Wireshark, и что он умеет?

  • Wireshark захватывает сетевые пакеты на ходу, собирая информацию с беспроводных и проводных интерфейсов или из файла с соответствующими данными. Поддерживаются интерфейсы: Ethernet, IEEE 802.11, PPP и даже виртуальные интерфейсы, существующие только в локальной сети.
  • Полученные сетевые пакеты можно сортировать, используя заданные правила, коих в утилите великое множество.
  • В интерфейсе программы есть четкое разграничение данных по протоколам. Например, FTP, HTTP или DNS. Все протоколы визуально подчеркиваются, чтобы было легче ориентироваться при поиске.
  • Wireshark умеет собирать сетевые пакеты, передаваемые в ходе VoIP-звонков.
  • Также эта программа умеет расшифровывать трафик HTTPS, WEP, WPA, если имеются ключи.
  • Wireshark собирает статистику оказываемой нагрузки на сетевое подключение.
  • А еще можно получить дополнительную информацию о трафике. Это касается содержимого пакетов разных уровней и времени, которое уходит на отправку и получение данных.

Как анализировать трафик?

Приступим непосредственно к анализу трафика и к изучению функций программы Wireshark.

  • Для начала включим только что установленное приложение с помощью команды sudo wireshark.
Команда для запуска программы Wireshark

Я запускаю утилиту через терминал, но вы можете найти значок в списке всех установленных программ

  • В открывшемся окне найдем сетевое подключение, которое нужно проанализировать. Обычно в начале списка отображается то подключение, которое используется в первую очередь.
Главное окно Wireshark с выбором подключения

По графику напротив названия сети можно понять, насколько она активна

  • Теперь запустим анализатор Wireshark, чтобы тот начал собирать данные о сетевом трафике, проходящем черед наш компьютер. Для этого кликнем по кнопке в виде синего плавника в левом верхнем углу.
Кнопка запуска анализа трафика в Wireshark

Это первое, с чего стоит начинать работу с Wireshark

Перед нашими глазами предстанет интерфейс, поделенный на три части. В нем отображаются:

  1. Список сетевых пакетов, которые удалось отследить Wireshark.
  2. Содержимое того пакета, по которому вы кликнули в списке.
  3. Реальное представления пакета, по которому вы кликнули в списке.
Основной интерфейс Wireshark с перехваченным пакетами

Тут все довольно просто. Главное запомнить, за что отвечают все три категории

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

  • Кликаем на «Файл» в верхнем левом углу окна Wireshark.
Меню файл в панели инструментов

У меня тут скриншот из macOS, но в Linux есть такое же меню, просто оно обычно закреплено на самом окне

  • Выбираем пункт Export Objects.
Содержимое контекстного меню «Файл»

Нам нужен выделенный пункт

  • В открывшемся списке находим кнопку Export HTTP и кликаем по ней.
  • Затем нажимаем на кнопку Save All.
Окно сохранения HTTP-запросов в Wireshark

У меня тут пустовато, а у вас данных наверняка будет побольше

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

Как использовать диагностику?

Также Wireshark часто используют, чтобы обнаружить проблемы, связанные с подключением. Речь идет об ошибках соединения и передачи сетевых пакетов. Wireshark способен их обнаружить и собирает в отдельное меню.

Чтобы посмотреть ошибки, кликнем по иконке в виде кружка, которая находится в левом нижнем углу окна Wireshark.

Кнопка, ведущая в меню анализа ошибок подключения

Как только появятся какие-то ошибки, связанные с сетевыми пакетами, эта иконка поменяет цвет на желтый

Список ошибок в Wireshark

У меня все в порядке и нет никаких проблем. Опять же, у вас в этом списке может быть куча ошибок

Как использовать фильтры?

Очень важная функция Wireshark — использование фильтров. С помощью них можно легко сортировать данные и получать необходимые результаты без муторного листания гигантских списков с сетевыми пакетами.

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

  • ip.dst — фильтр по целевому IP-адресу.
  • ip.src — фильтр по IP-адресу того, кто отправил сетевой пакет.
  • ip.addr — IP-адрес того, кто отправил пакет или принял его.
  • ip.proto — протокол, использовавшийся при передаче сетевого пакета.

Более того, при фильтрации данных можно использовать операторы. Например:

ip.dst == IP-адрес — оператор == в этом случае обозначает, что целевой IP-адрес должен равняться указанному. Вместо равенства используются и другие операторы.

ip.src != *IP-адрес — это значит, что IP-адрес отправителя не должен соответствовать указанному.

Также есть:

< — меньше указанного значения. > — больше указанного значения. contains — содержит в себе указанное значение.

Чтобы работать с фильтрами нужно:

  • Открыть меню Expressions в правой части интерфейса Wireshark.
Панель инструментов в приложении Wireshark

Фильтры хранятся и вводятся здесь, но если вы знаете, как их правильно прописывать, то можно воспользоваться текстовой строкой левее

  • Выбрать тип фильтра в левой панели.
  • Указать оператор в правой панели.
  • Указать значения для сопоставления с фильтром в поле value.
  • Затем нажать на кнопку ОК.
Окно настройки фильтров в Wireshark

Опять же можно все прописать вручную в строке под поиском

  • После этого нужно нажать на белую стрелку в квадрате, которая появится слева от кнопки Expressions.
Главное окно Wireshark с настроенной фильтрацией

Пропускаем все сетевые пакеты через наш новый фильтр

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

Space Police

Переводчик. Копирайтер. Композитор. Люблю консьюмерские технологии, музыку и все смежные направления. Надеюсь дожить до «счастливого» киберпанк-будущего. Испытываю пассивную агрессию по отношению к РКН ;)


Понравилась статья?
Комментариев: 2

  • fallenrome
    fallenrome
    6 февраля, 2020 в 12:04

    Подскажите функциональные аналоги wireshark

    • Игорь Лысенков
      Игорь Лысенков
      6 февраля, 2020 в 13:22

      Раньше был коммерческий аналог ClearSight. Вроде, очень хороший, но что с ним сей-час непонятно. Вообще можно смотреть пакеты через tcpdump в командной строке. У Microsoft есть свой вариант. Так и называется Microsoft Network Monitor. Ну и Netcat еще. Один из самых популярных аналогов Wireshark.