Введение
В этом практическом задании вы научитесь устанавливать и настраивать Wireshark — мощный анализатор сетевых протоколов. Он позволяет исследовать сетевой трафик в режиме реального времени, что особенно важно при устранении сетевых неполадок и расследовании инцидентов безопасности.
По завершении задания вы сможете захватывать и анализировать сетевые пакеты в своей системе, получив практический опыт работы с этим незаменимым инструментом.
Установка Wireshark
На этом этапе мы установим Wireshark в системе Ubuntu. Wireshark — мощный анализатор сетевых протоколов, позволяющий захватывать и анализировать сетевой трафик. Это один из ключевых инструментов для специалистов по сетевой безопасности и анализу трафика. К счастью, Wireshark доступен в репозиториях Ubuntu, поэтому его можно легко установить с помощью встроенной системы управления пакетами.
Сначала обновим сведения о репозиториях пакетов. Репозиторий можно представить как каталог всего программного обеспечения, доступного для вашей системы Ubuntu. Обновление гарантирует, что система использует актуальные сведения и сможет установить последние версии программ. Для этого откройте терминал. Его можно запустить, щёлкнув значок терминала на панели задач или нажав Ctrl+Alt+T. После открытия терминала выполните следующую команду:
sudo apt update
Команда sudo запускает команды с административными правами. apt — это инструмент управления пакетами в Ubuntu, а update обновляет сведения о репозиториях. После выполнения команды вы увидите вывод, похожий на следующий:
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [108 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1,234 kB]
...
Reading package lists... Done
Этот вывод означает, что система получает из репозиториев актуальные сведения о доступных пакетах.
После обновления репозиториев установим Wireshark с помощью менеджера пакетов apt. Выполните в терминале:
sudo apt install wireshark -y
Команда install указывает apt установить заданный пакет — в данном случае wireshark. Параметр -y автоматически отвечает «yes» на все запросы, возникающие во время установки.
В процессе установки появится диалог настройки с вопросом, следует ли разрешить пользователям, не являющимся суперпользователями, захватывать пакеты. Это может быть удобно, если вы хотите запускать Wireshark без постоянного использования административных прав. Клавишами со стрелками выберите «Yes» (или нажмите y) и нажмите Enter для подтверждения.

