Как использовать tcpdump и 6 примеров

Как использовать tcpdump и 6 примеров

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





В этой статье мы подробно обсудим команду tcpdump, а также некоторые руководства по установке и использованию tcpdump в вашей системе Linux.





Что такое команда tcpdump?

Tcpdump это мощный инструмент мониторинга сети, который позволяет пользователю эффективно фильтровать пакеты и трафик в сети. Вы можете получить подробную информацию о TCP / IP и пакетах, передаваемых в вашей сети. Tcpdump - это утилита командной строки, что означает, что вы можете запускать ее на серверах Linux без дисплея.





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

Как установить tcpdump в Linux

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



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

which tcpdump

Если в выходных данных отображается путь к каталогу ( / usr / bin / tcpdump ), то в вашей системе установлен пакет. Однако, если нет, вы можете легко сделать это с помощью диспетчера пакетов по умолчанию в вашей системе.





Чтобы установить tcpdump в дистрибутивах на основе Debian, таких как Ubuntu:

sudo apt-get install tcpdump

Установить tcpdump на CentOS тоже просто.





sudo yum install tcpdump

В дистрибутивах на основе Arch:

sudo pacman -S tcpdump

Для установки в Fedora:

sudo dnf install tcpdump

Обратите внимание, что для пакета tcpdump требуется libcap как зависимость, поэтому убедитесь, что вы также установили его в своей системе.

Примеры tcpdump для захвата сетевых пакетов в Linux

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

1. Список всех сетевых интерфейсов

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

tcpdump -D

Прохождение --list-interfaces flag в качестве аргумента вернет тот же результат.

tcpdump --list-interfaces

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

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

tcpdump --interface any

Система отобразит следующий вывод.

скачать любое видео с любого сайта онлайн бесплатно

Связанный: Что такое модель взаимодействия открытых систем?

2. Формат вывода tcpdump

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

17:00:25.369138 wlp0s20f3 Out IP localsystem.40310 > kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 117964079 ecr 816509256], length 33

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

Вывод содержит следующую информацию.

  1. Отметка времени полученного пакета
  2. Имя интерфейса
  3. Поток пакетов
  4. Название сетевого протокола
  5. IP-адрес и сведения о порте
  6. Флаги TCP
  7. Порядковый номер данных в пакете
  8. Подтвержденные данные
  9. Размер окна
  10. Длина пакета

Первое поле ( 17: 00: 25.369138 ) отображает отметку времени, когда ваша система отправила или получила пакет. Записанное время извлекается из местного времени вашей системы.

система, использующая 100% диска

Второе и третье поля обозначают используемый интерфейс и поток пакета. В приведенном выше фрагменте wlp0s20f3 это имя беспроводного интерфейса и Из поток пакетов.

Четвертое поле включает информацию, относящуюся к имени сетевого протокола. Как правило, вы найдете два протокола: IP а также IP6 , где IP означает IPV4, а IP6 - для IPV6.

Следующее поле содержит IP-адреса или имя исходной и целевой системы. За IP-адресами следует номер порта.

Шестое поле вывода состоит из флагов TCP. В выводе tcpdump используются различные флаги.

Название флагаЦенитьОписание
ЗРЕНИЕSПодключение началось
КОНЕЦFПодключение завершено
ТОЛКАТЬпДанные отправлены
RSTрСоединение сброшено
УВЫ.Подтверждение

Вывод также может содержать комбинацию нескольких флагов TCP. Например, ФЛАГ [f.] означает пакет FIN-ACK.

Двигаясь дальше в выходном фрагменте, следующее поле содержит порядковый номер ( seq 196: 568 ) данных в пакете. Первый пакет всегда имеет положительное целочисленное значение, а последующие пакеты используют относительный порядковый номер для улучшения потока данных.

Следующее поле содержит номер подтверждения ( подтверждение 1 ) или простой номер Ack. Пакет, захваченный на машине отправителя, имеет номер подтверждения 1. На стороне получателя номер Ack - это значение следующего пакета.

Девятое поле вывода соответствует размеру окна ( выиграть 309 ), который представляет собой количество байтов, доступных в приемном буфере. Есть несколько других полей, которые следуют за размером окна, включая максимальный размер сегмента (MSS).

Последнее поле ( длина 33 ) содержит длину всего пакета, захваченного tcpdump.

3. Ограничьте количество перехваченных пакетов.

При первом запуске команды tcpdump вы можете заметить, что система продолжает захватывать сетевые пакеты, пока вы не передадите сигнал прерывания. Вы можете переопределить это поведение по умолчанию, указав количество пакетов, которые вы хотите захватить заранее, используя -c флаг.

tcpdump --interface any -c 10

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

4. Фильтрация пакетов по полям.

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

Чтобы перехватить только TCP-пакеты, введите:

tcpdump --interface any -c 5 tcp

Точно так же, если вы хотите отфильтровать вывод по номеру порта:

tcpdump --interface any -c 5 port 50

Вышеупомянутая команда будет получать только пакеты, переданные через указанный порт.

Чтобы получить подробную информацию о пакете для определенного хоста:

tcpdump --interface any -c 5 host 112.123.13.145

Если вы хотите отфильтровать пакеты, отправленные или полученные конкретным хостом, используйте src или так далее аргумент с командой.

tcpdump --interface any -c 5 src 112.123.13.145
tcpdump --interface any -c 5 dst 112.123.13.145

Вы также можете использовать логические операторы а также а также или для объединения двух или более выражений вместе. Например, чтобы получить пакеты, принадлежащие исходному IP 112.123.13.145 и использовать порт 80 :

tcpdump --interface any -c 10 src 112.123.13.145 and port 80

Сложные выражения можно сгруппировать с помощью скобки следующее:

tcpdump --interface any -c 10 '(src 112.123.13.145 or src 234.231.23.234) and (port 45 or port 80)'

5. Просмотрите содержимое пакета.

Вы можете использовать а также -Икс flags с помощью команды tcpdump для анализа содержимого сетевого пакета. В флаг означает ASCII формат и -Икс обозначает шестнадцатеричный формат.

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

tcpdump --interface any -c 1 -A
tcpdump --interface any -c 1 -x

По теме: Что такое потеря пакетов и как устранить ее причину?

6. Сохраните данные захвата в файл.

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

tcpdump --interface any -c 10 -w data.pcap

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

tcpdump --interface any -c 10 -w data.pcap -v

Чтобы прочитать .pcap файл с помощью tcpdump, используйте флаг, за которым следует путь к файлу. В означает Читать .

Почему у меня не работает мгновенное видео на Amazon Prime?
tcpdump -r data.pcap

Вы также можете фильтровать сетевые пакеты из пакетных данных, сохраненных в файле.

tcpdump -r data.pcap port 80

Мониторинг сетевого трафика в Linux

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

Но перед этим ваше устройство должно быть подключено к Интернету. Для новичков в Linux даже подключение к Wi-Fi через командную строку может быть немного сложной задачей. Но если вы используете правильные инструменты, это совсем несложно.

Делиться Делиться Твитнуть Эл. адрес Как подключиться к Wi-Fi через терминал Linux с Nmcli

Хотите подключиться к сети Wi-Fi через командную строку Linux? Вот что вам нужно знать о команде nmcli.

Читать далее
Похожие темы
  • Linux
  • Безопасность
  • Сетевая криминалистика
Об авторе Дипеш Шарма(Опубликовано 79 статей)

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

Ещё от Deepesh Sharma

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться