Tcpdump

Материал из rrv-wiki
Перейти к навигации Перейти к поиску


Взято здесь

Краткий обзор:

tcpdump [ -AdDeflLnNOpqRStuUvxX ] [ -c count ]
        [ -C file_size ] [ -F file ]
        [ -i interface ] [ -m module ] [ -r file ]
        [ -s snaplen ] [ -T type ] [ -w file ]
        [ -E spi@ipaddr algo:secret,...  ]
        [ -y datalinktype ]
        [ -y datalinktype ]
        [ expression ]

Опции:

-A     задает вывод каждого пакета (без заголовков канального уровня) в формате ASCII. Этот режим удобен для сбора трафика HTTP.

-c     задает завершение работы программы после захвата заданного числа пакетов. -c <число пакетов>

-C     задает необходимость проверки размера файла захвата перед записью в него каждого нового пакета. Если размер файла превышает значение параметра file_size, этот файл закрывается и создается новый файл для записи в него пакетов. Для файлов захвата используется имя, заданное параметром -w и, начиная со второго файла к имени добавляется в качестве суффикса номер файла. Переменная file_size задает размер файла в миллионах байтов (не в мегабайтах = 1 048 576 байт). -C <размер файла>

-d     задает вывод дампа скомпилированного кода соответствия пакетов (packet-matching code) в понятном человеку формате и завершение работы программы.

-dd    выводит дамп кода соответствия в виде фрагмента C-программы.

-ddd     выводит дамп кода соответствия в виде строки десятичных значений (перед которой следует строка со значением счетчика).

-D     выводит список сетевых интерфейсов системы, с которых tcpdump может собирать пакеты. Для каждого сетевого интерфейса указывается имя и номер, за которыми может следовать текстовое описание интерфейса. Имя и номер интерфейса могут использоваться с флагом -i для задания сбора пакетов с одного интерфейса. Эта опция может быть весьма полезна для систем, не дающих информации об имеющихся сетевых интерфейсах.

-e     выводит заголовок канального уровня в каждой строке дампа.

-E     задает использование алгоритма и секрета spi@ipaddr для расшифровки пакетов IPsec ESP, направленных по адресу ipaddr и содержащих and в поле Security Parameter Index значение spi. Комбинация spi и адреса может быть повторена с использованием в качестве разделителя запятой или новой строки. Отметим, что установка секрета для пакетов IPv4 ESP в настоящее время поддерживается. В качестве алгоритмов могут использоваться des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc или none. По умолчанию применяется алгоритм des-cbc. Возможность дешифровки пакетов обеспечивается только в тех случаях, когда при компиляции tcpdump были включены опции поддержки криптографии. Параметр secret содержит ASCII-текст секретного ключа ESP. Если секрет начинается с символов 0x, будет считываться шестнадцатеричное значение. Опция предполагает использование ESP в соответствии с RFC 2406, а не RFC 1827. Эта опция поддерживается только для отладки и использовать ее с реальными секретными ключами не следует, поскольку введенный в командной строке ключ IPsec доступен другим пользователям системы. Кроме явного указания параметров в командной строке их можно задать в файле опций, который tcpdump будет читать при получении первого пакета ESP.

-f     задает вывод чужих адресов IPv4 в числовом формате (эта опция позволяет избавиться от проблем, возникающих на серверах Sun NIS при попытках трансляции нелокальных адресов). Проверка чужеродности адреса IPv4 осуществляется с использованием адреса и маски принявшего пакет интерфейса. Если адрес и маска интерфейса недоступны ,например, при использовании unnumbered-интерфейсов или при захвате пакетов со всех адресов в Linux с использованием фиктивного интерфейса "any", эта опция будет работать некорректно.

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

-i     задает сбор пакетов с указанного интерфейса. Если интерфейс не задан, tcpdump ищет в системе список доступных интерфейсов и выбирает в нем активное устройство с минимальным номером (исключая loopback). В системах Linux, начиная с ядра 2.2 поддерживается фиктивный интерфейс с именем any, обеспечивающий сбор пакетов со всех активных интерфейсов системы. Отметим, что сбор пакетов с устройства any осуществляется в обычном (не promiscuous) режиме. Если в системе поддерживается флаг -D, можно в качестве аргумента задавать номер интерфейса, выводимый при использовании этого флага. -i <интерфейс>

-l     задает буферизацию строк stdout. Эта опция полезна в тех случаях, когда вы хотите просматривать данные во время сбора пакетов. Например, команды tcpdump -l | tee dat или tcpdump -l > dat & tail -f dat обеспечивают запись пакетов в файл dat и одновременный вывод на консоль.

-L     задает вывод списка известных типов канального уровня и завершение работы программы.

-m     загружает модуль определений SMI MIB из указанного файла. Эта опция может использоваться неоднократно для загрузки нескольких модулей MIB. -m <файл>

