Запуск удаленного захвата с Wireshark и tcpdump

Wireshark tcpdump удаленный захват

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

Что такое Wireshark и tcpdump?

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

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

tcpdump - анализатор пакетов командной строки. Его не так просто использовать, как Wireshark, но он также способен захватывать трафик. Поскольку tcpdump работает в режиме терминала, его можно запустить через сеанс SSH. При наличии соответствующих параметров командной строки вы можете экспортировать сеанс tcpdump, совместимый с Wireshark.

SolarWinds выводит Wireshark на новый уровень

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

Средство просмотра времени отклика SolarWinds для Wireshark (БЕСПЛАТНЫЙ ИНСТРУМЕНТ)

В этом случае я рекомендую Средство просмотра времени отклика SolarWinds для Wireshark. Этот плагин расширяет Wireshark, позволяя вам диагностировать причину пинга и общую медленную скорость сети.

Средство просмотра времени отклика SolarWinds для Wireshark

Средство просмотра времени отклика SolarWinds для WiresharkDownload 100% БЕСПЛАТНЫЙ инструмент

Монитор производительности сети SolarWinds (БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯ)

SolarWinds также делает отличное универсальное решение для вашей сети. Это называется Монитор производительности сети (NPM), и это делает администрирование сети намного проще. Например, с помощью SolarWinds Network Performance Monitor вы можете отслеживать и управлять своей беспроводной локальной сетью, генерировать базовые показатели производительности и получать предупреждения безопасности в режиме реального времени..

Изображение монитора производительности сети SolarWinds

Монитор производительности сети SolarWinds можно попробовать без риска в течение 30 дней. Зарегистрируйтесь здесь бесплатно.

Монитор производительности сети SolarWindsСкачать 30-дневную бесплатную пробную версию

Прежде чем вы начнете

Чтобы следовать указаниям в этом руководстве, вам потребуется следующее:

  • Удаленный компьютер с установленным SSH-сервером и tcpdump
  • Корневой доступ
  • Сервисы, которые генерируют сетевой трафик, такие как Apache или node.js, работающие на удаленном компьютере
  • Локальный компьютер с установленным SSH-клиентом и Wireshark

Цель состоит в том, чтобы использовать tcpdump на удаленном компьютере через SSH для захвата сетевого трафика. Затем захваченный трафик можно скопировать на локальный компьютер для анализа с помощью Wireshark..

Это полезно, когда у вас нет физического доступа к удаленному компьютеру или вы используете его «без головы», т. Е. Без клавиатуры и монитора..

Захват пакетов с помощью tcpdump

Для захвата трафика с помощью tcpdump вам необходимо подключиться к удаленному компьютеру через SSH. Вам также понадобится root-доступ, иначе tcpdump не сможет перехватить трафик, и вы увидите сообщение об ошибке У вас нет разрешения на захват на этом устройстве.

tcpdump - Захват 1

После подключения выполните следующую команду, чтобы начать захват трафика с помощью tcpdump:

sudo tcpdump -s 0 -i eth0 -w tcpdump.pcap

Параметры командной строки, которые я использовал для записи этого сеанса, будут объяснены ниже. Вкратце, приведенная выше команда перехватит весь трафик на устройстве Ethernet и запишет его в файл с именем tcpdump.pcap в формате, совместимом с Wireshark..

tcpdump - Capture 2

Завершив захват трафика, завершите сеанс tcpdump с помощью Ctrl + C,. Вы увидите короткое сообщение, отображающее некоторую информацию о сеансе захвата.

tcpdump - Capture 3

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

sudo chmod 644 tcpdump.pcap

Это позволит вам скопировать файл на локальный компьютер с помощью scp, как описано в следующем шаге..

Копирование сеанса tcpdump для анализа

После того, как вы закончили сеанс захвата с tcpdump, у вас осталась проблема. Как скопировать его на компьютер с Wireshark для анализа? Есть много способов, но я думаю, что проще всего с scp. Поскольку вы уже перехватили пакеты на автономной машине с использованием SSH, все, что вам нужно для использования scp, уже установлено и работает.

tcpdump - Capture 4

Пользователям Windows придется скачать pscp, а затем скопировать файл в C: \ Windows \ System32. Большинство пользователей Mac и Linux уже имеют все необходимое.

tcpdump - Capture 5

В Mac или Linux откройте окно терминала и выполните следующую команду, чтобы скопировать файл захвата сеанса:

scp [email protected]: / путь / к / файлу ./

Или в Windows откройте PowerShell и выполните следующую команду:

pscp.exe [email protected]: / path / to / file. \

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

tcpdump - Capture 6

Убедитесь, что файл скопирован должным образом, и вы готовы проанализировать сеанс tcpdump с Wireshark..

Анализ захваченного сеанса tcpdump с Wireshark

Анализ работает так же, как и при любом традиционном захвате Wireshark; единственное, что вам нужно знать, это как импортировать файл.

tcpdump - Capture 7

Запустите Wireshark, затем импортируйте захваченный сеанс tcpdump, используя файл -> открыто и найдите свой файл. Вы также можете Двойной клик файл захвата, чтобы открыть его в Wireshark, до тех пор, пока он имеет расширение * .pcap. Если вы использовали -вес опция, когда вы запустили tcpdump, файл загрузится нормально и отобразит трафик.

tcpdump - Capture 7

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

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

tcpdump - Capture 8

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

Использование параметров командной строки для tcpdump

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

tcpdump -w

