Введение
В этой лабораторной работе вы научитесь устанавливать и настраивать 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 мог захватывать сетевые пакеты. Возможно, вам интересно, зачем это нужно. По умолчанию захват пакетов требует прав root. Это мера безопасности, так как перехват сетевого трафика может потенциально раскрыть конфиденциальную информацию. Однако запуск 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.
После изменения группы установим необходимые права доступа на файл dumpcap с помощью команды chmod. Выполните:
sudo chmod 4755 /usr/bin/dumpcap
Эта команда устанавливает бит setuid на бинарный файл. Бит setuid позволяет программе выполняться с правами владельца (root) независимо от того, кто ее запускает. Права 4755 можно расшифровать так:
4— Устанавливает бит setuid. Это означает, что при запуске программа будет работать с правами владельца (root).7— Владелец (root) имеет права на чтение, запись и выполнение.5— Группа имеет права на чтение и выполнение. Это позволяет членам группыwiresharkзапускать программу.5— Остальные пользователи имеют права на чтение и выполнение.
Наконец, добавим текущего пользователя в группу wireshark. Это даст нашему пользователю необходимые права для использования dumpcap. Воспользуемся командой gpasswd. Выполните:
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
Теперь, когда наш пользователь состоит в группе wireshark, а файл dumpcap имеет правильные права доступа, Wireshark сможет захватывать пакеты без прав root.
Запуск Wireshark
На этом этапе мы запустим Wireshark и познакомимся с его интерфейсом. Wireshark — мощный инструмент для анализа сетевого трафика, обладающий графическим интерфейсом (GUI). Именно через него мы будем взаимодействовать с программой.
Убедитесь, что вы находитесь в графической среде рабочего стола виртуальной машины LabEx. Вы увидите рабочий стол со значками и панель задач. Это отправная точка для работы с Wireshark.
Есть два способа запустить Wireshark:
Нажмите на меню приложений (обычно в левом верхнем углу экрана). Перейдите в категории «Internet» или «Network». Найдите и выберите «Wireshark». Это самый простой способ запуска через графический интерфейс.

Альтернативный способ — через терминал. Откройте окно терминала и введите:
wireshark
Эта команда запустит приложение Wireshark, и на экране появится главное окно. Первое, что вы увидите — экран «Welcome to Wireshark». Здесь отображается список доступных сетевых интерфейсов для захвата трафика, а также недавно открытые файлы захвата (если вы уже пользовались программой).

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

Панель списка пакетов (сверху): Отображает список всех захваченных пакетов. Каждая запись содержит базовую информацию:
- Номер пакета: Уникальный идентификатор.
- Время: Время захвата пакета.
- IP-адрес источника: Устройство, отправившее пакет.
- IP-адрес назначения: Устройство, которому предназначен пакет.
- Протокол: Используемый протокол (TCP, UDP, ICMP и т.д.).
- Длина: Размер пакета в байтах.
- Информация: Краткое описание назначения пакета.
Панель деталей пакета (посередине): При выборе пакета в верхней панели здесь отображается подробная информация в иерархическом виде. Вы можете разворачивать разделы, чтобы увидеть структуру пакета.
Панель байтов пакета (снизу): Показывает «сырые» данные пакета в шестнадцатеричном и ASCII форматах. При выборе полей в панели деталей соответствующие байты подсвечиваются здесь.
Генерация сетевого трафика
Чтобы было что анализировать, сгенерируем немного трафика. Не закрывая Wireshark, откройте новое окно терминала. Мы воспользуемся командой ping для отправки ICMP-запросов к серверам Google.
Выполните команду:
ping -c 5 google.com
Примечание: Бесплатные пользователи не имеют доступа к интернету. Перейдите на Pro, чтобы получить полный доступ.
Опция -c 5 указывает отправить 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
...
Вернитесь в Wireshark. Вы увидите захваченные ICMP-пакеты.
Остановка захвата
Когда закончите анализ, остановите захват, нажав кнопку «Stop capturing packets» (красный квадрат на панели инструментов) или выбрав в меню «Capture» -> «Stop».
Фильтрация пакетов
Wireshark захватывает весь трафик, поэтому данных может быть очень много. Фильтры позволяют сфокусироваться на нужном.

Чтобы отфильтровать ICMP-пакеты, введите в строке фильтров:
icmp
Нажмите Enter или кнопку применения (стрелка вправо). Список обновится, показывая только ICMP-пакеты. Вы увидите пары «Echo (ping) request» и «Echo (ping) reply».
Изучение деталей пакета
Выберите один из ICMP-запросов в списке. В панели деталей разверните уровни протоколов:

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