-O     отключает оптимизатор кода проверки соответствия пакетов условиям фильтрации. Используйте эту опцию, если вам покажется, что оптимизатор работает с ошибками.

-n     отключает преобразование адресов и номеров портов в символьные имена.

-N     задает использование только имен хостов, а не полных доменных имен. Например, вместо ``nic.ddn.mil при использовании этой опции моя рабочая станция будет обозначаться как ``nic.

-p     указывает программе, что интерфейс не нужно переводить в режим захвата. Опцию -p нельзя использовать вместе с фильтром `ether host {local-hw-addr} или ether broadcast'.

-q     Короткий (тихий?) вывод. Задает вывод минимального объема информации.

-R     при установке этого флага предполагается, что пакеты ESP/AH используют старый вариант спецификации и tcpdump не будет выводить поля replay prevention (защита от воспроизведения). Поскольку спецификация ESP/AH не включает поля с номером версии, tcpdump не может определить версию протокола ESP/AH по заголовкам пакетов.

-r     задает чтение данных из файла, созданного ранее с использованием команды tcpdump -w или с помощью другой программы, поддерживающей формат tcpdump (например, Ethereal). Если в качестве имени файла задан символ ``-, используется поток данных от стандартного устройства ввода (stdin). -r <файл>

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

-s     задает захват из каждого пакета snaplen байтов вместо отбираемых по умолчанию 68 байтов. Значение 68 подходит для протоколов IP, ICMP, TCP и UDP но может приводить к потере протокольной информации для некоторых пакетов DNS и NFS. Потеря части пакетов по причине малого размера кадра захвата (snapshot) указывается в выходных данных полями вида ``[|proto], где proto – имя протокольного уровня, на котором произошло отсечение части пакета. Отметим, что увеличение кадра захвата приведет к дополнительным временным затратам на обработку пакетов и уменьшению числа буферизуемых пакетов, что может привести к потере части пакетов. Используйте минимальное значение snaplen, которое позволит обойтись без потери информации об интересующем вас протоколе. Установка snaplen = 0 приведет к захвату полных пакетов.

-T     задает интерпретацию пакетов, выбранных с помощью фильтра, как пакетов указанного параметром типа. В настоящее время поддерживаются типы aodv9, cnfp10, rpc11, rtp12, rtcp13, snmp14, tftp15, vat16 и wb17. -T <тип>.

-t     отключает вывод временных меток в каждой строке дампа.

-tt     задает вывод в каждой строке дампа неформатированных временных меток.

-ttt     задает вывод временных интервалов (в микросекундах) между захватом предыдущего и данного пакетов в каждой строке дампа.

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

-u     задает вывод манипуляторов (handle) NFS без декодирования.

-U     задает режим “буферизации на уровне пакетов” для файлов, сохраняемых с помощью опции -w. В этом режиме каждый пакет записывается в выходной файл как только он будет захвачен (не дожидаясь заполнения выходного буфера). Флаг -U не будет поддерживаться, если программа tcpdump была скомпилирована со старой опцией libpcap, не поддерживающей функцию pcap_dump_flush().

-v     задает вывод дополнительной информации при захвате файлов. К такой информации может относиться значение TTL (время жизни), идентификация, общий размер, опции IP и т. п. При использовании этого флага также выполняется дополнительная проверка целостности пакетов с помощью контрольных сумм (например, для протоколов IP и ICMP).

-vv     задает дополнительное увеличение объема выводимой информации (например, полное декодирование пакетов SMB, вывод дополнительных полей откликов NFS и т. п.).

-vvv     задает максимальный объем выводимой информации. Например, полностью выводятся опции telnet SB ... SE. При использовании вместе с ключом -X опции Telnet выводятся также в шестнадцатеричном представлении.

-w     задает запись необработанных (raw) пакетов. Собранные в файл пакеты можно впоследствии просматривать с использованием флага -r или передавать для анализа другим программам (например, Ethereal). Если в качестве имени файла указан символ ``-, запись осуществляется на стандартное устройство вывода (stdout). -w <файл>.

-x     задает вывод шестнадцатеричного дампа (без заголовка канального уровня) для каждого захваченного пакета. Объем выводимой информации определяется меньшим из двух значений - размер пакета и значение параметра snaplen. Отметим, что при захвате полных кадров канального уровня дамп может включать также байты заполнения, если пакет сетевого уровня имеет малый размер.

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

-X     задает вывод дампа в шестнадцатеричном и ASCII-формате без заголовков канального уровня. Эта опция может быть очень удобна при анализе новых протоколов.

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

-y     задает тип канального уровня, используемого при захвате пакетов. Поддерживаемые значения можно посмотреть с помощью флага -L. -y <тип>.

Фильтрация при сборе пакетов

[1] [2] [3] [4] [5] [6]