Какво е tcpdump?

Какво е tcpdump

Ако имате операционна система, подобна на Unix или Linux (Linux, Mac OS), можете да използвате tcpdump за проверка на мрежовия трафик. Програмата tcpdump е помощна програма за команден ред, която може да бъде инсталирана безплатно. Той не е често интегриран в операционните системи, така че трябва да го инсталирате от регистъра на tcpdump GitHub или от официалния уебсайт tcpdump.

Елементи на tcpdump

Помощната програма за улавяне на пакети, използвана от tcpdump, се предоставя от libpcab, което е C / C ++ библиотека от процедури. Основната програма tcpdump е интерфейсът за процеса на улавяне на пакети. Когато стартирате, той ще започне процеса на libcap за улавяне на пакети и след това ще показва тяхното съдържание на екрана. Освен ако не се посочи ограничение за броя на пакетите, които ще бъдат заснети, когато стартира програмата, тя ще продължи да се изпълнява завинаги. След това обработката се прекратява от сигнал за прекъсване (Control-C).

Програмата се изпълнява от командния ред и включва редица опции, които са обозначени със знамена. Тези флагове променят поведението на програмата, за да я накара да избира пакети, които съответстват на определен шаблон, да ограничи времето й на работа или да го накара да чете запаметени пакети от файл, а не от мрежовия интерфейс.

Tcpdump формат

Командата tcpdump може да бъде издадена сама или с опции, параметри и / или регулярни изрази. Нито един от тези елементи не е задължителен и редът не е важен.

Tcpdump <-option_identifier>

Опции за Tcpdump

Командата tcpdump е последвана от опции, които също са известни като знамена. Всяко от тях е обозначено с тире, последвано от буква. По-долу е даден списък на всеки от тези знамена.

-А        печат на пакети в ASCII без заглавки на ниво връзка

-б         покажете AS номерът е в ASDOT формат

-B        размер на буфера в единици от KiB (1024 байта

-° С         броя – лимитът на пакетите за улавяне

-° С        размер на файла – процесът ще създаде нов файл, след като този лимит за размер на файла бъде попълнен; Размерът е х 1 милион байта

-д        Изхвърлете компилирания код за съвпадение на пакети в ASCII

-дд      Dump код за съвпадение на пакети като ° С програмен фрагмент

-DDD    Дъмпинг код за съвпадение на пакети като десетични числа, предшествани с броене

-д        Списък на всички достъпни интерфейси

-д         Отпечатайте заглавката на нивото на връзката на всеки ред за зареждане

-E         spi @ ipaddr algo: тайна – за дешифриране на IPsec ESP пакети:

             SPI е индексът на параметъра за сигурност

              IPвр е адресът на местоназначение в пакета

              Дълго е алгоритъмът, по подразбиране де-ТГС и полето не е задължително.

              Възможните стойности са:

  • де-ТГС
  • 3DES-CBC
  • Blowfish-ТГС
  • RC3-ТГС
  • cast128-ТГС

тайна е текстът на ASCII за секретен ключ на ESP. Ако е предшествано от 0x, то това е шестнадесетична стойност

         Печатайте „чужди“ IPv4 адреси числово, а не символично

-F         досие – употреба досие като вход за израза на филтъра

-G        rotate_seconds – период за завъртане запазване на файл на опция -w, ще добави времеви марка към името

        Отпечатайте низовете на версиите tcpdump и libpcap, отпечатайте съобщение за употреба и излезте

-Н        Открийте 802.11s чертожни заглавки на мрежата

-аз          интерфейс – интерфейсът, на който да слушате, по подразбиране е най-ниското име по азбучен ред

-аз          режим на монитор | непосредствен режим – премахва буферирането

         tstamp_type – задайте типа часова марка за заснемане на tstamp_type

-J         tstamp_precision – задайте точността на времевия печат (микро или нано) по подразбиране е микро. ако tstamp_precision е нула, избройте типовете времеви марки и изход

-K        Не проверявайте контролните суми

         Буферирана линия на Stdout. Напр. tcpdump -l | ти дат или                                                                                                   tcpdump -l > DAT & опашка -f dat

-L         Избройте известните типове връзки за данни за интерфейса, в указания режим и излезте

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

      тайна – споделена тайна стойност за валидиране с опцията TCP-MD5

       Не преобразувайте адреси (т.е. хост адреси, номера на портове и т.н.) в имена

-н        Не отпечатвайте квалификация за име на домейн на имена на хостове

-#         Отпечатайте незадължителен номер на пакет в началото на реда

       Не стартирайте оптимизатора на код за съвпадение на пакети

        Не поставяйте интерфейса в безразборен режим

-Q        посока – посока за изпращане / получаване. Може да бъде в, от, или INOUT

-р         Отпечатайте по-малко информация за протокола

-R          досие – чете пакети от досие. Посочете за стандартен вход

        Отпечатайте абсолютни TCP последователни числа

        snaplen – нагъвам snaplen байтове от всеки пакет, а не по подразбиране 262144 байта

-T         Тип – интерпретира пакетите, както е посочено Тип. Опциите са:

  • aodv                   Протокол за специален разстояние при поискване
  • шаран                    Общ протокол за съкращаване на адреса
  • cnfp                    Cisco NetFlow Protocol
  • LMP                     Протокол за управление на връзката
  • PGM                    Прагматичен общ многоадресен
  • pgm_zmtp1       ZMTP / 1.0 вътре в PGM / EPGM)
  • респ                   Протокол за сериализация на REdis
  • радиус                RADIUS
  • RPC                     Обаждане с дистанционна процедура
  • RTP                      Протокол за приложения в реално време
  • RTCP                    Протокол за управление на приложения в реално време
  • SNMP                 Прост протокол за управление на мрежата
  • TFTP                     Тривиален протокол за прехвърляне на файлове
  • ДДС                      Visual Audio Tool
  • WB                      разпределена бяла дъска
  • zmtp1                 ZeroMQ транспортен протокол за съобщения 1.0
  • vxlan                  Виртуална eXtensible локална мрежа

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

