Шпаргалка по использованию tcpdump


Приложение tcpdump позволяет наблюдать за всеми сетевыми запросами, которые приходят на компьютер или исходят от него. Это очень полезная утилита и будет полезно знать основные команды. В данной инструкции мы рассмотрим некоторые примеры по работе с tcpdump в системе на базе Linux.
Установка приложения
По умолчанию, в нашей системе нет tcpdump. Установка в зависимости от дистрибутива Linux выполняется немного по-разному.
а) Для Rocky Linux / CentOS:
yum install tcpdump
б) Для Ubuntu / Debian:
apt install tcpdump
Использование tcpdump
Приложение обладает большими возможностями. Мы рассмотрим те, которые чаще всего применяются.
1. Сетевой интерфейс.
Мы можем ограничить вывод для конкретного сетевого интерфейса с помощью опции i:
tcpdump -i eth0
* в данном примере мы ограничиваем вывод для интерфейса eth0.
2. Указать источник запроса.
С помощью опции src мы можем учитывать запросы, которые пришли с определенного IP-адреса, например:
tcpdump src 94.19.179.142
* в данном примере мы увидим запросы только с адреса 94.19.179.142.
3. Указать назначение.
По аналогии с опцией src, опция dst позволяет ограничить запросы, которые отправляются нашим сервером на конкретный адрес:
tcpdump dst 94.19.179.142
* тут мы увидим только те обращения, которые идут в сторону 94.19.179.142.
4. Указать порт.
а) Один из наиболее используемых фильтров в tcpdump. Нет смысла видеть другие запросы, если нам нужны только те, которые обращаются к конкретному порту:
tcpdump port 80
* в нашем примере мы увидим только те, которые используют порт 80.
б) Также можно ограничить запросы на входящий порт или исходящий:
tcpdump dst port 80
tcpdump src port 80
* где dst port — все запросы на компьютер по указанному порту; src port — все исходящие запросы на указанный порт.
в) Диапазон портов может быть указан с помощью параметра portrange:
tcpdump portrange 60000-65000
* будут сканироваться все запросы по портам от 60000 до 65000.
5. Исключающее правило.
С помощью not мы можем создавать исключающие фильтры. Например:
tcpdump port not 22
... позволит сканировать все порты, кроме 22.
6. Несколько правил.
Мы можем применить несколько фильтром. Для этого мы используем логические операторы and или or, например:
tcpdump src 94.19.179.142 and port not 22
* в данном случае мы увидим все запросы с адреса 94.19.179.142, которые приходят на порт 22.
7. Сохранить результаты в файл.
tcpdump собирает очень много информации о запросах, но выводит на экране лишь небольшую часть. Для детального разбора, данные сохраняют в файл и после его открывают в специальных программах, например, Wireshark.
Чтобы сохранить результаты анализа, используем опцию -w, например:
tcpdump src 192.168.0.20 -w /tmp/tcpdump.cap
* после того, как мы прервем работу tcpdump мы можем использовать файл /tmp/tcpdump.cap.
Возможные ошибки
tcpdump: NFLOG link-layer type filtering not implemented.
Данная ошибка появляется при наличии нескольких сетевых интерфейсов. Чтобы решить проблему, ограничим запросы с помощью опции i:
tcpdump -i ...