2.5.8 Анализ и фильтрация сетевых пакетов с помощью tcpdump
Скачать документ Назначение утилиты
Синтаксис утилиты
Опции утилиты
Фильтры утилиты
Примеры использования утилиты
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Рабочая станция
- Версия ПО: tcpdump-14:4.9.3-3
tcpdump – инструмент командной строки для анализа пакетов, который позволяет перехватывать сетевые пакеты на основе правил фильтрации, интерпретировать содержимое пакетов и отображать результат в удобочитаемом формате. По умолчанию утилита предустановлена в РЕД ОС.
Однако если по каким-либо причинам утилита отсутствует в системе, перейдите в сеанс пользователя root:
su -
и установите ее командой:
dnf install tcpdump
Для работы с утилитой необходимы права суперпользователя root или администратора системы (sudo), поэтому здесь и далее команды выполняются с правами суперпользователя root, если не указано иное.
Назначение утилиты
Утилита tcpdump помогает:
диагностировать потерю пакетов;
проверять производительность приложений;
проверять маршрутизацию трафика в многосетевой среде;
отслеживать теги VLAN;
прослушивать трафик.
По умолчанию tcpdump прослушивает сетевой интерфейс с наименьшим номером в списке, поэтому сначала необходимо определить, какой интерфейс будет прослушиваться.
Синтаксис утилиты
Синтаксис команды tcpdump имеет следующий вид:
tcpdump [-опции] [фильтры]
Для отображения списка сетевых интерфейсов, используемых в системе, выполните команду:
tcpdump -D
Для прослушивания конкретного сетевого интерфейса необходимо использовать опцию -i с именем интерфейса, передаваемого в качестве параметра. Например, для интерфейса под номером 2 команда будет иметь следующий вид:
tcpdump -i enp0s20f0u1
Если необходимо захватить трафик со всех сетевых интерфейсов, например, если в системе несколько сетевых подключений, в tcpdump для таких случаев предусмотрен специальный параметр any:
tcpdump -i any
Опции утилиты
Описание некоторых опций tcpdump:
Опция | Описание |
---|---|
-a | Преобразовать сетевые и широковещательные адреса в доменные имена. |
-e | Отображать данные канального уровня (MAC-адрес, протокол, длина пакета). Помимо IP-адресов будут отображены MAC-адреса компьютеров. |
-N | Не добавлять доменное расширение к именам узлов. Например, отобразить net вместо net.library.org. |
-n | Отображать IP-адрес вместо имени хоста. |
-nn | Отображать номер порта вместо используемого протокола. |
-q | Вывести минимум информации. Обычно – имя протокола, отправитель и получатель пакета, используемые порты и объем переданных данных. |
-r | Прочесть трафик из файла, если он был предварительно сохранен параметром -w. |
-S | Не обрабатывать абсолютные порядковые номера (initial sequence number — ISN) в относительные. |
-t | Не отображать метку времени в каждой строке. |
-tt | Отображать неформатированную метку времени в каждой строке. |
-tttt | Показывать дату и время. |
-v | Выводить подробную информацию (TTL; ID; общая длина заголовка, а также его параметры; производить проверку контрольных сумм IP и ICMP-заголовков). |
-vv | Выводить ещё более полную информацию, в основном относится к NFS и SMB. |
-vvv | Выводить максимально подробную информацию. |
-w <файл> | Сохранять данные tcpdump в двоичном формате. Преимущества использования данного способа по сравнению с обычным перенаправлением в файл является высокая скорость записи и возможность чтения подобных данных другими программами, например, snort, но этот файл нельзя прочитать человеку. |
-с <число> | Завершит работу tcpdump после получения указанного числа пакетов. |
Описанные опции помогают отфильтровывать информативность пакетов, перенаправлять вывод в файл или прочитать уже записанный файл и т.д. Для получения более подробной информации по всем доступным опциям утилиты tcpdump можно воспользоваться командой:
man tcpdump
Фильтры утилиты
Для упрощения поиска пакетов и экономии времени в tcpdump предусмотрены фильтры. Они используются для отсеивания ненужных пакетов. Таким образом можно вывести список пакетов, полученных от какого-либо конкретного IP-адреса или подсети.
Описание фильтров для tcpdump:
host, net, port – для фильтрации по значению соответствующего идентификатора;
src, dst – для фильтрации по конкретному направлению передачи к и/или от идентификатора;
tcp, udp, icmp, ah – для фильтрации по заданному сетевому протоколу.
Примеры использования утилиты
Для просмотра исходящего и входящего трафика по IP-адресу выполните команду с фильтром host и соответствующим аргументом:
tcpdump host 192.168.1.1
Для обнаружения пакетов, следующих из определенной сети либо в нее, используйте команду с фильтром net:
tcpdump net 192.168.1.0/24
Для захвата трафика, который поступает только на определенный порт, выполните команду с фильтром port и номером соответствующего порта в качестве аргумента:
tcpdump port 22
Для отсеивания трафика по отправителю с помощью фильтра src, выполните команду:
tcpdump src 192.168.1.1
Для отображения входящего трафика с IP-адреса выполните команду:
tcpdump dst 192.168.1.1
Для поиска конкретного типа трафика используются фильтры tcp, udp, icmp. Например, фильтр icmp поможет вывести на экран весь трафик, передаваемый по протоколу ICMP:
tcpdump icmp
Дата последнего изменения: 09.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.