-TT        Отпечатайте часовата марка като изместена от 1 януари 1970 г. на всеки ред за зареждане

-TTT       Отпечатайте делта (разделителна способност на микросекунда) между текущия и предишния ред

-ТТТТ      Отпечатайте времева марка: дата, час, минута, секунда на всеки ред за зареждане

-TTTTT     Отпечатайте делта (разделителна способност на микросекунда) между текущия и първия ред

-ф         Отпечатайте недекодирани NFS дръжки

-U        Буфериран пакет

-V         Малко по-сложен изход

-ст       Повече подробни резултати

-ВВВ     Най-многословен изход

-V        досие – прочетете списък с имена от досие. Използва се стандартен вход, ако досие е

-w        досие Записва изход към досие

-W       лимит – максималният брой файлове, които трябва да бъдат създадени от -° С и -G настроики

        Отпечатайте данните на всеки пакет минус заглавката на нивото му на връзката в шестнадесетичен вид

-хх       Отпечатайте данните на всеки пакет, включително заглавката му на ниво връзка, в шестнадесетичен вид

        Отпечатайте данните на всеки пакет минус заглавката на нивото му на връзката в шестнадесетичен и ASCII

-XX       Отпечатайте данните на всеки пакет, включително неговото заглавно ниво на връзката, в шестнадесетичен и ASCII.

-ш         datalinktype – Задайте типа връзка за данни, който да се използва, докато заснемате пакетите                          datalinktype

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

-Z         потребител – променете потребителския идентификатор на потребител и идентификатора на групата към основната група на потребител

Параметри на Tcpdump

Параметрите за tcpdump също са известни като примитиви. Те уточняват дали заснемането на пакети трябва да получава данни само от определени хостове. Тези параметри могат да бъдат изразени и като условия, използвайки булевите оператори и, или, и не.  Не е необходимо да поставяте знак за равенство (=) между името на параметъра и неговата стойност и не е нужно да поставяте интервали с препинателни знаци. Във всеки случай просто ви трябва място.

Най-често използваният от тези параметри е хост, който ви позволява да ограничите улавянето до предавания само от един източник. Във всеки случай името на устройството като стойност на параметър може да бъде заменено от неговия адрес. Когато параметърът има a DST версия, тази промяна ограничава изхода само до пакети, които имат този атрибут за неговата дестинация. Параметри, които включват SRC потърсете пакети, които имат дадената стойност в данните, свързани с техния произход.

Ето опциите за параметри:

домакин host_name – също dst домакин или src хост.

Може да се предварителен с IP, ARP, или RARP

етер            ehost – стойност от / etc / етери или число. Също етер src и етер dest.

врата       домакин – вземете пакети, преминали през шлюза домакин

нето                network_num – IP източник или дестинация включва network_num                                               Също нетна мрежа и src net

порт               номер | име – също DST порт и src порт.                                                                                   Може с TCP или UDP за ограничаване на протокола

ip proto          протокол – улавяне на IP пакети на посочения протокол. Името трябва да бъде в / etc / протоколи

