Как захватывать и анализировать пакеты на примере Tcpdump

Kak Zahvatyvat I Analizirovat Pakety Na Primere Tcpdump



Tcpdump — мощный инструмент сетевого анализа, который используется для анализа сетевого трафика в системах Linux и macOS. Сетевые администраторы используют tcpdump для анализа сети, захвата и анализа пакетов TCP/IP. Он использует библиотеку libpcap, которая помогает эффективно захватывать сетевой трафик. Кроме того, tcpdump помогает устранять неполадки в сети и периодически контролировать сетевую активность. Этот инструмент сохраняет собранные данные в файле «pcap». Эти файлы дополнительно анализируются с помощью инструмента анализатора пакетов TCP/IP, такого как Wireshark, или другого инструмента командной строки.

В этом руководстве мы покажем, как установить tcpdump в системе Linux и как захватывать и анализировать пакеты TCP/IP с помощью tcpdump.

Как установить TCPDump

Tcpdump предустановлен во многих дистрибутивах Linux. Но если он еще не установлен в вашей системе, вы можете установить tcpdump в своей системе Linux. Чтобы установить tcpdump в системе Ubuntu 22.04, используйте следующую команду:







$ sudo apt установить tcpdump

Чтобы установить tcpdump в Fedora/CentOS, используйте следующую команду:



$ sudo dnf установить tcpdump

Как перехватить пакеты с помощью команды Tcpdump

Чтобы перехватить пакеты с помощью tcpdump, запустите терминал с привилегиями sudo, используя «Ctrl+Alt+t». Этот инструмент включает в себя различные параметры и фильтры для захвата пакетов TCP/IP. Если вы хотите перехватить все текущие пакеты текущего сетевого интерфейса или сетевого интерфейса по умолчанию, используйте команду «tcpdump» без каких-либо опций.



$ судо tcpdump

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





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



Давайте разберемся с выводом.

Tcpdump позволяет анализировать заголовки пакетов TCP/IP. Для каждого пакета отображается одна строка, и команда продолжает выполняться до тех пор, пока вы не нажмете «Ctrl+C», чтобы остановить ее.

Каждая строка, предоставленная tcpdump, содержит следующую информацию:

  • Временная метка Unix (например, 02:28:57.839523)
  • Протокол (IP)
  • Исходное имя хоста или IP-адрес и номер порта
  • Имя хоста назначения или IP-адрес и номер порта
  • Флаги TCP (например, флаги [F.]), указывающие состояние соединения со значениями, такими как S (SYN), F (FIN). (ACK), P (PUSH), R (RST)
  • Порядковый номер данных в пакете (например, seq 5829:6820).
  • Номер подтверждения (например, ack 1016)
  • Размер окна (например, win 65535), представляющий доступные байты в приемном буфере, за которыми следуют параметры TCP.
  • Длина полезных данных (например, длина 991).

Чтобы вывести список всех сетевых интерфейсов вашей системы, используйте команду «tcpdump» с опцией «-D».

$ sudo tcpdump -D

или

$ tcpdump --list-интерфейсы

Эта команда перечисляет все сетевые интерфейсы, которые подключены или работают в вашей системе Linux.

Захват пакетов указанного сетевого интерфейса

Если вы хотите перехватывать пакеты TCP/IP, проходящие через определенный интерфейс, используйте флаг «-i» с командой «tcpdump» и укажите имя сетевого интерфейса.

$ sudo tcpdump -я ло

Данная команда захватывает трафик на интерфейсе «lo». Если вы хотите отобразить подробную или подробную информацию о пакете, используйте флаг «-v». Чтобы распечатать более подробную информацию, используйте флаг «-vv» с командой «tcpdump». Регулярное использование и анализ способствуют поддержанию надежной и безопасной сетевой среды.

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

$ sudo tcpdump -i любой

Захват пакетов с использованием определенного порта

Вы можете перехватывать и фильтровать пакеты, указав имя интерфейса и номер порта. Например, чтобы перехватить сетевые пакеты, проходящие через интерфейс «enp0s3» через порт 22, используйте следующую команду:

$ tcpdump -i enp0s3 порт 22

Предыдущая команда перехватывает все пакеты, поступающие с интерфейса «enp0s3».

Захват ограниченных пакетов с помощью Tcpdump

Вы можете использовать флаг «-c» с командой «tcpdump» для захвата указанного количества пакетов. Например, чтобы перехватить четыре пакета на интерфейсе «enp0s3», используйте следующую команду:

$ tcpdump -i enp0s3 -c 4

Замените имя интерфейса, используя вашу систему.

Полезные команды Tcpdump для захвата сетевого трафика

Ниже мы перечислили некоторые полезные команды «tcpdump», которые помогут вам эффективно перехватывать и фильтровать сетевой трафик или пакеты:

Используя команду «tcpdump», вы можете перехватывать пакеты интерфейса с определенным IP-адресом назначения или IP-адресом источника.

$ tcpdump -i {имя-интерфейса} dst {IP-адрес назначения}

Вы можете захватывать пакеты с размером снимка 65535 байт, который отличается от размера по умолчанию 262144 байт. В более старых версиях tcpdump размер захвата был ограничен 68 или 96 байтами.

$ tcpdump -i enp0s3 -s 65535

Как сохранить захваченные пакеты в файл

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

$ tcpdump -i <имя-интерфейса> -s 65535 -w <имя-файла>.pcap

Например, у нас есть интерфейс «enps03». Сохраните полученные данные в следующий файл:

$ sudo tcpdump -i enps03 -w dump.pcap

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

Заключение

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