Работа с TCPDump
Данная утилита является полезным инструментом для перехвата и сбора пакетов, поступающих на сервер, а также исходящих от него.
Установка TCPDump
Для Ubuntu/Debian:
apt install tcpdump
Для Red Hat / CentOS:
sudo yum install tcpdump
Аргументы для команды
Использование
Чтобы не засорять наш дамп лишними пакетами, следует выбрать конкретный интерфейс, с которого мы хотим собрать информацию, а не все. Посмотреть список всех интерфейсов можно при помощи данной команды:
tcpdump -D

Для вывода логов нашего сетевого интерфейса в реальном времени используем команду:
tcpdump -i ens3
Не забывайте, что для TCPDump требуются права суперпользователя, поэтому данные команды следует выполнять от имени root, либо с использованием sudo.
После использования команды мы увидим множество бегущих строк, для остановки дампа используйте сочетание клавиш Ctrl + C
Попробуем увидеть более подробную информацию о пакетах, используя аргумент -v
tcpdump -i ens3 -v
Аргументы фильтрации
Также не менее мощной функцией являются дополнительные аргументы, благодаря которым мы можем отсеивать разные типы пакетов по следующим параметрам:
Например, мы можем посмотреть все пакеты, которые исходят от нашего сервера к конечному адресу:
tcpdump dst 192.168.1.1
Или наоборот, все пакеты, которые исходят к нашему серверу из подсети-источника (можно также использовать конкретный IP-адрес, как в примере выше):
tcpdump src net 192.168.1.1/24
Для поиска пакетов необходимого размера можно использовать аргументы на примере
tcpdump less 48 // пакеты меньше 48 бит
tcpdump greater 128 // пакеты больше 128 бит
Допустим у Вас есть несколько серверов Garry's Mod на разных портах, и Вы хотите проверить, ведется ли на них DDoS-атака на текущий момент. Для этого нам подойдет команда:
tcpdump -nnv udp src portrange 27015-27025 -w garrysmod.dump
Обратите внимание на указываемый диапазон портов.
Благодаря аргументу -w дамп будет собран в файл garrysmod.dump
Расширенные операторы
Помимо всего прочего, в TCPDump доступны операторы для создания различных комбинаций аргументов.
Допустим, мы хотим вывести весь трафик запросов MySQL, который отправляет 192.168.1.1 по порту 3306 (на любые адреса).
tcpdump -nnv src 192.168.1.1 and tcp dst port 3306
Завершение
Спасибо за прочтение! Мы подробно ознакомились с совершенно полезным инструментом TCPDump, который является неотъемлемой частью работы сетевых инженеров, а также обязательно пригодится рядовым пользователям.
Для чтения пакетов на Windows Вы можете использовать программу WireShark.
Last updated
Was this helpful?