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

Обновлено Обновлено: Опубликовано Опубликовано:

Приложение tcpdump позволяет наблюдать за всеми сетевыми запросами, которые приходят на компьютер или исходят от него. Это очень полезная утилита и будет полезно знать основные команды. В данной инструкции мы рассмотрим некоторые примеры по работе с tcpdump в системе на базе Linux.

Установка приложения

По умолчанию, в нашей системе нет tcpdump. Установка в зависимости от дистрибутива Linux выполняется немного по-разному.

а) Для Rocky Linux / CentOS:

yum install tcpdump

б) Для Ubuntu / Debian:

apt install tcpdump

Использование tcpdump

Приложение обладает большими возможностями. Мы рассмотрим те, которые чаще всего применяются.

1. Сетевой интерфейс.

По умолчанию, tcpdump начнет слушать запросы с интерфейса, который идет в списке первым.

Мы можем указать на каком именно сетевом интерфейсе слушать запросы с помощью опции 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.

8. Запросы ping (ICMP).

В опции просто укажем icmp:

tcpdump -i eth0 icmp

Возможные ошибки

tcpdump: NFLOG link-layer type filtering not implemented.

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

tcpdump -i ...

# Linux # Сети
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет