В этом руководстве мы покажем, как установить 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 и других инструментов сетевого анализа.