tcpdump – анализ трафика

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

Синтаксис:
tcpdump [опции] [выражение фильтра]
– Опции управляют поведением утилиты: каким образом отображать данные, сколько пакетов захватывать и т.д.
– Фильтр задаёт, какие именно пакеты нужно перехватывать (по IP-адресу, порту, протоколу и т.п.)

Основные опции:

ОпцииОписание
-i <интерфейс>указание сетевого интерфейса (например, eth0, wlan0)
-nне разрешать IP-адреса в доменные имена (ускоряет работу)
-nnне разрешать ни IP, ни номера портов (показывает “как есть”)
-v, -vv, -vvvуровень подробности вывода
-c <кол-во>захватить только указанное число пакетов
-w <файл>Сохраняет захваченные пакеты в файл для последующего анализа (например, с Wireshark)
-r <файл>Читать пакеты из файла (например, ранее сохранённого через -w)

Фильтры

ЗначениеОписание
port <номер>Фильтр по порту
host <IP/домен>Фильтр по IP-адресу или домену
src <IP> / dst <IP>Фильтр по исходному или целевому IP
tcp, udp, icmpФильтрация по протоколу
net <сеть>Фильтрация по сети, например 192.168.0.0/24
and, or, notЛогические операторы для составных фильтров

Вывод tcpdump

Пример строки:
15:32:10.123456 IP 192.168.1.5.54321 > 10.0.0.5.22: Flags [S], seq 123456789, win 65535, length 0

Разбор по частям:

15:32:10.123456Время получения пакета (часы:минуты:секунды.микросекунды)
IPПротокол уровня 3 — здесь IPv4 (бывает ещё ARP, ICMP, IP6)
192.168.1.5.54321Источник: IP + порт
>Направление — “откуда → куда”
10.0.0.5.22Назначение: IP + порт (22 = SSH)
Flags [S]TCP-флаги: тут SYN — начало соединения
seq 123456789Порядковый номер первого байта (TCP sequence number)
win 65535Размер TCP-окна (window size) — влияет на производительность
length 0Длина полезной нагрузки в байтах (0 — только заголовок)

Основные TCP-флаги (Flags):

ФлагОбозначениеОписание
SSYNЗапрос на установку соединения
S.SYN-ACKОтвет на SYN
.ACKПодтверждение
PPUSHДанные нужно немедленно передать (например, HTTP)
FFINЗавершение соединения
RRSTОбрыв соединения (reset)

Пример установки соединения:
IP 192.168.1.5.54321 > 10.0.0.5.22: Flags [S], …
IP 10.0.0.5.22 > 192.168.1.5.54321: Flags [S.], …
IP 192.168.1.5.54321 > 10.0.0.5.22: Flags [.], …

Первая строка: клиент стучится (SYN)
Вторая: сервер отвечает (SYN-ACK)
Третья: клиент подтверждает (ACK)

Пример отказа (порт закрыт):
IP 192.168.1.5.54321 > 10.0.0.5.22: Flags [S], …
Нет ответа — значит либо фильтр (фаерволл), либо сервер недоступен.

Прокрутить вверх