Что такое tcpdump?

Что такое tcpdump

Если у вас Unix или Unix-подобная операционная система (Linux, Mac OS), вы можете использовать tcpdump для проверки сетевого трафика. Программа tcpdump – это утилита командной строки, которую можно установить бесплатно. Обычно он не интегрируется в операционные системы, поэтому вам необходимо установить его из реестра tcpdump GitHub или с официального сайта tcpdump.

Элементы tcpdump

Утилита захвата пакетов, используемая tcpdump, предоставляется libpcab, которая представляет собой библиотеку процедур C / C ++. Основная программа tcpdump – это интерфейс для процесса захвата пакетов. При запуске он запускает процесс libcap для захвата пакетов, а затем отображает их содержимое на экране. Если при запуске программы не указано ограничение на количество перехватываемых пакетов, она будет работать вечно. Обработка затем завершается сигналом прерывания (Control-C).

Программа запускается из командной строки и включает в себя ряд параметров, которые обозначены флагами. Эти флаги изменяют поведение программы, заставляя ее выбирать пакеты, соответствующие заданному шаблону, ограничивать время ее выполнения или заставлять ее читать сохраненные пакеты из файла, а не из сетевого интерфейса..

Формат Tcpdump

Команда tcpdump может быть введена сама по себе или с параметрами, параметрами и / или регулярными выражениями. Ни один из этих элементов не является обязательным, и порядок не важен.

ТСРйитр <-option_identifier>

Параметры Tcpdump

Команда tcpdump сопровождается параметрами, которые также известны как флаги. Каждый из них обозначается дефисом, за которым следует буква. Ниже приведен список каждого из этих флагов.

–        печатать пакеты в ASCII без заголовков канального уровня

-б         показать номер AS в формате ASDOT

       размер буфера в единицах КиБ (1024 байта

        подсчитывать – предел пакетов для захвата

       размер файла – процесс создаст новый файл, как только этот предел размера файла будет заполнен; Размер х 1 миллион байт

-d        Дамп скомпилированного кода сопоставления пакетов в ASCII

-дд      Дамп код сопоставления пакетов как С фрагмент программы

-ддд    Дамп код сопоставления пакетов в виде десятичных чисел с предшествующим счетом

-D        Список всех доступных интерфейсов

-е         Напечатайте заголовок уровня связи в каждой строке дампа

        spi @ ipaddr algo: секрет – для расшифровки пакетов ESP IPsec:

             СПИ такое индекс параметра безопасности

              IPадр адрес получателя в пакете

              алго алгоритм по умолчанию дез-CBC и поле не является обязательным.

              Возможные значения:

  • дез-CBC
  • 3des-CBC
  • Blowfish-CBC
  • rc3-CBC
  • CAST128-CBC

секрет текст ASCII для секретного ключа ESP Если ему предшествует 0x, то это шестнадцатеричное значение

         Печатайте «чужие» IPv4-адреса в числовом, а не в символическом

-F         файл – использовать файл в качестве входных данных для выражения фильтра

-грамм        rotate_seconds – период, чтобы повернуть файл сохранения опции -w, добавит метку времени к имени

-час         Напечатайте строки версии tcpdump и libpcap, напечатайте сообщение об использовании и выйдите

-ЧАС        Определить заголовки ячеистой сети 802.11s

         интерфейс – интерфейс для прослушивания, по умолчанию в алфавитном порядке самое низкое имя

         режим монитора | немедленный режим – удаляет буферизацию

-J          tstamp_type – установите тип метки времени для захвата в tstamp_type

-J         tstamp_precision – установить точность отметки времени (микро или нано) по умолчанию микро. Если tstamp_precision имеет значение null, список типов временных меток и выход

       Не проверяйте контрольные суммы

-L          Стандартная строка буферизована. Например. tcpdump -l | тройник или                                                                                                   tcpdump -l > Дат & хвост-дата

-L         Вывести список известных типов каналов передачи данных для интерфейса в указанном режиме и выйти

      модуль – загрузить определения модуля SMI MIB из файла модуль.

-M       секрет – общий секретный параметр для проверки с помощью опции TCP-MD5

-N        Не конвертируйте адреса (например, адреса хоста, номера портов и т. Д.) В имена

-N        Не печатать доменное имя, квалифицирующее имена хостов

-#         Напечатайте дополнительный номер пакета в начале строки

       Не запускайте оптимизатор кода соответствия пакетов

-п         Не переводите интерфейс в беспорядочный режим

-Q        направление – отправить / получить направление. Возможно в, вне, или INOUT

-Q         Печатайте меньше протокольной информации

         файл – читать пакеты из файл. Уточнить для стандартного ввода

-S         Вывести абсолютные порядковые номера TCP

-s         snaplen – ворчать snaplen байтов из каждого пакета, не по умолчанию 262144 байта

-T         тип – интерпретировать пакеты как указано тип. Варианты:

  • AODV                   Специальный протокол векторного расстояния по требованию
  • карп                    Протокол общего резервирования адресов
  • cnfp                    Протокол Cisco NetFlow
  • LMP                     Протокол управления ссылками
  • МПГ                    Прагматичный General Multicast
  • pgm_zmtp1       ZMTP / 1.0 внутри PGM / EPGM)
  • соответственно                   REdis Протокол Сериализации
  • радиус                РАДИУС
  • RPC                     Удаленный вызов процедур
  • РТП                      Протокол приложений реального времени
  • RTCP                    Протокол управления приложениями реального времени
  • SNMP                 Простой протокол управления сетью
  • TFTP                     Тривиальный протокол передачи файлов
  • НДС                      Visual Audio Tool
  • термометру                      распределенная белая доска
  • zmtp1                 ZeroMQ Протокол передачи сообщений 1.0
  • vxlan                  Виртуальная расширяемая локальная сеть