Примечание: Если вы пропустили этот запрос или хотите изменить настройку позже, перенастройте Wireshark следующей командой:
sudo dpkg-reconfigure wireshark-commonКоманда
dpkg-reconfigureиспользуется для перенастройки уже установленного пакета.
После завершения установки вы увидите сообщение об успешном выполнении операции. Чтобы убедиться, что Wireshark установлен правильно, проверьте его версию. Выполните в терминале:
wireshark --version
Эта команда выводит сведения о версии Wireshark. Вы должны увидеть вывод, похожий на следующий:
Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)
Copyright 1998-2022 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with Qt 5.15.3, with libpcap, with GLib 2.72.0, with zlib 1.2.11,
with SMI 0.4.8, with c-ares 1.18.1, with Lua 5.2.4, with GnuTLS 3.7.3 and PKCS #11
support, with Gcrypt 1.9.4, with MIT Kerberos, with MaxMind DB resolver,
with nghttp2 1.43.0, with brotli, with LZ4, with Zstandard, with Snappy,
with libxml2 2.9.13, with libssh 0.9.6, with NGHTTP3 0.7.0, with NGTCP2 0.8.0.
Отлично! Wireshark установлен в вашей системе.
Настройка разрешений Wireshark для захвата пакетов
На этом этапе мы настроим необходимые разрешения, чтобы Wireshark мог захватывать сетевые пакеты. У начинающих может возникнуть вопрос, зачем это нужно. По умолчанию для захвата пакетов требуются права суперпользователя. Это мера безопасности: сетевые пакеты могут содержать конфиденциальную информацию. Однако запускать Wireshark от имени root с точки зрения безопасности не рекомендуется. Если в Wireshark обнаружится уязвимость, злоумышленник сможет получить полный доступ к системе. Поэтому мы настроим Wireshark так, чтобы обычная учётная запись могла безопасно захватывать пакеты.
Сначала проверим, существует ли в системе группа wireshark. Эта специальная группа будет использоваться для управления разрешениями на захват пакетов. Для проверки воспользуемся командой getent. getent получает записи из различных системных баз данных — в данном случае из базы данных групп. Выполните в терминале:
getent group wireshark
Если вывод отсутствует, значит, группа ещё не создана. Создадим её с помощью команды groupadd, предназначенной для добавления новых групп в систему:
sudo groupadd wireshark
Команда sudo запускает groupadd с административными правами. Если вы недавно не использовали sudo, система попросит ввести пароль.
Затем назначим двоичному файлу захвата пакетов (dumpcap) правильную группу. Именно компонент dumpcap фактически захватывает пакеты для Wireshark. Изменим владельца группы файла dumpcap на wireshark. После этого разрешениями файла можно будет управлять через эту группу. Выполните:
sudo chgrp wireshark /usr/bin/dumpcap
Команда chgrp изменяет владельца группы файла или каталога. В данном случае группой-владельцем двоичного файла /usr/bin/dumpcap становится wireshark.
После изменения владельца группы ограничим выполнение файла владельцем и членами группы wireshark. Выполните:
sudo chmod 750 /usr/bin/dumpcap
Разрешения 750 предоставляют владельцу root полный доступ, группе wireshark — права на чтение и выполнение, а всем остальным пользователям запрещают доступ. Кроме того, это гарантирует, что бит setuid не установлен.
Теперь предоставим dumpcap только те возможности Linux, которые необходимы для захвата пакетов:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
Эти возможности позволяют dumpcap открывать необработанные сокеты пакетов и управлять интерфейсами захвата, не запуская всю программу с правами root. В сочетании с разрешениями файла это означает, что выполнять его смогут только root и участники группы wireshark.
Наконец, добавим текущего пользователя в группу wireshark. Это предоставит ему необходимые разрешения для использования двоичного файла dumpcap. Для добавления воспользуемся командой gpasswd, предназначенной для управления файлами /etc/group и /etc/gshadow. Выполните:
sudo gpasswd -a $USER wireshark
Переменная $USER содержит имя текущего пользователя. Вы должны увидеть сообщение о добавлении пользователя в группу:
Adding user labex to group wireshark
Чтобы изменения вступили в силу, обычно нужно выйти из системы и войти снова либо перезагрузить компьютер. Однако в рамках этого задания можно воспользоваться более простым способом — запустить новую оболочку с обновлённым членством в группе. Для этого используется команда newgrp, которая изменяет идентификатор текущей группы. Выполните:
newgrp wireshark
Команда запускает новую оболочку с активной группой wireshark, не требуя полного выхода из системы.
Проверим, входит ли теперь пользователь в группу wireshark. Команда groups выводит все группы, членом которых является пользователь. Выполните:
groups
В списке групп должна присутствовать wireshark:
wireshark sudo ssl-cert labex public
Наконец, проверим ограниченные разрешения и возможности захвата:
stat -c '%A %U %G' /usr/bin/dumpcap
-rwxr-x--- root wireshark
getcap /usr/bin/dumpcap
/usr/bin/dumpcap cap_net_admin,cap_net_raw=eip
Теперь пользователь входит в группу wireshark, а dumpcap обладает только необходимыми возможностями. Wireshark сможет захватывать пакеты без запуска от имени root и без предоставления доступа к захвату всем локальным пользователям.
Запуск Wireshark
На этом этапе мы запустим Wireshark и познакомимся с его начальным интерфейсом. Wireshark — мощный инструмент анализа сетевого трафика с графическим интерфейсом пользователя (GUI). Именно через этот интерфейс мы будем управлять программой и исследовать сетевой трафик.
Сначала убедитесь, что вы находитесь в графической среде рабочего стола виртуальной машины LabEx. На рабочем столе должны отображаться значки и панель задач в верхней или нижней части экрана. Отсюда мы начнём работу с Wireshark.
Запустить Wireshark можно двумя способами. Выберите наиболее удобный:
Откройте меню Applications, обычно расположенное в левом верхнем углу экрана. Перейдите в категорию «Internet» или «Network», затем найдите и выберите «Wireshark». Это простой способ запустить программу через графический интерфейс.

Также можно воспользоваться терминалом. Откройте окно терминала и выполните:
wireshark
Эта команда запускает приложение Wireshark. После её выполнения откроется главное окно программы. Сначала вы увидите экран «Welcome to Wireshark». На нём отображается список доступных сетевых интерфейсов, с которых можно захватывать трафик. Если вы уже пользовались Wireshark и сохраняли файлы, здесь также могут отображаться недавно открытые файлы захвата.

