🕵️ tcpdump: Секретный агент, который видит всё
Кратко: tcpdump — легендарный сетевой сниффер из командной строки. Он перехватывает пакеты и показывает, кто с кем и о чём говорит в сети. Это первая линия обороны сисадмина, когда "интернет пропал, а логи молчат". Создан в 1988 году в Беркли, сегодня — золотой стандарт диагностики.
▫️ Как это работает tcpdump копирует пакеты прямо из драйвера сетевой карты. Он не блокирует и не меняет трафик, только смотрит. Работает через терминал, требует прав root. Использует библиотеку libpcap — ту же, что и Wireshark.
▫️ Джентльменский набор опций Синтаксис: tcpdump [options] [expression] · -i — интерфейс для прослушки (eth0, wlan0). tcpdump -D покажет все доступные. · -w — сохранить в файл: tcpdump -w dump.pcap. · -r — прочитать файл: tcpdump -r dump.pcap. · -c — остановиться после N пакетов: tcpdump -c 100. · -n — не преобразовывать IP в имена (работает быстрее). -nn — ещё и порты не трогать. · -s — размер захватываемого куска. -s 0 — весь пакет целиком. · -A — показать текст пакета (ASCII). · -v / -vv / -vvv — подробнее, ещё подробнее, очень подробно.
▫️ Магия фильтрации Фильтры BPF — главная сила tcpdump. Отсекают лишнее на лету. · По хосту: tcpdump host 192.168.1.10 · По сети: tcpdump net 192.168.1.0/24 · По порту: tcpdump port 443 · По протоколу: tcpdump tcp, tcpdump udp, tcpdump icmp · Комбинации: tcpdump src 10.0.0.1 and dst port 22
▫️ Примеры на каждый день Пинг с другого компьютера:
Увидите каждый echo-запрос и ответ. tcpdump -i eth0 icmp and host 192.168.1.1.
Кто ломится в SSH: tcpdump -i eth0 port 22
Не дать DNS-запросам утонуть: tcpdump -i eth0 port 53
Поймать подозрительный HTTP: tcpdump -i eth0 -A port 80 | grep "Host:" \ Сохранить лог переговоров с конкретным IP: tcpdump -i eth0 host 8.8.8.8 -w google.pcap
▫️ Реальный боевой сценарий Сайт тормозит. Достаём ноутбук, лезем на сервер:
sudo tcpdump -i eth0 port 80 -A -c 500 -w fail.pcap
Через минуту открываем файл в Wireshark (или смотрим -A) и видим кучу повторяющихся SYN без ACK — кто-то пытается положить сервер SYN-флудом.
▫️ Лайфхаки · Не слушайте всё подряд: tcpdump -i eth0 без фильтров на busy-сервере мгновенно зальёт консоль терабайтами мусора. · Используйте -c: всегда ставьте лимит, если не уверены в объёме трафика. · Сочетайте с grep: tcpdump -A -c 1000 | grep "Password" — страшно, но эффективно для отладки (в своих целях!). · Читайте из файла так же, как с живого интерфейса: те же фильтры, тот же -A, только без -i.
▫️ Культурный феномен tcpdump — это «изолента и скотч» сетевого инженера. Он есть на каждом сервере, не требует установки GUI и работает даже на сломанной системе, где всё остальное уже упало. Знание tcpdump — обязательный ритуал посвящения в системные администраторы.