В этой лабораторной работе вы узнаете, как использовать Wireshark, мощный анализатор сетевых протоколов, для захвата и анализа сетевого трафика IPv6. IPv6, протокол Интернета следующего поколения, предлагает большее адресное пространство и расширенные функции безопасности по сравнению с IPv4.
По мере роста внедрения IPv6, специалистам по кибербезопасности крайне важно знать, как отслеживать и устранять неполадки в сетях IPv6 с помощью таких инструментов, как Wireshark. Эта практическая лабораторная работа даст вам практический опыт мониторинга трафика IPv6, применимый в реальных сетевых средах.
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"])
wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture")
wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters")
wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets")
wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis")
wireshark/WiresharkGroup -.-> wireshark/ipv6_support("IPv6 Support")
subgraph Lab Skills
wireshark/packet_capture -.-> lab-415950{{"Анализ IPv6-трафика с помощью Wireshark"}}
wireshark/display_filters -.-> lab-415950{{"Анализ IPv6-трафика с помощью Wireshark"}}
wireshark/export_packets -.-> lab-415950{{"Анализ IPv6-трафика с помощью Wireshark"}}
wireshark/packet_analysis -.-> lab-415950{{"Анализ IPv6-трафика с помощью Wireshark"}}
wireshark/ipv6_support -.-> lab-415950{{"Анализ IPv6-трафика с помощью Wireshark"}}
end
Захват трафика IPv6
В этом шаге мы сосредоточимся на захвате сетевого трафика IPv6. IPv6 — это последняя версия интернет-протокола (Internet Protocol), разработанная для устранения ограничений IPv4, таких как исчерпание доступных IP-адресов. Чтобы захватить и наблюдать за пакетами IPv6, проходящими через ваши сетевые интерфейсы, мы будем использовать Wireshark, мощный и широко используемый анализатор сетевых протоколов. Он позволяет видеть детали сетевого трафика, что необходимо для мониторинга и устранения неполадок в сети.
Включение IPv6 в вашей системе
Прежде чем мы сможем начать захват трафика IPv6, нам нужно убедиться, что IPv6 включен в вашей системе. Это связано с тем, что если IPv6 отключен, ваша система не сможет отправлять или получать пакеты IPv6, и мы не сможем захватить какой-либо релевантный трафик.
Откройте окно терминала. Это можно сделать, щелкнув значок терминала на панели задач или нажав Ctrl+Alt+T. Терминал — это интерфейс командной строки, где вы можете вводить команды для взаимодействия с вашей системой.
Перейдите в каталог проекта. Здесь находится скрипт для включения IPv6. Используйте следующую команду:
cd /home/labex/project/
Команда cd означает "change directory" (изменить каталог). Она позволяет перемещаться из одного каталога в другой в вашей файловой системе.
Запустите скрипт для включения IPv6 в вашей системе. Используйте следующую команду:
sudo ./enable_ipv6.sh
Команда sudo используется для запуска команд с правами администратора. ./ указывает, что скрипт находится в текущем каталоге. Этот скрипт включает функциональность IPv6 на вашей машине Linux, настраивая сетевые интерфейсы и убеждаясь, что IPv6 не отключен в настройках системы.
Эти строки указывают, что IPv6 включен для всех сетевых интерфейсов, интерфейса по умолчанию и loopback-интерфейса (петлевого интерфейса) соответственно.
Запуск Wireshark и настройка захвата
Теперь, когда IPv6 включен, мы можем запустить Wireshark и настроить его для захвата сетевого трафика.
Запустите Wireshark, выполнив следующую команду в вашем терминале:
wireshark &
Символ & в конце команды запускает Wireshark в фоновом режиме. Это означает, что вы можете продолжать использовать терминал, пока Wireshark работает.
Когда Wireshark откроется, вы увидите список доступных сетевых интерфейсов. Это физические или виртуальные соединения, через которые ваша система может отправлять и получать сетевой трафик. Найдите интерфейс с меткой any. Выбор этого интерфейса позволяет Wireshark захватывать пакеты со всех сетевых интерфейсов в вашей системе.
Чтобы начать захват пакетов, вы можете либо дважды щелкнуть интерфейс any, либо выбрать его и нажать кнопку с синим акульим плавником на панели инструментов.
Wireshark начнет захват всего сетевого трафика в вашей системе. По мере захвата пакетов вы увидите, как они отображаются в главном окне. Каждая запись пакета показывает информацию, такую как IP-адреса источника и назначения, используемый протокол и время захвата.
Генерация трафика IPv6 для захвата
Чтобы убедиться, что у нас есть трафик IPv6 для анализа, мы сгенерируем несколько пакетов IPv6, выполнив ping IPv6-адреса. Пинг (ping) — это простой способ проверить связь между двумя сетевыми устройствами.
Пока Wireshark работает и захватывает пакеты, откройте новое окно терминала. Это позволит вам выполнять команды для генерации трафика, не мешая процессу захвата пакетов.
Сначала давайте найдем IPv6-адрес вашего интерфейса eth1. Выполните следующую команду:
ip addr show dev eth1 | grep inet6
Команда ip addr show отображает IP-адреса, назначенные вашим сетевым интерфейсам. dev eth1 указывает, что мы хотим видеть адреса для интерфейса eth1. | — это оператор конвейера (pipe operator), который берет вывод левой команды и использует его в качестве ввода для правой команды. grep inet6 фильтрует вывод, чтобы показать только строки, содержащие строку inet6, которые являются IPv6-адресами.
Вывод покажет IPv6-адреса, связанные с интерфейсом eth1. Вы должны увидеть link-local IPv6-адрес, который начинается с fe80::. Это ваш локальный IPv6-адрес, который используется для связи внутри локального сетевого сегмента.
Пример вывода:
inet6 fe80::42:acff:fe14:3/64 scope link
Теперь выполните ping этого IPv6-адреса, чтобы сгенерировать трафик IPv6. Используйте команду ping6, которая специально разработана для ping IPv6-адресов. Укажите имя интерфейса (eth1), потому что это link-local адрес. Имя интерфейса необходимо для указания, какой сетевой интерфейс следует использовать для связи.
ping6 -c 4 fe80::42:acff:fe14:3%eth1
Примечание: Замените fe80::42:acff:fe14:3 фактическим IPv6-адресом, отображаемым в вашей системе.
Параметр -c 4 указывает ping отправить 4 пакета, а затем остановиться. Это полезно для ограничения объема генерируемого трафика.
Ожидаемый вывод:
PING fe80::42:acff:fe14:3%eth1(fe80::42:acff:fe14:3%eth1) 56 data bytes
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=3 ttl=64 time=0.064 ms
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=4 ttl=64 time=0.064 ms
--- fe80::42:acff:fe14:3%eth1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3060ms
rtt min/avg/max/mdev = 0.049/0.060/0.064/0.007 ms
Этот вывод показывает детали процесса ping, включая время, которое потребовалось для каждого пакета, чтобы добраться до места назначения и обратно, и коэффициент потери пакетов.
Вернитесь в окно Wireshark. Теперь вы должны увидеть несколько новых пакетов в списке захвата, включая пакеты ICMPv6, сгенерированные вашей командой ping. ICMPv6 — это Internet Control Message Protocol (протокол межсетевых управляющих сообщений) для IPv6, который используется для сообщения об ошибках и в диагностических целях.
Остановите захват пакетов, нажав красную кнопку "Stop" (Остановить) на панели инструментов Wireshark.
Вы успешно захватили трафик IPv6 с помощью Wireshark. На следующем шаге вы узнаете, как фильтровать и анализировать этот трафик.
Фильтрация и анализ трафика IPv6
Теперь, когда вы захватили некоторый трафик IPv6, пришло время узнать, как фильтровать и анализировать этот трафик. Wireshark, мощный анализатор сетевых протоколов, предлагает отличные возможности фильтрации. Фильтрация захваченного трафика помогает вам сосредоточиться на конкретных типах пакетов IPv6, которые вы хотите изучить. Вместо того, чтобы просматривать большой и смешанный набор сетевых данных, фильтрация позволяет изолировать релевантную информацию, что делает ваш анализ более эффективным.
Использование фильтров отображения для IPv6
Фильтры отображения (Display filters) в Wireshark — отличный инструмент. Они позволяют просматривать только те пакеты, которые соответствуют определенным критериям. В этом случае мы сосредоточимся на пакетах IPv6.
В главном окне Wireshark вы увидите список пакетов. В верхней части этого списка находится панель фильтра отображения. В ней есть текстовое поле с подсказкой "Apply a display filter" (Применить фильтр отображения). В эту панель вы будете вводить свои критерии фильтрации.
Чтобы отобразить только пакеты IPv6, введите следующий фильтр в панель фильтра отображения:
ipv6
Этот фильтр указывает Wireshark отображать только пакеты, использующие протокол IPv6.
После ввода фильтра нажмите Enter или нажмите кнопку с синей стрелкой, чтобы применить его. После применения список пакетов будет отображать только пакеты IPv6. Это означает, что любые пакеты IPv4 или других протоколов будут отфильтрованы, оставив вам только трафик IPv6.
Если вы хотите дополнительно уточнить свой фильтр, чтобы отображать только пакеты ICMPv6 (например, те, которые были сгенерированы командой ping6), введите следующий фильтр:
icmpv6
ICMPv6 — это ключевой протокол для сетей IPv6, используемый для таких задач, как отчеты об ошибках и диагностические сообщения. Используя этот фильтр, вы можете сосредоточиться на этих конкретных типах пакетов.
Примените фильтр, как и раньше. Теперь вы должны увидеть только пакеты ICMPv6 из ваших команд ping в списке пакетов.
Изучение деталей пакета IPv6
Wireshark предоставляет подробную информацию о каждом пакете. Давайте внимательнее рассмотрим структуру пакета IPv6.
В отфильтрованном списке пакетов найдите пакет ICMPv6 Echo Request. Вы можете идентифицировать его, найдя "Echo (ping) request" в столбце Info. Щелкните этот пакет, чтобы выбрать его.
Когда вы выбираете пакет, в средней панели будет показана подробная разбивка этого пакета. Найдите раздел с надписью "Internet Protocol Version 6" (Интернет-протокол версии 6). Если он еще не развернут, щелкните стрелку рядом с ним, чтобы развернуть его. Это покажет вам все поля в заголовке IPv6.
В информации заголовка IPv6 есть несколько важных полей, на которые следует обратить внимание:
Version (Версия): Это поле должно быть 6 для IPv6. Это простой способ подтвердить, что пакет использует протокол IPv6.
Traffic Class (Класс трафика): Это поле используется для QoS (Quality of Service - Качество обслуживания). Оно помогает приоритизировать различные типы трафика в сети.
Flow Label (Метка потока): Это поле можно использовать для поддержания состояния пакетов, принадлежащих одному потоку. Оно полезно для отслеживания связанных пакетов.
Payload Length (Длина полезной нагрузки): Это поле указывает размер данных после заголовка IPv6. Оно помогает вам понять, сколько данных переносится в пакете.
Next Header (Следующий заголовок): Это поле определяет тип заголовка, который следует за заголовком IPv6. Это может быть заголовок другого протокола, такого как TCP или UDP.
Hop Limit (Предел числа переходов): Аналогично TTL (Time To Live - Время жизни) в IPv4, это значение уменьшается на каждом маршрутизаторе. Оно предотвращает бесконечную циркуляцию пакетов в сети.
Source Address (Адрес источника): Это IPv6-адрес отправителя. Он сообщает вам, откуда пришел пакет.
Destination Address (Адрес назначения): Это IPv6-адрес получателя. Он показывает, куда идет пакет.
Обратите внимание на разницу между адресами IPv6 и IPv4. IPv6 использует 128-битные адреса, которые обычно записываются в виде восьми групп по четыре шестнадцатеричных цифры. В отличие от этого, IPv4 использует 32-битные адреса. Это делает адреса IPv6 намного длиннее и обеспечивает гораздо большее адресное пространство.
Теперь разверните раздел "Internet Control Message Protocol v6" (Протокол межсетевых управляющих сообщений версии 6), чтобы увидеть детали пакета ICMPv6:
Type (Тип): Это указывает тип сообщения ICMPv6. Например, 128 — для Echo Request (Запрос эхо), а 129 — для Echo Reply (Ответ эхо).
Code (Код): Это поле дополнительно определяет тип сообщения. Оно предоставляет более подробную информацию о сообщении ICMPv6.
Checksum (Контрольная сумма): Это поле используется для обнаружения ошибок в сообщении ICMPv6. Оно помогает обеспечить целостность данных.
Identifier (Идентификатор): Это поле используется для сопоставления запросов с ответами. Оно позволяет отправителю отслеживать, какой ответ соответствует какому запросу.
Sequence (Последовательность): Это порядковый номер, который увеличивается для каждого пакета в сеансе ping. Он помогает в упорядочении пакетов.
Сохранение захваченных пакетов
Часто полезно сохранять захваченные пакеты для последующего анализа или документирования. Вот как это можно сделать:
В Wireshark щелкните меню File (Файл), затем выберите Save As (Сохранить как). Откроется диалоговое окно, в котором вы можете выбрать, куда сохранить файл и как его назвать.
Перейдите в каталог /home/labex/project/. Это место, где мы хотим сохранить захваченные пакеты.
Введите capture.pcapng в качестве имени файла. Это имя будет использоваться для идентификации сохраненного захвата пакетов.
Нажмите кнопку Save (Сохранить), чтобы сохранить захваченные пакеты. Файл будет сохранен в формате PCAPNG, который является стандартным форматом для захватов пакетов Wireshark. Этот формат широко поддерживается и может быть открыт в других инструментах анализа сети.
Вы можете убедиться, что файл был сохранен правильно, выполнив следующую команду в терминале:
ls -l /home/labex/project/capture.pcapng
Эта команда выводит детали файла, включая его разрешения, владельца, размер и дату создания.
Теперь вы узнали, как фильтровать трафик IPv6, изучать детали пакетов IPv6 и сохранять захваченные пакеты для дальнейшего использования. На следующем шаге вы более подробно изучите заголовки расширения IPv6.
Изучение расширенных заголовков IPv6
В этом шаге мы изучим расширенные заголовки IPv6 (IPv6 extension headers). IPv6 — это интернет-протокол следующего поколения, который предлагает множество улучшений по сравнению с IPv4. Одним из этих ключевых улучшений является использование расширенных заголовков. Эти заголовки имеют решающее значение, поскольку они обеспечивают расширенную функциональность, такую как улучшенная маршрутизация и функции безопасности. Понимание их необходимо всем, кто занимается мониторингом сети IPv6 и анализом безопасности, поскольку они могут раскрыть важную информацию о том, как пакеты обрабатываются в сети.
Идентификация расширенных заголовков в Wireshark
Теперь давайте используем Wireshark для идентификации и понимания расширенных заголовков IPv6 в пакетах, которые мы захватили ранее.
Сначала убедитесь, что Wireshark открыт. Если это не так, вы можете открыть его, используя следующую команду в терминале:
wireshark &
Символ & в конце позволяет команде выполняться в фоновом режиме, поэтому вы можете продолжать использовать терминал для других задач.
Далее откройте файл захвата, который вы сохранили на предыдущем шаге. Вот как это сделать:
Щелкните File (Файл) > Open (Открыть) в меню Wireshark.
Перейдите в каталог /home/labex/project/.
Выберите файл с именем capture.pcapng и нажмите Open (Открыть). Этот файл содержит сетевой трафик, который вы захватили ранее.
В панели фильтра в верхней части Wireshark введите следующий фильтр:
ipv6
Этот фильтр показывает все пакеты IPv6. Мы изучим поле Next Header (Следующий заголовок) в этих пакетах, чтобы идентифицировать любые расширенные заголовки.
Выберите любой пакет IPv6 из списка пакетов в левой части Wireshark. В средней панели разверните раздел "Internet Protocol Version 6" (Интернет-протокол версии 6). Это покажет вам детали заголовка IPv6.
Найдите поле "Next Header" (Следующий заголовок) в развернутом заголовке IPv6. Это поле очень важно, поскольку оно сообщает нам, что идет сразу после заголовка IPv6. Это может быть расширенный заголовок или протокол верхнего уровня, такой как TCP или UDP.
Значение "Next Header" (Следующий заголовок) соответствует определенному номеру протокола:
Если в пакете присутствует расширенный заголовок, он появится в виде разворачивающегося раздела под заголовком IPv6 в панели сведений о пакете. Разверните его, чтобы увидеть его содержимое, которое может предоставить ценную информацию об обработке пакета.
Экспорт байтов пакета для анализа
Чтобы дополнительно проанализировать поле "Next Header" (Следующий заголовок), мы экспортируем байты пакета, содержащего его.
Выберите любой пакет IPv6 из списка пакетов.
В средней панели убедитесь, что раздел "Internet Protocol Version 6" (Интернет-протокол версии 6) развернут. Если это не так, разверните его, чтобы просмотреть детали заголовка IPv6.
Найдите поле "Next Header" (Следующий заголовок). Обычно оно находится в верхней части сведений о заголовке IPv6.
Щелкните правой кнопкой мыши поле "Next Header" (Следующий заголовок) и выберите "Export Selected Packet Bytes" (Экспортировать выбранные байты пакета).
В появившемся диалоговом окне перейдите в каталог /home/labex/project/. Здесь мы сохраним экспортированные байты.
Введите extension_header.txt в качестве имени файла.
Нажмите "Save" (Сохранить), чтобы сохранить файл.
Вы можете убедиться, что файл был успешно создан, выполнив следующую команду в терминале:
cat /home/labex/project/extension_header.txt
Вывод, вероятно, будет представлять собой один символ, представляющий значение Next Header (Следующий заголовок). Это может быть полезно для дальнейшего анализа или написания скриптов.
Анализ цепочки расширенных заголовков
В IPv6 пакет может иметь несколько расширенных заголовков, образующих цепочку. Каждый расширенный заголовок имеет поле "Next Header" (Следующий заголовок), которое указывает, что следует за ним.
Например, пакет IPv6 может иметь следующую структуру:
Основной заголовок IPv6 со значением "Next Header" (Следующий заголовок) равным 0, что означает, что следующим заголовком является заголовок Hop-by-Hop Options (Параметры от узла к узлу).
Заголовок Hop-by-Hop Options (Параметры от узла к узлу) со значением "Next Header" (Следующий заголовок) равным 43, указывающим, что следующим заголовком является заголовок Routing (Маршрутизация).
Заголовок Routing (Маршрутизация) со значением "Next Header" (Следующий заголовок) равным 6, что означает, что следующим заголовком является заголовок TCP.
Наконец, заголовок TCP и полезная нагрузка (payload).
Этот механизм цепочки обеспечивает большую гибкость в обработке пакетов. Однако им также можно злоупотреблять для атак на безопасность, например, для попыток обойти правила брандмауэра (firewall). Вот почему понимание расширенных заголовков имеет решающее значение для мониторинга сетевой безопасности.
Теперь вы узнали, как идентифицировать и изучать расширенные заголовки IPv6 в Wireshark. Это важный навык для всех, кто занимается мониторингом сети IPv6 и анализом безопасности.
Итог
В этой лабораторной работе вы освоили важные навыки мониторинга сети IPv6 с использованием Wireshark. Вы начали с захвата трафика IPv6 и генерации пакетов с помощью команд ping6. Затем вы углубились в фильтрацию и анализ захваченных пакетов, уделяя особое внимание уникальной структуре и полям заголовков IPv6.
Ключевые приобретенные навыки включают захват трафика IPv6, использование фильтров отображения (display filters) для определенных типов пакетов, изучение структур и заголовков пакетов, сохранение захватов для последующего анализа, идентификацию расширенных заголовков IPv6 (IPv6 extension headers) и понимание поля Next Header (Следующий заголовок) и цепочки расширенных заголовков. Эти навыки жизненно важны для сетевых администраторов и специалистов по кибербезопасности в средах, где преобладает IPv6, и имеют решающее значение для сетевой безопасности, устранения неполадок и понимания поведения сети. По мере того как внедрение IPv6 растет во всем мире, эти знания обеспечивают прочную основу для продвинутых концепций.