Запуск удаленного захвата с 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..

About the author

Comments

  1. енном сервере Знание основных команд Linux Знание основных протоколов сети, таких как TCP, UDP, HTTP, DNS и т.д. Захват пакетов с помощью tcpdump Tcpdump – это утилита командной строки, которая позволяет захватывать и анализировать сетевой трафик. Чтобы начать захват пакетов, вам нужно выполнить следующую команду: tcpdump -i eth0 -w capture.pcap где eth0 – это имя интерфейса, на котором вы хотите захватить трафик, а capture.pcap – это имя файла, в который будут записаны захваченные пакеты. Копирование сеанса tcpdump для анализа Чтобы скопировать сеанс tcpdump на ваш рабочий стол, выполните следующую команду: scp user@remote:/path/to/capture.pcap /path/to/local/folder где user – это имя пользователя на удаленном сервере, remote – это IP-адрес удаленного сервера, /path/to/capture.pcap – это путь к файлу захвата на удаленном сервере, а /path/to/local/folder – это путь к папке на вашем рабочем столе, куда вы хотите скопировать файл захвата. Анализ захваченного сеанса tcpdump с Wireshark Чтобы проанализировать захваченный сеанс tcpdump с помощью Wireshark, запустите Wireshark и выберите Файл>Открыть. Затем выберите файл захвата, который вы скопировали с удаленного сервера, и нажмите Открыть. Wireshark отобразит захваченные пакеты в удобочитаемой форме, позволяя вам анализировать сетевой трафик. Использование параметров командной строки для tcpdump Tcpdump имеет множество параметров командной строки, которые позволяют настраивать захват пакетов. Некоторые из наиболее полезных параметров перечислены ниже. tcpdump -w Сохранить захваченные пакеты в файл tcpdump -C Разбить файл захвата на несколько файлов определенного размера tcpdump -s Установить максимальный размер захватываемого пакета tcpdump -i Выбрать интерфейс для захвата пакетов tcpdump -list-interfaces Показать список доступных интерфейсов tcpdump -c Ограничить количество захватываемых пакетов tcpdump -n Отобразить IP-адреса в числовом формате tcpdump -v | -vv | -vvv Установить уровень подробности вывода tcpdump -F Использовать файл фильтра для захвата пакетов Использование фильтров захвата для tcpdump Tcpdump позволяет использовать фильтры для захвата только тех пакетов, которые соответствуют определенным критериям. Некоторые из наиболее полезных фильтров перечислены ниже. хозяин Захватывать только пакеты, отправленные или полученные от определенного хоста сеть Захватывать только пакеты, отправленные или полученные на определенной сети хост dst Захватывать только пакеты, отправленные на определенный хост Src Host Захватывать только пакеты, отправленные с определенного хоста порт Захватывать только пакеты, отправленные или полученные на определенном порту portrange Захватывать только пакеты, отправленные

  2. енном сервере Знание основных команд Linux Знание основных протоколов сети, таких как TCP, UDP, HTTP, DNS и т.д. Захват пакетов с помощью tcpdump Tcpdump – это утилита командной строки, которая позволяет захватывать и анализировать сетевой трафик. Чтобы начать захват пакетов, вам нужно выполнить следующую команду: tcpdump -i eth0 -w capture.pcap где eth0 – это имя интерфейса, на котором вы хотите захватить трафик, а capture.pcap – это имя файла, в который будут записаны захваченные пакеты. Копирование сеанса tcpdump для анализа Чтобы скопировать сеанс tcpdump на ваш рабочий стол, выполните следующую команду: scp user@remote:/path/to/capture.pcap /path/to/local/folder где user – это имя пользователя на удаленном сервере, remote – это IP-адрес удаленного сервера, /path/to/capture.pcap – это путь к файлу захвата на удаленном сервере, а /path/to/local/folder – это путь к папке на вашем рабочем столе, куда вы хотите скопировать файл захвата. Анализ захваченного сеанса tcpdump с Wireshark Чтобы проанализировать захваченный сеанс tcpdump с помощью Wireshark, запустите Wireshark и выберите Файл>Открыть. Затем выберите файл захвата, который вы скопировали с удаленного сервера, и нажмите Открыть. Wireshark отобразит захваченные пакеты в удобочитаемой форме, позволяя вам анализировать сетевой трафик. Использование параметров командной строки для tcpdump Tcpdump имеет множество параметров командной строки, которые позволяют настраивать захват пакетов. Некоторые из наиболее полезных параметров перечислены ниже. tcpdump -w Сохранить захваченные пакеты в файл tcpdump -C Разбить файл захвата на несколько файлов определенного размера tcpdump -s Установить максимальный размер захватываемого пакета tcpdump -i Выбрать интерфейс для захвата пакетов tcpdump -list-interfaces Показать список доступных интерфейсов tcpdump -c Ограничить количество захватываемых пакетов tcpdump -n Отобразить IP-адреса в числовом формате tcpdump -v | -vv | -vvv Установить уровень подробности вывода tcpdump -F Использовать файл фильтра для захвата пакетов Использование фильтров захвата для tcpdump Tcpdump позволяет использовать фильтры для захвата только тех пакетов, которые соответствуют определенным критериям. Некоторые из наиболее полезных фильтров перечислены ниже. хозяин Захватывать только пакеты, отправленные или полученные от определенного хоста сеть Захватывать только пакеты, отправленные или полученные на определенной сети хост dst Захватывать только пакеты, отправленные на определенный хост Src Host Захватывать только пакеты, отправленные с определенного хоста порт Захватывать только пакеты, отправленные или полученные на определенном порту portrange Захватывать только пакеты, отправленные

Comments are closed.