Область анализа сетевых пакетов обширна и может стать предметом целых курсов и книг. Этот урок познакомит с основами. Анализ пакетов включает захват и инспекцию данных, которые передаются по сети. Это важный навык для устранения неполадок в сети, настройки производительности и анализа безопасности. Изучая отдельные пакеты, вы можете получить глубокое представление о том, что происходит в вашей сети на низком уровне.
Популярные инструменты для анализа сетевых пакетов
Существует два чрезвычайно популярных инструмента для анализа сетевых пакетов: Wireshark и tcpdump. Оба являются мощными приложениями для анализа пакетов, которые сканируют ваши сетевые интерфейсы, захватывают активность пакетов и разбирают данные для инспекции. Они позволяют нам углубиться в тонкости сетевого анализа. Мы будем использовать tcpdump из-за его простоты в командной строке, но если вы планируете глубже изучить анализ сетевых пакетов, настоятельно рекомендуется изучить графический интерфейс Wireshark.
Установка tcpdump
В системах на базе Debian, таких как Ubuntu, вы можете установить tcpdump с помощью следующей команды:
sudo apt install tcpdump
Захват данных пакетов в реальном времени
Чтобы начать захват данных на определенном интерфейсе, используйте флаг -i, за которым следует имя интерфейса.
pete@icebox:~$ sudo tcpdump -i wlan0
tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола
прослушивание на wlan0, link-type EN10MB (Ethernet), размер захвата 65535 байт
11:28:23.958840 IP icebox.lan > nuq04s29-in-f4.1e100.net: ICMP echo request, id 1901, seq 2, length 64
11:28:23.970928 IP nuq04s29-in-f4.1e100.net > icebox.lan: ICMP echo reply, id 1901, seq 2, length 64
11:28:24.960464 IP icebox.lan > nuq04s29-in-f4.1e100.net: ICMP echo request, id 1901, seq 3, length 64
11:28:24.979299 IP nuq04s29-in-f4.1e100.net > icebox.lan: ICMP echo reply, id 1901, seq 3, length 64
11:28:25.961869 IP icebox.lan > nuq04s29-in-f4.1e100.net: ICMP echo request, id 1901, seq 4, length 64
11:28:25.976176 IP nuq04s29-in-f4.1e100.net > icebox.lan: ICMP echo reply, id 1901, seq 4, length 64
11:28:26.963667 IP icebox.lan > nuq04s29-in-f4.1e100.net: ICMP echo request, id 1901, seq 5, length 64
11:28:26.976137 IP nuq04s29-in-f4.1e100.net > icebox.lan: ICMP echo reply, id 1901, seq 5, length 64
11:28:30.674953 ARP, Request who-has 172.254.1.0 tell ThePickleParty.lan, length 28
11:28:31.190665 IP ThePickleParty.lan.51056 > 192.168.86.255.rfe: UDP, length 306
Вы заметите много активности при запуске захвата пакетов, что ожидаемо, учитывая постоянный фоновый сетевой трафик. Приведенный выше пример показывает фрагмент захвата, сделанного во время отправки ping-запроса на www.google.com.
Интерпретация вывода tcpdump
Давайте разберем строку из захвата:
11:28:23.958840 IP icebox.lan > nuq04s29-in-f4.1e100.net: ICMP echo request, id 1901, seq 2, length 64
- Метка времени: Первое поле (
11:28:23.958840) показывает, когда был захвачен пакет. - Протокол:
IPуказывает на протокол сетевого уровня. - Источник и назначение:
icebox.lan > nuq04s29-in-f4.1e100.netпоказывает происхождение и назначение пакета. - Специфичная для протокола информация: Остальная часть строки содержит детали, специфичные для протокола. Для этого ICMP-пакета:
seq: Порядковый номер пакета.length: Длина пакета в байтах.
Как видите, наша машина отправила ICMP-запрос и получила ICMP-ответ. Разные протоколы будут отображать разную информацию, поэтому обратитесь к man-странице для получения дополнительных сведений.
Сохранение захватов для последующего анализа
Вместо просмотра трафика в реальном времени вы можете сохранить захват в файл, используя флаг -w. Это полезно для более глубокого, автономного анализа пакетов.
sudo tcpdump -w /some/file.pcap
Мы лишь поверхностно рассмотрели анализ пакетов. Есть еще много чего, что можно изучить, включая расширенную фильтрацию и просмотр содержимого пакетов в шестнадцатеричном и ASCII форматах. Бесчисленное множество онлайн-ресурсов помогут вам освоить инструменты анализа сетевых пакетов, и мы призываем вас продолжить свое обучение.