-вес опция командной строки включает совместимый с Wireshark вывод. Он принимает одну переменную, которая является выходным именем файла. Журналы захвата, сохраненные с помощью этой опции, не будут читаться человеком вне Wireshark, так как они хранятся в двоичном, а не в ASCII.

tcpdump -C

Опция командной строки позволяет вам установить максимальный размер файла в байтах. Эта опция работает только вместе -вес. Например, команда tcpdump -C 1048576 -w capture.pcap задает максимальный размер захвата 1 МБ (1 048 576 байт) для вывода в файл capture.pcap.

Если сеанс генерирует больший объем выходных данных, он создаст новые файлы для его сохранения. Таким образом, захват 3 МБ будет генерировать capture.pcap, capture1.pcap, и capture2.pcap каждый с размером файла 1 МБ.

tcpdump -s

-s Опция командной строки устанавливает максимальную длину для каждого пакета в байтах и ​​обрезает пакет при достижении максимума. Команда tcpdump -s 0 устанавливает неограниченную длину, чтобы гарантировать захват всего пакета.

tcpdump -i

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

tcpdump -list-interfaces

Опция командной строки tcpdump -list-interfaces выведет список всех интерфейсов, доступных для подключения к tcpdump. Обратите внимание, что это не запускает сеанс захвата, но даст вам список интерфейсов для использования с вариант выше.

tcpdump -c

опция командной строки говорит tcpdump выйти из сеанса после захвата указанного количества пакетов.

tcpdump -n

-N опция командной строки дает команду tcpdump не разрешить IP-адреса для имен хостов. Это полезно при поиске и устранении неисправностей веб-сайтов за сервером балансировки нагрузки, а в некоторых других случаях использование имени хоста может привести к неоднозначным результатам..

tcpdump -v | -vv | -vvv

Три параметра командной строки, -v, -ст, и -VVV позволит вам увеличить детализацию вашего сеанса захвата. -v сохранит значения TTL для каждого пакета вместе с информацией ToS. -ст будет выводить TTL и ToS вместе с дополнительной информацией в пакетах NFS. И -VVV будет регистрировать все, что делают первые две опции, вместе с дополнительной информацией из сеансов telnet.

tcpdump -F

-F Параметр командной строки указывает tcpdump использовать фильтры захвата из указанного файла. Более подробную информацию о записи файла захвата можно найти в следующем разделе.

Использование фильтров захвата для tcpdump

Фильтры захвата позволяют сузить данные, которые tcpdump хранит в сеансе. Это полезный способ облегчить анализ и сохранить небольшие размеры файлов захвата. Вот некоторые из самых полезных фильтров захвата для tcpdump.

хозяин

Этот фильтр указывает, что должен захватываться только трафик к целевому хосту и от него. Он принимает IP-адрес или имя хоста в качестве аргумента.

сеть

Сетевой фильтр скажет вашему компьютеру захватывать только трафик в данной подсети и примет IP-адрес в качестве аргумента. Например, 192.168.1.0/24 указывает, что трафик к или от всех хостов в подсети будет перехвачен. Обратите внимание, что маска подсети в слэше обязательна.

хост dst

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

Src Host

Как и выше, но этот фильтр захватывает только трафик, исходящий от указанного хоста или IP-адреса. Может также использоваться с сеть.

порт

Этот фильтр сообщает tcpdump захватывать трафик с заданным номером порта. Например, порт 443 будет захватывать трафик TLS.

portrange

Подобно фильтру портов, portrange устанавливает диапазон портов, на которые захватывается трафик. Чтобы использовать фильтр portrange, укажите начальный порт и конечный порт, разделенные тире. Например, Portrange 21-23.

шлюз

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

широковещательный

Фильтр широковещания указывает, что tcpdump должен захватывать только трафик, который транслируется всем хостам в подсети..

IP многоадресная рассылка

Этот фильтр указывает tcpdump захватывать только многоадресный трафик в подсети хоста.

и / или / не операторы

Фильтры могут быть объединены в цепочку с помощью и, или, или не операторы. Например, для захвата всего веб-трафика на данном хосте вы можете использовать фильтр порт 80 или порт 443. Или вы можете захватить весь трафик в данной подсети, кроме широковещательных пакетов, используя фильтр нет 192.168.1.0/24 и не транслируется.

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

Сложные выражения с несколькими операторами

Еще более сложные выражения можно построить, заключив несколько операций в одиночные апострофы и скобки. Например, вы можете отслеживать весь почтовый трафик, включая SMTP, IMAP, IMAP по TLS, POP3 и POP3 по TLS, через несколько хостов и подсетей, используя следующую команду:

tcpdump '(хост 10.0.0.1 и сеть 192.168.1.0/24) и ((порт 25 или порт 143 или порт 443 или порт 993 или порт 995))'

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

Использование файлов фильтров для tcpdump

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

Напишите файл фильтра

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

tcpdump - Capture 9

Например, вот файл фильтра, который я написал, который будет захватывать весь веб-трафик, исходящий с моего сервера Apache на данный хост. В этом случае Chromebook, на котором я пишу.

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

tcpdump - Capture 10

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

tcpdump - Capture 11

Вот необработанный вывод отфильтрованного сеанса. Вы можете видеть, что только регистрируемые пакеты происходят от порт 80 или 443, и отправляются на хост в 192.168.1.181.

tcpdump - Capture 12

Как только вы увидите, что ваш фильтр работает должным образом, запишите сеанс, который нужно проанализировать с помощью Wireshark, с помощью команды, подобной этой:

sudo tcpdump -i eth0 -s 0 -w wireshark.pcap -F фильтр-файл

Wireshark и tcpdump

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

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *

47 − 46 =

Adblock
detector