етер прото    протокол – улавяне пакет от тип етер протокол. Опции за протокол са номер или:

  • IP
  • ИП6
  • ARP
  • RARP
  • разговор
  • atalkarp
  • DECnet
  • decdts
  • decdns
  • lanbridge
  • лат
  • mopdl
  • moprc
  • кученце
  • SCA
  • фея
  • STP
  • vexp
  • vprod
  • XNS

Предавания     Заснема 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 домакин      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! = 5.

прото [ИЗРАЗ: размер]

В този обект:

прото е името на протоколен слой. Не може да бъде:

  • етер
  • FDDI
  • IP
  • ARP
  • RARP
  • TCP
  • UDP
  • ICMP

ИЗРАЗът е отместването на байта. Това трябва да бъде включено, но може да се даде като 0, за да се вземе стойността от началото на обекта.

размер е незадължителен и представлява броя на байтовете в опцията. Стойността по подразбиране е 1, но тя също може да бъде 2, 3 или 4.

Примери за употреба:

етер [0] & 1! = 0 важи за целия трафик на многоадресни съобщения.

IP [0] & 0xf! = 5 важи за всички IP пакети с опции.

IP [6: 2] & 0x1fff = 0 важи за нефрагментираните дейтаграми и нулата за фрагментиране на фрагментирани дейтаграми.

Примери за Tcpdump

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

Показване на пакети, пътуващи от или до компютъра, идентифицирани като lab1:

tcpdump хост лаборатория1

Показване на всички IP пакети, пътуващи между lab1 и всеки възел, различен от приемането:

tcpdump ip хост lab1 и не приема

Показване на целия ftp трафик през интернет шлюз styx:

tcpdump „шлюз Styx и (порт ftp или ftp-данни)“

Показвайте SYN и FIN пакетите на всеки TCP разговор, който включва не локален хост:

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

Показване на IP излъчване или пакети за множествено предаване, които не са изпратени чрез Ethernet излъчване или мултикаст:

tcpdump ‘етер [0] & 1 = 0 и ip [16] >= 224 ’

Tcpdump изходен формат

Форматът на запис, използван за писане на пакети във файлове, се е превърнал в стандарт, който е възприет от много по-нови снайпери за пакети и анализатори на трафика.

Стандартът не е лесен и е адаптиран за всеки протокол. Тези приложения, които са приели формата, също отчитат тези вариации. Форматът се нарича рСАР, което е името на процеса на улавяне на пакети, използван от tcpdump. Файловете в този формат обикновено имат .рСАР разширение.

Tcpdump за Windows

Има адаптация на tcpdump, която работи на Windows. Това се казва WinDump и разчита на WinPcap за улавяне на пакети по същия начин, по който tcpdump използва функцията pcap на libpcap. WinPcap всъщност е собственост на Riverbed Technology. Същата компания е основният финансист на Wireshark, който е може би най-известният и широко използван снайпер за пакети в света. Има безжична версия на WinPcap, която се нарича AirPcap. Можете да изтеглите WinDump, WinPcap и AirPcap безплатно от уебсайта на WinPcap.

Използване на пакети sniffers

Помощната програма за команден ред tcpdump е полезна за тези, които са запознати с Unix и Linux операционни системи и се наслаждавайте на писането на скриптове за черупки. Тези, които не са толкова опитни в съставянето на команди с регулярни изрази в командния ред, ще затруднят използването на тази програма.

Имате и други опции, тъй като има много налични пакети снайпери, като Wireshark, който беше споменат по-горе. Можете да разберете повече за алтернативите на tcpdump в този преглед на пакети снайпери.

Имате ли любим sniffer за пакети? Фен ли сте на tcpdump или предпочитате по-лесни за употреба алтернативи? Оставете съобщение в Коментари раздел по-долу и споделете своя опит.

Изображение: tcpdump улавяне на пакети от Linux Screenshots чрез Flickr. Лицензиран под CC BY 2.0

About the author

Comments

  1. Tcpdump е мощен инструмент за проверка на мрежовия трафик, който може да бъде използван на операционни системи като Unix или Linux. Програмата е безплатна и може да бъде инсталирана от регистъра на tcpdump GitHub или от официалния уебсайт tcpdump. Tcpdump използва библиотеката libpcap за улавяне на пакети и предоставя множество опции за промяна на поведението на програмата. С помощта на tcpdump може да се избират пакети, които съответстват на определен шаблон, да се ограничи времето на работа или да се четат запаметени пакети от файл, а не от мрежовия интерфейс. Tcpdump е мощен инструмент за анализ на мрежовия трафик и е особено полезен за администратори на мрежи.

Comments are closed.