-T          Не печатайте метку времени на каждой строке дампа

-тт        Выведите метку времени как смещение с 1 января 1970 года на каждой строке дампа

-ТТТ       Распечатать дельта (микросекундное разрешение) между текущей и предыдущей строкой

-TTTT      Напечатайте метку времени: дату, час, минуту, секунду на каждой строке дампа

-TTTTT     Распечатать дельта (микросекундное разрешение) между текущей и первой строкой

-U         Печать недекодированных ручек NFS

-U        Пакет с буферизацией

-v         Чуть более подробный вывод

-ст       Более подробный вывод

-VVV     Самый подробный вывод

       файл – прочитать список имен файлов из файл. Стандартный ввод используется, если файл является

-вес        файл – записать вывод в файл

-W       предел – максимальное количество файлов, которые будут созданы и -грамм параметры

-Икс         Вывести данные каждого пакета минус заголовок уровня ссылки в шестнадцатеричном виде

-хх       Распечатать данные каждого пакета, в том числе заголовок уровня ссылки в шестнадцатеричном виде

-Икс         Вывести данные каждого пакета минус заголовок уровня канала в шестнадцатеричном и ASCII

-XX       Распечатать данные каждого пакета, в том числе заголовок уровня ссылки, в шестнадцатеричном и ASCII.

-Y         datalinktype – Установите тип канала передачи данных, который будет использоваться при захвате пакетов                          datalinktype

-Z         postrotate-команда – обрабатывать файлы сохранения обычно со сжатием, например -z gzip

-Z         пользователь – изменить идентификатор пользователя на пользователь и идентификатор группы к основной группе пользователь

Параметры Tcpdump

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

Наиболее часто используемым из этих параметров является хост, который позволяет ограничить перехват передач только одним источником. В каждом случае имя устройства в качестве значения параметра можно заменить его адресом. Где параметр имеет ДСТ версия, эта вариация ограничивает вывод только пакетами, которые имеют этот атрибут для своего назначения. Параметры, которые включают ЦСИ искать пакеты, которые имеют заданное значение в данных, связанных с их происхождением.

Вот параметры параметра:

хозяин host_name – также хост dst или Src Host.

Может также дополняться IP, агр, или RARP

эфир            ehost – значение из / etc / ethers или число. Также эфирный источник и эфир дест.

шлюз       хозяин – получить пакеты, которые прошли через шлюз хозяин

сеть                network_num – IP источника или назначения включает в себя network_num                                               Также чистая сеть и Src Net

порт               номер | имя – также порт dst и порт src.                                                                                   Можно с ТСР или УДП ограничить протокол

IP Proto          протокол – захватывать IP-пакеты указанного протокола. Имя должно быть в / etc / protocol

эфир прото    протокол – захватить пакет типа эфирного протокола. Варианты для протокол число или:

  • IP
  • ip6
  • агр
  • RARP
  • разговор
  • atalkarp
  • DECnet
  • decdts
  • decdns
  • lanbridge
  • Lat
  • mopdl
  • moprc
  • щенок
  • SCA
  • фея
  • СТП
  • Vexp
  • vprod
  • хпе

Broadcast     Захватывает широковещательные пакеты Ethernet. Также написано как эфирная трансляция

ip трансляция Захватывает пакеты широковещания ip

многоадресного       Захватывает многоадресные пакеты Ethernet. Также написано как эфирный многоадресный

ip multicast   Захватывает многоадресные IP-пакеты

хост decnet   host_name – если источник или место назначения DECNET host_name

Decnet SRC     host_name – захватить, если источником DECNET является host_name

Decnet DST     host_name – захватить, если пункт назначения DECNET host_name

Wlan Host      ehost – если первый, второй, третий или четвертый адрес IEEE 802.11                                             ehost

WLAN Addr1    ehost – захватить, если первый адрес IEEE 802.11 ehost

WLAN Addr2    ehost – захватить, если второй адрес IEEE 802.11 ehost

WLAN Addr3    ehost – захватить, если третий адрес IEEE 802.11 ehost

WLAN Addr4    ehost – если четвертый адрес IEEE 802.11 ehost. Используется только для WDS

тип                тип – захватить, если тип кадра IEEE 802.11 тип, который является числом или:

  • данные
  • MGT
  • CTL

подтип           подтип – захватить, если кадр IEEE 802.11 подтип, который является числом или:

  • assocreq
  • assocresp
  • reassocreq
  • reassocresp
  • probereq
  • proberesp
  • маяк
  • ATIM
  • disassoc
  • авт
  • deauth
  • данные

