Изучите Wireshark – учебник по компьютерным сетям

В этой публикации вы узнаете единственный важнейший и полезный инструмент в компьютерных сетях – Wireshark.

Эта публикация опирается на базовые знания о компьютерных сетях. Обязательно просмотрите мой предыдущий пост о пятислойной модели, если вам нужно обновить информацию.

Wireshark – это сниффер, а также анализатор пакетов.

Что это значит?

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

Но Wireshark делает больше, чем это. Снифер может просто отразить поток битов – единиц и нулей, которые видит сетевая карта. Wireshark также есть a анализатор пакеров который отображает множество значимых данных о кадрах, которые он видит.

Wireshark – это бесплатный инструмент с открытым кодом, широко используемый для анализа сетевого трафика.

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

Это также может помочь программистам. К примеру, представьте, что вы реализуете программу чата между двумя клиентами, и что-то не работает. Чтобы понять, что именно посылается, вы можете использовать Wireshark, чтобы просмотреть данные, передаваемые по проводу.

Итак, давайте познакомимся с Wireshark.

Начните с загрузки Wireshark с официального веб-сайта:

https://www.wireshark.org/#download

Следуйте инструкциям установщика, и все будет готово.

Запустите Wireshark и начните с анализа данных. Для этого можно ударить Ctrl+K (ПК) или Cmd+K (Mac), чтобы получить Capture Options окно. Обратите внимание, что вы можете получить доступ к этому окну другими способами. Вы можете пойти к Capture->Options. Кроме того, вы можете нажать Capture Options значок.

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

Итак, я снова использовал Ctrl+K (или Cmd+K) и получил этот экран:

изображение-208
The Capture Options окно в Wireshark (Источник: коротко)

Здесь мы можем увидеть список интерфейсов, а у меня их достаточно много. Какой из них актуален? Если вы не уверены на этом этапе, вы можете просмотреть Traffic и посмотрите, какие интерфейсы сейчас имеют трафик.

Вот мы это видим Wi-Fi 3 через него проходит транспорт, поскольку линия высока. Выберите подходящий сетевой интерфейс и нажмите Enterили нажмите кнопку Start.

Дайте Wireshark некоторое время пронюхать сеть, а затем прекратите ее использование Ctrl+E / Cmd+E. Опять же, этого можно добиться другими способами – например, посетить Capture->Stop или нажав кнопку Stop значок.

Рассмотрим разные разделы:

изображение-210
Разделы Wireshark (Источник: краткое описание)

Раздел, отмеченный красным, содержит меню Wireshark со всеми интересными параметрами.

Главная панель инструментов отмечена синим цветом, что обеспечивает быстрый доступ к некоторым пунктам меню.

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

Затем следует:

Панель списка пакетов отмечена оранжевым цветом. Он отображает краткую информацию о каждом захваченном пакете.

(Примечание: термин Frame относится к последовательности байтов на канальном уровне, а пакет – это последовательность байтов с сетевого уровня. В этом сообщении я буду использовать эти термины как взаимозаменяемые, хотя, чтобы быть точным, каждый пакет есть кадр, но не каждый кадр является пакетом , поскольку есть кадры, не содержащие данных сетевого уровня.)

Как вы можете видеть на картинке выше, у нас есть несколько столбцов:

ЧИСЛО (№) – номер пакета в захватном файле. Это число не изменится, даже если мы используем фильтры. Это только последовательный номер – первый кадр, который вы пронюхали, получает номер 1, второй кадр получает номер 2 и так далее.

Время – отметка времени пакета. Он показывает, сколько времени прошло от первого пакета, который мы пронюхали до момента, когда мы пронюхали соответствующий пакет. Поэтому время для пакета номер 1 всегда равно 0.

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

Назначение – адрес, куда следует этот пакет.

Протокол – сокращенное название протокола. Это будет верхний протокол, то есть протокол высочайшего уровня.

Длина – длина каждого пакета в байтах.

Информация – дополнительная информация о содержимом пакета. Это меняется в соответствии с протоколом.

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

Нажмите один из захваченных пакетов. В следующем примере я нажал на пакет номер 147:

изображение-211
Выбор конкретного пакета изменяет панель деталей пакета (Источник: краткий)

Теперь, панель деталей пакета Более подробно отображает пакет, выбранный на панели списка пакетов. Вы можете увидеть слои здесь.

В примере выше мы имеем Ethernet II как второй уровень, IPv4 как третий уровень, UDP как четвертый уровень и некоторые данные как полезную нагрузку.

Когда мы нажимаем на определенный пласт, мы фактически видим заголовок этого слоя.

Обратите внимание, что мы не видим первый слой в отдельности. Напоминаем, что первый слой отвечает за передача одного бита – 0 или 1 – через сеть (если вам нужно обновить информацию о разных слоях, просмотрите эту публикацию).

изображение-215
Панель байтов пакетов в Wireshark (Источник: Кратко)

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

Wireshark имеет много разных функций, и сегодня мы сосредоточимся на одном – фильтре отображения.

Как видите, как только вы начинаете нюхать данные, вы получаете МНОГО трафика. Но смотреть на все точно не хочется.

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

Скажем, я хочу отфильтровать только сообщения, отправленные по адресу источника кадра номер 149 ( 192.168.1.3 ). Я расскажу об IP-адресах в следующих публикациях, но сейчас вы видите, что они состоят из четырех чисел, разделенных точкой:

изображение-217
The display filter в Wireshark (Источник: Кратко)

Теперь, даже если вы не знаете, как фильтровать только пакеты, отправленные из этого IP-адреса, вы можете использовать Wireshark, чтобы показать вам, как это делается.

