Описание программы tcpdump подготовленное на основе информации из руководства man. Программа tcpdump работает на всех платформах UNIX, а сейчас существует и аналог этой программы для платформ Windows -Windump.
http://www.tcpdump.org
Программа tcpdump, включаемая в большинство дистрибутивов UNIX, выводит заголовки пакетов для сетевого интерфейса в соответствии с заданным логическим выражением. Программа также допускает использование с флагом -w для записи пакетов в файл, которым может впоследствии использоваться для анализа. Возможен и просмотр заголовков из таких файлов с помощью флага -r. Во всех случаях tcpdump имеет дело только с пакетами, соответствующими заданному логическому выражению (фильтру).
tcpdump (если в команде не был указан флаг -c) продолжает собирать пакеты до тех пор, пока процесс не будет прерван сигналом SIGINT (например, при нажатии клавиш control-C) или SIGTERM (например, в результате команды kill(1)). Если команда используется с флагом -c, сбор пакетов кроме описанных выше способов может быть прекращен также после обработки определенного числа пакетов.
При завершении работы tcpdump выводит значения счетчиков для:
собранных (captured) пакетов (число пакетов, полученных и обработанных tcpdump);
полученных фильтром (received by filter) пакетов; толкование этого значения зависит от ОС, под управлением которой работала программа tcpdump (в некоторых ОС указывается число пакетов независимо от числа совпадений с условиями фильтрации, а в других – число пакетов, соответствующих фильтрам);
отброшенных ядром (dropped by kernel) пакетов (число пакетов, отброшенных ядром по причине нехватки ресурсов или фильтрации внутри ядра).
На платформах, поддерживающих сигналы SIGINFO (например, BSD), могут выводиться значения перечисленных выше счетчиков по сигналу SIGINFO (этот сигнал может быть подан обычно с помощью клавиш control-T) без прерывания работы программы.
Отметим, что чтение пакетов из сетевого интерфейса может потребовать от пользователя специальных привилегий в зависимости от используемой ОС:
SunOS 3.x или 4.x с NIT или BPF
требуется доступ для чтения к файлам устройств /dev/nit или /dev/bpf*.
Solaris с DLPI
требуется доступ для чтения и записи к сетевому псевдо-устройству (например, /dev/le). На некоторых версиях Solaris таких прав недостаточно для работы tcpdump в режиме захвата1; в таких ситуациях для использования tcpdump требуются полномочия root или установка для tcpdump флага SUID. Отметим, что на многих (возможно, на всех) системах при работе устройства в обычном режиме вы не сможете видеть никаких исходящих пакетов, поэтому сбор данных в таком режиме может оказаться практически бесполезным.
HP-UX с DLPI
требуются полномочия root или установка для tcpdump флага SUID.
IRIX с snoop
требуются полномочия root или установка для tcpdump флага SUID.
Linux
требуются полномочия root или установка для tcpdump флага SUID, если ваша система не использует ядро с поддержкой битов возможностей2 (таких, как CAP_NET_RAW). В последнем случае для вам потребуется установка бита CAP_NET_RAW для захвата пакетов и бита CAP_NET_ADMIN для просмотра списка устройств помощью опции -D. Для просмотра текущего состояния битов возможностей служит функция getcap, а для управления этими битами – setcap из библиотеки libcap. Дополнительную информацию о поддерживаемых битах возможностей вы найдете, воспользовавшись командой man capabilities.
ULTRIX и Digital UNIX/Tru64 UNIX
всем пользователям разрешено использование программы tcpdump. Однако никому из пользователей не разрешено использовать режим захвата пакетов, пока администратор (super-user) не разрешит этот режим для данного интерфейса с помощью команды pfconfig. Захват принимаемых или передаваемых интерфейсом unicast-пакетов не будет возможен до тех пор, пока администратор (super-user) не включит для этого интерфейса режим copy-all с помощью команды pfconfig. Поскольку сбор пакетов обычно требует включения обоих упомянутых режимов, реальное использование tcpdump возможно только с позволения администратора.
BSD и Mac OS X
требуется доступ для чтения к устройству /dev/bpf*. На системах BSD с поддержкой devfs (сюда относятся и системы Mac OS X) кроме установки принадлежности и прав доступа к устройствам BPF может потребоваться настройка конфигурации devfs, позволяющая задавать принадлежность и права доступа всякий раз при перезагрузке системы.
Чтение собранных пакетов из файла не требует специальных привилегий.
1Promiscuous - “Неразборчивый” режим (режим захвата), при котором драйвер устройства захватывает все передаваемые через среду пакеты. В нормальном режиме драйвер обычно читает из среды лишь пакеты, адресованные данному устройству.
2Поддержка “битов возможностей” (capability bit) обеспечивается в ядре Linux начиная с версии 2.2.
далее ...
Дата обновления 14.02.2005
[an error occurred while processing this directive] [an error occurred while processing this directive]