Работаем с tcpdump

Tcpdump считается базовым инструментом для всех, кто так или иначе работает с безопасностью компьютерных сетей. Считается, что умение работать с Tcpdump позволяет хорошо понять принципы работы стека протоколов TCP/IP на практике (в отличие от высокоуровневых снифферов, таких как Wireshark).
Для гибкого отбора нужно трафика, в Tcpdump используются комбинированные выражения. Механизм выражений делает Tcpdump мощным и гибким средством для “узнать что-то о трафике”.
Tcpdump-выражения разделяются на 3 вида – type, dir и proto. Есть также 3 типа опций фильтрации – по сети, порту и хосту. Из протоколов для отбора трафика по ним возможно указать tcp, icmp или udp.
Рассмотрим некоторые типичные кейсы использования Tcpdump.
Чтобы запустить Tcpdump, требуется обладать правами суперпользователя.
Посмотреть сетевую активность на всех адаптерах:
tcpdump -i anyТрафик по интерфейсу eth0:
tcpdump -i eth0Весь входящий и исходящий трафик для IP-адреса (в нашем случае 244.199.168.192) можно изучить по команде:
tcpdump host 244.199.168.192Следующая команда выводит содержимое в “сыром” виде – без разрешения адресов, в 16-ричном виде отображения данных пакетов:
tcpdump -nnvXSs 0 -c1 icmpМожно отбирать трафик на основании адресов отправителя (1) или получателя (2):
tcpdump src 244.199.168.192 tcpdump dst 157.61.159.49Tcpdump может “отловить” все пакеты в рамках одной подсети по ее маске, с помощью опции net (также доступны комбинации с использованием dst или src:
tcpdump net 244.199.168.0/24Применяя опцию port, можно фильтровать трафик по номеру порта соответственно:
tcpdump port 3389Чтобы увидеть пакеты определенного протокола (tcp, udp, icmp), применяется следующая команда:
tcpdump icmpТак, можно отобрать пакеты, идущие по протоколу IPv6:
tcpdump ip6либо по диапазону портов:
tcpdump portrange 21-23Фильтр всех пакетов по размеру (меньше-больше-равно):
tcpdump less 32 tcpdump greater 64 tcpdump <= 128Для анализа сторонними приложениями, либо отложенного изучения сетевой активность, сетевой трафик, отобранный tcpdump, может быть записан в файл формата PCAP:
tcpdump port 80 -w dump_fileЗаписанный таким образом файл с дампом трафика можно снова загрузить в tcpdump и применять все описанные выше выражения и правила для анализа пакетов, как если бы вместо файла был просто сетевой интерфейс:
tcpdump -r dump_fileХотите уверенно освоить tcpdump и множество других инструментов для работы с сетями TCP/IP? Мы ждем вас на курсе “L2-Security. Безопасность в Linux“!