На начальном экране доступны следующие важные возможности:
- Можно выбрать сетевой интерфейс из списка. После выбора Wireshark немедленно начнёт захватывать пакеты с этого интерфейса. Так начинается сбор данных о сетевом трафике.
- Можно открыть ранее сохранённый файл захвата. Это удобно, если вы хотите проанализировать данные, собранные ранее.
- На этом экране доступны различные инструменты и настройки, помогающие адаптировать Wireshark под ваши задачи и выполнять более сложный анализ.
Осмотритесь на этом экране. У каждого сетевого интерфейса отображается статистика обнаруженных пакетов. Она позволяет быстро понять, какие интерфейсы активно передают сетевой трафик.
Теперь рассмотрим основные элементы интерфейса Wireshark:
- Строка меню: расположена в верхней части окна и предоставляет доступ ко всем функциям Wireshark. С её помощью можно сохранять файлы захвата, изменять настройки и открывать справку.
- Панель инструментов: обеспечивает быстрый доступ к часто используемым функциям. Например, одним щелчком можно начать или остановить захват пакетов, применить фильтр и сохранить файл.
- Список интерфейсов: содержит все доступные сетевые интерфейсы системы. Здесь выбирается интерфейс, с которого нужно захватывать пакеты.
- Панель фильтра отображения: позволяет отфильтровать пакеты, отображаемые в главном окне. Можно использовать IP-адреса, протоколы, номера портов и другие критерии, чтобы оставить только интересующие пакеты. В следующем этапе мы подробнее рассмотрим работу с этим фильтром.
Пока оставьте Wireshark запущенным. На следующем этапе мы воспользуемся им для захвата и анализа сетевого трафика.
Захват и анализ сетевого трафика
На этом этапе мы захватим сетевой трафик и изучим интерфейс Wireshark. Умение анализировать сетевые пакеты необходимо всем, кто занимается сетевой безопасностью или устранением неполадок. К концу этого раздела вы научитесь запускать захват, ориентироваться в интерфейсе Wireshark, генерировать трафик, фильтровать пакеты, просматривать их содержимое и останавливать захват.
Запуск захвата
После запуска Wireshark вы увидите начальный экран. На нём нужно выбрать сетевой интерфейс, с которого будет захватываться трафик. В большинстве случаев используется интерфейс eth0. Если eth0 недоступен, выберите другой активный интерфейс, например eth1 или wlan0.
Чтобы начать захват пакетов, дважды щёлкните по интерфейсу eth0. Захват на этом интерфейсе начнётся немедленно, после чего откроется главное окно захвата Wireshark.
Другой вариант — выбрать интерфейс и нажать кнопку «Start capturing packets», обозначенную на панели инструментов синей иконкой в виде плавника акулы. Запуск захвата — первый этап анализа сетевого трафика: Wireshark начинает собирать данные, проходящие через выбранный интерфейс.
Интерфейс Wireshark
После начала захвата откроется главное окно Wireshark. Оно разделено на три основные области, каждая из которых выполняет свою задачу.