Для этого перейдите к правому полю, которое мы хотим отфильтровать – в этом случае это IP-адрес источника. Затем щелкните правой кнопкой мыши -> и выберите filter -> Apply as Filter.

изображение-218
Применение фильтра отображения (Источник: кратко)

После применения фильтра вы увидите только пакеты, отправленные с этого адреса. Кроме того, можно просмотреть строку фильтра отображения и увидеть используемую команду. Таким образом вы можете узнать о синтаксисе фильтра отображения (в этом примере это ip.src для поля IP-адреса источника):

изображение-219
Применение фильтра отображения (Источник: кратко)

Теперь попробуйте отфильтровать только пакеты, отправленные с этого адреса, и к адрес 172.217.16.142 (как в кадре 130 на изображении выше). Как ты это сделал бы?

Ну, вы можете перейти к соответствующему полю – в этом случае это IP-адрес назначения. Теперь щелкните правой кнопкой мыши -> Apply as Filter -> и выберите ...and Selected:

изображение-220
Применение фильтра отображения (Источник: кратко)

Если вы посмотрите на строку фильтра дисплея после применения этого фильтра:

изображение-221
Применение фильтра отображения (Источник: кратко)

Вы также можете узнать, что вы можете использовать && операнд для выполнения and. Вы также можете написать слово andвместо этого и получить тот же результат.

изображение-222
Применение нескольких условий с помощью && или and (Источник: Кратко)

Пинг это полезная утилита для проверки подключения удаленных серверов.

На этой странице объясняется, как пользоваться ping в Windows и на этой странице объясняется, как это сделать в OSX.

Теперь мы можем попробовать ping <address> с помощью командной строки. По умолчанию отправляется ping 4 спрашивает и ждет a понг ответ. Если мы хотим, чтобы он посылал один запрос, мы можем использовать -n 1:

изображение-224
Использование командной строки для запроса Google (источник: краткий)

Вы видите, что Google ответил. Время, необходимое для возвращения сообщения, составило 92 миллисекунды. Мы узнаем о значениях TTL в следующих публикациях.

Ping полезен, чтобы определить, доступна ли удаленная служба и как быстро достичь этой службы. Если подключение к надежному серверу, например google.com занимает много времени, у нас могут возникнуть проблемы с подключением.

Попробуйте сами

Теперь попробуйте воспользоваться Wireshark, чтобы ответить на следующие вопросы:

1) Какой протокол выполняет пинг коммунальное использование?

2) Используя только Wireshark, вычислите RTT (Время прохождения туда и обратно) – сколько времени прошло с момента отправки вашего запроса ping и до получения ответа на ping?

Далее выполните следующую команду:

ping -n 1 -l 342 www.google.com

3) Каково главное различие между пакетом, отправленным этой командой, и пакетом, отправленным предыдущей командой? Где в Wireshark можно увидеть эту разницу, проверяя пакеты?

4) Какое содержимое (данные) предоставляется в пакете ping? Какое содержимое предоставляется в ping-пакете?

Давайте решим вместе

Итак, первый вопрос:

Какой протокол использует утилита ping?

Чтобы ответить на этот вопрос, начните нюхать Wireshark и просто запустите ping команда. Остановите нюхание и рассмотрите панель пакетов:

изображение-225
Нюхание при запуске ping (источник: Коротко)

Wireshark обозначает пакеты как Echo (ping) request и Echo (ping) reply.

Рассматривая эти пакеты, мы видим, что они состоят из Ethernet для уровня канала данных (хотя это может отличаться от одной сети к другой), IPv4 как сетевой уровень, а затем ICMP как протокол для самого Ping. Итак, ответ, который мы нашли: ICMP.

Следующий вопрос:

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

Глядя на восторженные пакеты, мы можем увидеть Time и вычтите время пакета Pong ( 7.888... ) с момента пакета Ping ( 7.796...).

Следовательно, в этом случае RTT был: 92 мс. Конечно, значение может быть другим, когда вы запускаете ping полезность.

Какова главная разница между пакетом, отправленным этой командой, и пакетом, отправленным предыдущей командой?

Для вопроса номер 3 нас просят выполнить следующую команду:

ping -n 1 -l 342 www.google.com

Смотря на первый запуск pingмы можем увидеть длину пакетов 74 байты:

изображение-225
Нюхание при запуске ping (источник: Коротко)

Наблюдение за пакетами, отправленными после запуска ping с -l 342 аргумент, мы видим, что значение больше:

изображение-228
Нюхание при запуске ping (источник: Коротко)

Итак, основное отличие состоит в количестве байтов, которые посылаются как данные.

Вопрос номер четыре:

Какое содержимое (данные) предоставляется в пакете ping?

Какое содержимое предоставляется в ping-пакете?

Нажмите пакет запроса, чтобы просмотреть отправленные данные:

изображение-230
Наблюдая по данным, отправленным ping утилита (источник: Brief)

Ответ на запрос ping a через wснова и снова.

Относительно ответа ping – это то же самое, что запрос.

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

Как вы видели, вы можете узнать, как все работает, просто запустив Wireshark в фоновом режиме при их использовании, а затем проверив трафик. С этим инструментом за поясом небо есть предел.

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

Об авторе

Омер Розенбаум является основным техническим директором Swimm. Он является автором YouTube-канала Brief. Он также является экспертом по киберобучению и основателем Checkpoint Security Academy. Он автор книги «Компьютерные сети» (ивритом). Вы можете найти его в Twitter.

Дополнительные ссылки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *