tcpdump

Руководство по утилите анализа сетевого трафика TCPDUMP

Руководство по утилите анализа сетевого трафика TCPDUMP

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

Он является родным для Linux, поэтому большинство дистрибутивов Linux устанавливают его как часть стандартной ОС. Tcpdump - это программа с интерфейсом libpcap, которая представляет собой библиотеку для захвата сетевых датаграмм.

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

Установка tcpdump

Установка tcpdump по умолчанию в вашем дистрибутиве зависит от параметров, выбранных в процессе установки. В случае выборочной установки возможно, что пакет недоступен. Вы можете проверить установку tcpdump, используя dpkg команда с «-s" вариант.

ubuntu $ ubuntu: ~ $ dpkg -s tcpdump

Или используйте команду «sudo apt-get install tcpdump» для установки tcpdump в Ubuntu Linux.

Захват пакетов в Tcpdump:

Чтобы начать процесс захвата, нам сначала нужно найти наш рабочий интерфейс, используя значок «ifconfigКоманда. Или мы можем перечислить все доступные интерфейсы, используя tcpdump команда с «-D" вариант.

ubuntu $ ubuntu: ~ $ tcpdump -D

Чтобы начать процесс захвата, вы можете использовать синтаксис;

tcpdump [-options] [выражение]

Например, в приведенной ниже команде мы используем «»Возможность захвата трафика на«enp0s3»Интерфейс с«-c», Чтобы ограничить количество перехваченных пакетов и написать«"Это к test_capture.pcap файл.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -c 20 -w / tmp / test_capture.pcap

Точно так же вы можете использовать различные комбинации фильтров для изоляции трафика в соответствии с вашими требованиями. Один из таких примеров включает в себя захват сетевых данных, исходящих и поступающих на хост, используя хозяин команда для конкретного порт. Кроме того, я использовал «-п», Чтобы tcpdump не перехватывал запросы DNS. Этот флаг очень полезен для насыщения трафика при устранении неполадок в сети.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -c 20 хост 10.0.2.15 и порт dst 80 -w / tmp / test_capture1.pcap
tcpdump: прослушивание enp0s3, тип канала EN10MB (Ethernet), размер захвата 262144 байта
20 пакетов захвачено
21 пакет получен фильтром
0 пакетов отброшено ядром

Мы используем "а также», Чтобы захватывать только пакеты, содержащие хост 10.0.2.15 и порт назначения 80. Точно так же можно применять различные другие фильтры, чтобы упростить устранение неполадок.

Если вы не хотите использовать значок «-c”Флаг для ограничения трафика захвата, вы можете использовать сигнал прерывания, i.е., Ctrl + C, остановить процесс изоляции.

Чтение файлов Tcpdump

Чтение захваченных файлов tcpdump может быть утомительным. По умолчанию tcp назначает имена IP-адресам и портам. Мы будем использовать «»Флаг для чтения нашего уже захваченного файла test_capture.pcap сохранено в / tmp папка. Мы направим вывод в awk команда, чтобы вывести только исходный IP-адрес и порты и передать их команде глава для отображения только первых 5 записей.

ubuntu $ ubuntu: ~ $ sudo tcpdump -r / tmp / test_capture1.pcap | awk -F «» 'print $ 3' | голова -5
чтение из файла / tmp / test_capture.pcap, линк-тип EN10MB (Ethernet)
IP убунту.53298
IP убунту.53298
IP убунту.53298
IP убунту.53298
IP убунту.53298