реж                    реж – захватить, если направление кадра IEEE 802.11 реж, который является числом или:

  • поклоны
  • TODS
  • fromds
  • dstods

Выражение Tcpdump

Сегмент выражений команды tcpdump дает вам возможность добавить немного программирования к вашему выбору пакетов. Однако, в отличие от обычной программы, этот набор инструкций должен быть записан в одну строку. Если вы часто пользуетесь Unix или Linux, вы привыкнете к регулярным выражениям сценариев оболочки и не должны иметь проблем с пониманием формата этих фильтров.  

Пакеты, которые соответствуют тесту, установленному выражением, будут перехвачены. Таким образом, результат каждого выражения должен быть «истинным».

Есть несколько условий выражения, которые обычно не встречаются в сценариях оболочки, и они перечислены ниже:

Len

Это возвращает длину пакета. Пример использования: len! = 5.

прото [выражение: размер]

В этом объекте:

прото это имя уровня протокола. Может быть:

  • эфир
  • FDDI
  • IP
  • агр
  • RARP
  • ТСР
  • УДП
  • ICMP

выраж смещение байта. Это должно быть включено, но оно может быть задано как 0, чтобы получить значение с начала объекта.

размер является необязательным и представляет количество байтов в опции. Значением по умолчанию является 1, но оно также может быть 2, 3 или 4.

Примеры использования:

эфир [0] & 1! = 0 верно для всего многоадресного трафика.

ф [0] & 0xf! = 5 верно для всех IP-пакетов с опциями.

ф [6: 2] & 0x1fff = 0 верно для нефрагментированных дейтаграмм и фрагментов нулей фрагментированных дейтаграмм.

Примеры Tcpdump

Во всех этих случаях результаты команды будут отображаться на экране, если только не включена опция, относящаяся к файлу, или если команда не запущена с перенаправлением вывода в режиме ожидания или путем передачи в файл..

Отображение пакетов, отправляемых с компьютера или на компьютер, обозначенный как lab1

tcpdump host lab1

Показать все IP-пакеты, проходящие между lab1 и любым узлом, кроме приема:

tcpdump ip host lab1 а не прием

Отобразить весь трафик ftp через интернет-шлюз styx:

tcpdump sty шлюз styx и (порт ftp или ftp-данные) ’

Отобразите пакеты SYN и FIN каждого диалога TCP, который включает нелокальный хост:

tcpdump ‘tcp [tcpflags] & (tcp-syn | tcp-fin)! = 0, а не src и dst net localnet ’

Показать широковещательные или многоадресные IP-пакеты, которые не были отправлены через широковещательную или многоадресную передачу Ethernet:

tcpdump ‘ether [0] & 1 = 0 и IP [16] >= 224 ’

Выходной формат Tcpdump

Формат записи, используемый для записи пакетов в файлы, стал стандартом, принятым многими новыми анализаторами пакетов и анализаторами трафика..

Стандарт не прост и адаптирован для каждого протокола. Однако те приложения, которые приняли формат, также учитывают эти различия. Формат называется PCAP, это имя процесса захвата пакета, используемого tcpdump. Файлы в этом формате обычно имеют .PCAP расширение.

Tcpdump для Windows

Существует адаптация tcpdump, которая работает в Windows. Это называется WinDump и это зависит от WinPcap для захвата пакета так же, как tcpdump использует функцию pcap из libpcap. WinPcap фактически принадлежит Riverbed Technology. Эта же компания является основным спонсором Wireshark, который, вероятно, является самым известным и широко используемым анализатором пакетов в мире. Существует беспроводная версия WinPcap, которая называется AirPcap. Вы можете бесплатно загрузить WinDump, WinPcap и AirPcap с веб-сайта WinPcap.

Использование анализаторов пакетов

Утилита командной строки tcpdump полезна для тех, кто знаком с Юникс и Linux операционные системы и наслаждайтесь написанием сценариев оболочки. Тем, кто не имеет большого опыта в составлении команд с регулярными выражениями в командной строке, будет трудно использовать эту программу.

У вас есть другие варианты, потому что есть много доступных анализаторов пакетов, таких как Wireshark, который был упомянут выше. Вы можете узнать больше об альтернативах tcpdump в этом обзоре анализаторов пакетов.

У вас есть любимый анализатор пакетов? Вы поклонник tcpdump или предпочитаете более удобные альтернативы? Оставьте сообщение в Комментарии раздел ниже и поделитесь своим опытом.

Изображение: захват пакета tcpdump в Linux Скриншоты через Flickr. Лицензировано под CC BY 2.0

About the author

Comments

  1. It looks like the text is in Russian. The topic is about using tcpdump to check network traffic on Unix or Unix-like operating systems such as Linux or Mac OS. Tcpdump is a command-line utility that can be installed for free from the tcpdump GitHub registry or official website. The article explains the elements, format, parameters, and expressions of tcpdump, as well as provides examples and output formats. It also mentions the use of packet analyzers and how to install tcpdump on Windows.

Comments are closed.