uz
KA
июня 23, 2025
Обновлено июня 23, 2025

Tcpdump + Wireshark: анализ и перехват трафика

Linux Windows Сети

При работе со множеством различных устройств в инфраструктуре необходимо обеспечить их корректное и безопасное функционирование. Одним из источников потенциальных угроз является сетевой трафик, как внешний, так и внутренний. Без должных систем анализа и его мониторинга многие атаки или же проблемы в работе системы могут остаться незамеченными или нанести существенный ущерб, при работе!

В данном материале, мы рассмотрим, как собрать и более эффективно проанализировать сетевой трафик на машине с использованием связки инструментов tcpdump + wireshark на Linux и Windows.

Как происходит перехват трафика?

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

 Схема работы
Скриншот №1 — Схема работы

А Wireshark в данной связке может дополнительно их проанализировать и выдать аналитику по каждому из, а также предоставит удобную панель для поиска и фильтрации необходимых соединений!

Сбор и аналитика сетевого трафика

Определимся со схемой нашей инфраструктуры и машинами, с которых будем перехватывать соединение:

  • Для сетей, в которых необходим сбор с серверов будем tcpdump, он позволит сформировать файл формата pcap и передать его на рабочую машину, где установлен Wireshark для аналитики;
  • Если мы собираем трафик с рабочей машины пользователя, то можем сразу провести аналитику на ней с использованием только Wireshark.
    Нам понадобится, только стандартный набор пакетов дистрибутива и дополнительно установленные tcpdump, Wireshark.
Для аналитики с рабочих станций используйте Wireshark, а для серверов tcpdump!

В большинстве случаев он уже есть, однако, установить можно командой Linux для deb-подобных систем:

apt update && apt install tcpdump wireshark -y

Для rpm-подобных решений, команда будет выглядеть так:

dnf install tcpdump wireshark -y

Рассмотрим основные возможности и примеры использования tcpdump : фильтры, опции и режимы работы. Определим пул интерфейсов:

ip a
Список интерфейсов
Скриншот №2 — Список интерфейсов

Для того, чтобы перехватывать трафик с конкретного интерфейса укажем опцию -i:

sudo tcpdump -i enp0s5
Сырой трафик
Скриншот №3 — Сырой трафик

Трафика много и вывод на экране будет так же объемным, поэтому в таком виде проанализировать почти ничего не возможно. Укажем опцией -w файл, в который будем производить запись, а так же фильтры для поиска конкретного соединения:

  • port — Фильтрация по порту (например, port 80);
  • host — Фильтрация по IP-адресу или имени хоста (например, host 192.168.1.1);
  • src — Фильтрация по исходному адресу (например, src 192.168.1.1);
  • dst — Фильтрация по целевому адресу (например, dst 192.168.1.2);
  • tcp — Фильтрация пакетов по протоколу TCP;
  • udp — Фильтрация пакетов по протоколу UDP;
  • icmp — Фильтрация пакетов по протоколу ICMP.

Все эти фильтры должны быть связаны операторами:

  • AND;
  • OR;
  • NOT.

К примеру, мне интересно мое соединение по SSH, следовательно, команда будет выглядеть так:

tcpdump -i enp0s5 host <my-ip> tcp port 22
Захват трафика с фильтрами
Скриншот №4 — Захват трафика с фильтрами

Вместо тысячи пакетов уже несколько! Но иногда для анализа картины нужен весь трафик поэтому пишем его со всех интерфейсов командой с опцией -i any, где any это псевдоинтерфейс, который слушает трафик со всех источников. Чтобы на этой же машине просмотреть записанный трафик откроем через команду:

tcpdump -r /путь-к-файлу
Чтение трафика из файла в tcpdump
Скриншот №5 — Чтение трафика из файла в tcpdump

Затем можем его открыть через WireShark, передав файл на основное устройство:

Трафик в Wireshark
Скриншот №6 — Трафик в Wireshark

Фильтры на Wireshark имеют такую же логику фильтрации, где мы указываем:

((!(ip.addr == 46.191.184.42)) && !(ip.addr == 172.23.0.2)) && !(ip.addr == 172.23.0.3)

Важно, чтобы каждое из выражений было в отдельных скобках! Чтобы просмотреть полезную нагрузку в Wireshark выберите нужный пакет, а для tcpdump, при его чтении добавьте опцию -A:

tcpdump -A -r /путь-к-файлу
Чтение полезной нагрузки
Скриншот №7 — Чтение полезной нагрузки

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

При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:

Создание сервераСкриншот №8 — Создание сервера

Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...