Tcpdump
Краткий обзор:
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 <тип>.