Однако рекомендуется использовать IP-адреса и порты в цифрах для решения сетевых проблем. Мы отключим разрешение IP-имен с помощью «-п»Флаг и названия портов с«-nn«.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -n
tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола
прослушивание enp0s3, тип канала EN10MB (Ethernet), размер захвата 262144 байта
20:08:22.146354 IP 10.0.2.15.54080> 172.67.39.148.443: Флаги [P.], seq 1276027591: 1276027630, ack 544039114, win 63900, длина 39
20:08:22.146745 IP 10.0.2.15.43456> 54.204.39.132.443: Флаги [P.], seq 3381018839: 3381018885, ack 543136109, win 65535, длина 46
20:08:22.147506 IP 172.67.39.148.443> 10.0.2.15.54080: Флаги [.], ack 39, win 65535, длина 0
20:08:22.147510 IP 54.204.39.132.443> 10.0.2.15.43456: Флаги [.], ack 46, win 65535, длина 0
20:08:22.202346 IP 216.58.209.142.443> 10.0.2.15.41050: Флаги [P.], seq 502925703: 502925826, ack 1203118935, win 65535, длина 123
20:08:22.202868 IP 10.0.2.15.41050> 216.58.209.142.443: Флаги [P.], seq 1:40, ack 123, win 65535, длина 39

Понимание захваченного вывода

Tcpdump захватывает множество протоколов, включая UDP, TCP, ICMP и т. Д. Здесь непросто охватить их все. Однако важно понимать, как отображается информация и какие параметры она включает.

Tcpdump отображает каждый пакет в строке с меткой времени и информацией о протоколе. Обычно формат протокола TCP следующий:

. > .: , , , , ,

Поясним одно из полей захваченного пакета по полям:

20:08:22.146354 IP 10.0.2.15.54080> 172.67.39.148.443: Флаги [P.], seq 1276027591: 1276027630, ack 544039114, win 63900, длина 39
  • 20:08:22.146354: отметка времени захваченного пакета
  • IP: протокол сетевого уровня.
  • 10.0.2.15.54080: это поле содержит исходный IP-адрес и исходный порт.
  • 172.67.39.148.443: это поле представляет собой IP-адрес назначения и номер порта.
  • Флаги [P.] /: Флаги представляют состояние подключения. В этом случае [P.] указывает на пакет подтверждения PUSH. Поле флага также включает некоторые другие значения, например:
    1. S: SYN
    2. P: НАЖАТЬ
    3. [.]: ACK
    4. F: FIN
    5. [S.]: SYN_ACK
    6. R: RST
  • seq 1276027591: 1276027630: порядковый номер в первом: последнем формате обозначает количество данных в пакете. За исключением первого пакета, где числа указаны в абсолютном значении, последующие пакеты имеют относительные числа. В данном случае числа здесь означают, что пакет содержит байты данных от 1276027591 до 1276027630.
  • ack 544039114: Номер подтверждения отображает следующий ожидаемый порядковый номер данных.
  • win 63900: размер окна показывает количество доступных байтов в полученном буфере.
  • length 39: Длина данных полезной нагрузки в байтах.

Расширенные фильтры

Теперь мы можем использовать некоторые расширенные параметры фильтра заголовков для отображения и анализа только пакетов данных. В любом пакете TCP флаги TCP начинаются с 14-го байта, так что PSH и ACK представлены 4-м и 5-м битами.

Мы можем использовать эту информацию, включив эти биты 00011000 или 24 для отображения пакетов данных только с флагами PSH и ACK. Мы передаем это число в tcpdump с помощью фильтра «tcp [13] = 24«, Обратите внимание, что индекс массива в TCP начинается с нуля.

Мы отфильтруем этот пакет из нашего text_capture.pcap файл и используйте возможность отобразить для вас всю информацию о пакете.

Точно так же вы можете отфильтровать некоторые другие пакеты флагов, используя «Tcp [13] = 8» и «tcp [13] = 2» только для флагов PSH и SYN и т. д.

ubuntu $ ubuntu: ~ $ sudo tcpdump -A 'tcp [13] = 24' -r / tmp / test_capture.pcap
чтение из файла / tmp / test_capture.pcap, линк-тип EN10MB (Ethernet)
19:26:17.827902 IP убунту.53298> 32.121.122.34.до н.э.googleusercontent.ком.http: Флаги [P.], seq 4286571276: 4286571363, ack 252096002, win 64240, длина 87: HTTP: GET / HTTP / 1.1
E…:?@.@.Икс.
… "Зы .2.П… П… GET / HTTP / 1.1
Хост: проверка подключения.убунту.ком
Принимать: */*
Подключение: закрыть

Заключение

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

Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...
WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...
Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...