Область списка пакетов (верхняя): здесь отображаются все захваченные Wireshark пакеты. Для каждого пакета указываются основные сведения:
- Номер пакета: уникальный идентификатор пакета в захвате.
- Время: момент захвата пакета.
- IP-адрес источника: IP-адрес устройства, отправившего пакет.
- IP-адрес назначения: IP-адрес устройства, которому предназначен пакет.
- Протокол: сетевой протокол пакета, например TCP, UDP или ICMP.
- Длина: размер пакета в байтах.
- Информация: краткое описание назначения пакета, помогающее быстро понять его роль.
Область сведений о пакете (средняя): после выбора пакета в верхней области здесь отображается подробная информация о нём в иерархическом виде. Щёлкните стрелку рядом с разделом, чтобы раскрыть его и увидеть дополнительные сведения о структуре и содержимом пакета.
Область байтов пакета (нижняя): здесь отображаются необработанные данные пакета в шестнадцатеричном и ASCII-форматах. При выборе разных полей в области сведений соответствующие байты подсвечиваются. Это позволяет увидеть фактические данные, передаваемые в пакете.
Генерация сетевого трафика
Чтобы получить данные для анализа, сгенерируем сетевой трафик. Пока Wireshark работает, откройте новое окно терминала. С помощью команды ping отправим несколько пакетов эхо-запросов ICMP на серверы Google.
Выполните:
ping -c 5 google.com
Примечание: Бесплатные пользователи не могут подключаться к интернету. Перейдите на профессиональный тариф, чтобы получить полный доступ к возможностям.
Параметр -c 5 указывает команде ping отправить 5 пакетов эхо-запросов ICMP. После выполнения команды вы должны увидеть вывод, похожий на следующий:
PING google.com (142.250.180.238) 56(84) bytes of data.
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=1 ttl=118 time=15.6 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=2 ttl=118 time=16.5 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=3 ttl=118 time=15.9 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=4 ttl=118 time=16.2 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=5 ttl=118 time=15.7 ms
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 15.629/15.986/16.520/0.324 ms
Вернитесь в Wireshark. Вы должны увидеть пакеты ICMP, захваченные во время выполнения команды ping. Их мы будем использовать для дальнейшего анализа.
Остановка захвата
Завершив анализ захваченных пакетов, остановите захват. Для этого нажмите кнопку «Stop capturing packets», обозначенную на панели инструментов красным квадратом. Можно также открыть меню «Capture» и выбрать пункт «Stop».
Теперь вы успешно захватили и проанализировали базовый сетевой трафик с помощью Wireshark! Это фундаментальный навык сетевого анализа и безопасности, который позволит вам перейти к изучению более сложных сетевых сценариев.
Фильтрация пакетов
Wireshark захватывает весь трафик выбранного интерфейса. Объём данных быстро увеличивается, и работать с ними становится сложно. Фильтры помогают сосредоточиться на определённых типах трафика.

Чтобы отфильтровать созданные нами ICMP-пакеты, найдите в верхней части окна Wireshark строку фильтра. Введите в неё следующее выражение:
icmp
Нажмите Enter или щёлкните кнопку Apply (значок стрелки вправо) рядом с полем фильтра. В списке останутся только пакеты ICMP. Вы должны увидеть пары сообщений «Echo (ping) request» и «Echo (ping) reply», соответствующие выполненной ранее команде ping. Фильтрация помогает выделить интересующий трафик и значительно упрощает анализ.
Просмотр сведений о пакетах
После фильтрации ICMP-пакетов рассмотрим подробнее один из ICMP-запросов. Щёлкните по одному из них в списке пакетов. В области сведений можно раскрыть различные уровни протоколов, щёлкая стрелку рядом с каждым разделом.

- Frame: сведения о кадре или пакете в целом, например длина кадра и последовательность проверки кадра.
- Ethernet: информация уровня 2 (канального уровня), включая MAC-адреса источника и назначения.
- Internet Protocol Version 4: информация уровня 3 (сетевого уровня). Раскройте этот раздел, чтобы увидеть:
- IP-адрес источника: IP-адрес устройства, отправившего пакет.
- IP-адрес назначения: IP-адрес устройства, которому направляется пакет.
- Time to Live (TTL): значение, ограничивающее время существования пакета в сети.
- Protocol: протокол, используемый внутри IP-пакета, в нашем случае ICMP.
- Internet Control Message Protocol: сведения о протоколе ICMP. Раскройте раздел, чтобы увидеть параметры сообщения:
- Type (8 for request, 0 for reply): показывает, является ли пакет запросом или ответом.
- Code: содержит дополнительную информацию о сообщении ICMP.
- Checksum: используется для проверки целостности сообщения ICMP.
- Identifier: помогает сопоставлять запросы и ответы.
- Sequence number: порядковый номер ICMP-пакета.
Итоги
В этом практическом задании вы научились устанавливать и настраивать Wireshark — мощный инструмент анализа сети. Вы настроили разрешения, позволяющие пользователям без прав root безопасно захватывать пакеты, запустили приложение и захватили реальный сетевой трафик. Кроме того, вы изучили интерфейс, применили фильтры для отдельных типов трафика и рассмотрели сведения о пакетах на разных уровнях протоколов.
Эти навыки создают прочную основу для анализа сети и устранения неполадок. Теперь с помощью Wireshark вы можете исследовать сетевые соединения, диагностировать проблемы с подключением, анализировать поведение протоколов и выявлять угрозы безопасности в сетевом трафике.


