Tcpdump - Linux Command - Unix komanda

NAME

tcpdump - dump satiksmes tīklā

SINOPSIS

tcpdump [ -adflnNOpqRStuvxX ] [ -c skaits ]

[ -C file_size ] [ -F fails ]

[ -i saskarne ] [ -m modulis ] [ -r fails ]

[ -s spraudnis ] [ -T tips ] [ -U lietotājs ] [ -w file ]

[ -E algo: noslēpums ] [ izteiksme ]

APRAKSTS

Tcpdump izdrukā pakešu galvenes uz tīkla saskarnes, kas atbilst loģiskajai izteiksmei . To var arī palaist ar -w karogu, kas liek tai saglabāt pakešdatus failā vēlākai analīzei un / vai ar -r karogu, kas liek tai lasīt no saglabātā pakešdatu datuma, nevis lasīt paketes no tīkla saskarnes. Visos gadījumos tcpdump apstrādās tikai paketes, kas atbilst izteiksmei .

Tcpdump turpinās notvert paketes, ja tas netiek palaists ar -c karti, kamēr to pārtrauc SIGINT signāls (ģenerēts, piemēram, ierakstot pārtraucējus, parasti control-C) vai SIGTERM signālu (kas parasti tiek ģenerēts ar kill (1) komanda); ja tas tiek palaists ar -c karogu, tā uzņems paketes, līdz to pārtrauks signāls SIGINT vai SIGTERM vai tiek apstrādāts noteikts skaits pakešu.

Kad tcpdump aizver pakešu uzņemšanu, tā ziņos par:

paketes `` saņem filtru '' (šī nozīme ir atkarīga no operētājsistēmas, kurā jūs izmantojat tcpdump , un, iespējams, arī tā, kā OS konfigurēta - ja kādā no operētājsistēmām tas ir atzīmēts ar filtru komandrindā paketes, neatkarīgi no tā, vai tie ir saskaņoti ar filtra izteiksmi, un citās operētājsistēmās tā ņem vērā tikai tādus pakotnes, kas tika saskaņoti ar filtra izteiksmi un kurus apstrādāja tcpdump );

paketes `` nokrita ar kodolu '' (tas ir pakešu skaits, kas bufera telpas trūkuma dēļ tika samazināts ar paketes uztveršanas mehānismu operētājsistēmā, kurā darbojas tcpdump , ja OS ziņo šo informāciju lietojumprogrammām; ja nē, tas tiks paziņots kā 0).

Platformās, kas atbalsta SIGINFO signālu, piemēram, lielāko daļu BSD, tas ziņo par šiem rādītājiem, kad saņems SIGINFO signālu (kas ģenerēts, piemēram, ierakstot simbolu "status" ", parasti kontrol-T) un turpinās fiksēt paketes .

Tīkla saskarnes pakešu lasīšanai var būt nepieciešamas īpašas tiesības:

Zem SunOS 3.x vai 4.x ar NIT vai BPF:

Jums ir jābūt lasītam piekļuvei / dev / nit vai / dev / bpf * .

Saskaņā ar Solaris ar DLPI:

Jums ir jābūt lasīšanas / rakstīšanas piekļuvei tīkla pseidoderēmai, piemēram, / dev / le . Tomēr vismaz dažās Solaris versijās tas nepietiek, lai tcpdump ļautu uztvert vienkāršā režīmā; uz šīm Solaris versijām, jums jābūt root, vai arī tcpdump ir jāinstalē setuid root, lai uztvertu vienkāršā režīmā. Ņemiet vērā, ka daudzās (varbūt visās) saskarnēs, ja jūs neuztverat vienkāršā režīmā, jūs neredzēsit nekādus izejošos paketus, tāpēc uztveršana nav veikta vienkāršā režīmā, iespējams, nav ļoti noderīga.

Saskaņā ar HP-UX ar DLPI:

Jums jābūt root vai tcpdump jāinstalē setuid root.

Zem IRIX ar snoop:

Jums jābūt root vai tcpdump jāinstalē setuid root.

Zem Linux:

Jums jābūt root vai tcpdump jāinstalē setuid root.

Zem Ultrix un Digital UNIX / Tru64 UNIX:

Jebkurš lietotājs var uzņemt tīkla trafiku ar tcpdump . Tomēr neviens lietotājs (ne arī super-lietotājs) var uzņemt saskarni režīma laikā interfeisā, ja super-lietotājs nav ļāvis izmantot šo interfeisu, izmantojot pfconfig (8), un nevienam lietotājam (ne pat super-lietotājam ) var uztvert unikālo datplūsmu, ko mašīna saņēmusi vai nosūtījusi uz interfeisa, ja super-lietotājs nav ļāvis izmantot šo interfeisu, izmantojot pfconfig , kopīgu visu režīmu, tādēļ lietderīgam pakešu uztveršanai interfeisā, iespējams, vajadzīgs vai nu nejaušs režīms vai kopija - visam režīmam vai abiem darbības režīmiem šī saskarne ir iespējota.

Saskaņā ar BSD:

Jums ir jābūt lasītam piekļuvei / dev / bpf * .

Saglabātā pakešfaila lasīšanai nav nepieciešamas īpašas privilēģijas.

OPTIONS

-a

Mēģinājums pārveidot tīkla un apraides adreses nosaukumiem.

-c

Iziet pēc skaitļu pakešu saņemšanas.

-C

Pirms izejmateriāla paketes ierakstīšanas saglabāšanas failā pārbaudiet, vai fails pašlaik ir lielāks par faila lielumu, un, ja tā ir, aizveriet pašreizējo saglabāšanas failu un atveriet jaunu. Savefiles pēc pirmās saglabāšanas faila nosaukumam būs norādīts ar -w karodziņu, pēc tā ir skaitlis, sākot ar 2 un turpinās augšup. Faila lieluma vienības ir miljoniem bitu (1 000 000 baiti, nevis 1,048,576 biti).

-d

Novietojiet apkopoto pakešu atbilstības kodu cilvēka lasāmā formā standarta izvadam un apstājieties.

-dd

Dump pakešu saskaņošanas kods kā C programmas fragments.

-ddd

Dump paketes atbilstības kods kā decimālskaitļi (pirms tam ar skaitli).

-e

Izdrukājiet saišu līmeņa virsrakstu katrā nolaišanās līnijā.

-E

Izmantojiet algo: noslēpums, lai atšifrētu IPsec ESP paketes. Algoritmi var būt des- cbc , 3des-cbc , blowfish- cbc , rc3- cbc , cast128-cbc vai neviens nav . Noklusējums ir des-cbc . Iespēja atšifrēt paketes ir pieejama tikai tad, ja tcpdump ir izveidots ar iespējotu kriptogrāfiju. noslēpies ASCII tekstu par ESP slepeno atslēgu. Pašlaik nevaram veikt patvaļīgu bināro vērtību. Opcija pieņem RFC2406 ESP, nevis RFC1827 ESP. Opcija ir paredzēta tikai atkļūdošanas nolūkiem, un šīs opcijas izmantošana ar patiesi "slepeno" taustiņu tiek noraidīta. Iesniedzot IPsec slepeno atslēgu komandrindā, jūs to redzat citiem, izmantojot ps (1) un citos gadījumos.

-f

Drukājiet "ārvalstu" interneta adreses skaitliski, nevis simboliski (šī opcija ir paredzēta, lai novērstu nopietnus smadzeņu bojājumus Saule serverī - parasti tā pastāvīgi pārtrauc tulkojumus vietējos interneta numurus).

-F

Izmantojiet failu kā ievadi filtra izteiksmei. Papildu izteiksme komandrindā tiek ignorēta.

-i

Klausieties interfeisu . Ja nav norādīts, tcpdump meklē sistēmas saskarnes sarakstu ar zemāko numurēto, konfigurēto saskarni (izņemot loopback). Kaklasaites tiek sadalītas, izvēloties agrāko spēli.

Linux sistēmās ar 2.2 vai jaunākiem kodoliem, interfeisa argumentu `` any '' var izmantot, lai fiksētu paketes no visām saskarnēm. Ievērojiet, ka "jebkura" ierīces uzņemšana netiks veikta vienkāršā režīmā.

-l

Padarīt stdout līniju buferizēt. Noderīgs, ja vēlaties, lai dati tiktu uztverti. Piemēram
`` tcpdump -l | tee dat "vai" `tcpdump -l> dat un tail -f dat '".

-m

Ielādēt SMI MIB moduļa definīcijas no faila moduļa . Šo opciju var izmantot vairākas reizes, lai ielādētu vairākus MIB moduļus tcpdump .

-n

Nepārveidojiet uzņēmēja adreses nosaukumiem. To var izmantot, lai izvairītos no DNS meklēšanām.

-nn

Nepārveidojiet protokolu un portu numurus utt. Arī vārdiem.

-N

Nenospiediet saimniekdatora nosaukumu domēna nosaukuma kvalifikāciju. Piemēram, ja jūs piešķirat šo karodziņu, tad tcpdump izdrukās `` nic '' nevis `` nic.ddn.mil ''.

-O

Neizmantojiet pakešu atbilstības kodu optimizētāju. Tas ir noderīgi tikai tad, ja jums ir aizdomas par kļūdu optimizētājā.

-p

Nenovietojiet interfeisu izklaidējošā režīmā. Ņemiet vērā, ka saskarne kādā citā nolūkā var būt nepārvaldīta; tādēļ `-p 'nevar izmantot kā saīsinājumu" ētera uzņēmēja {local-hw-addr} "vai ētera apraidei".

-q

Ātrā (klusā?) Izlaide. Drukājiet mazāk protokola informācijas, tāpēc izejas līnijas ir īsākas.

-R

Pieņemsim, ka ESP / AH pakešu pamatā ir vecā specifikācija (RFC1825 līdz RFC1829). Ja norādīts, tcpdump nebūs drukāt atkārtojuma novēršanas lauku. Tā kā ESP / AH specifikācijā nav protokola versijas lauka, tcpdump nevar secināt ESP / AH protokola versiju.

-r

Lasīt paketes no faila (kas tika izveidots ar -w opciju). Standarta ievadi izmanto, ja fails ir `` - ''.

-S

Drukājiet absolūto, nevis relatīvo TCP secības numurus.

-s

Snarf piesaista katra paketes datu baitus, nevis 68 pēc noklusējuma (ar SunOS NIT minimums faktiski ir 96). 68 baiti ir piemēroti IP, ICMP, TCP un UDP, bet tie var saīsināt protokola informāciju no vārdu servera un NFS paketēm (skatiet tālāk). Pakete, kas ir saīsināta ierobežotā momentuzņēmuma dēļ, ir norādīta izejā ar `` [| proto ] '', kur proto ir tā protokola līmeņa nosaukums, kurā notiek sagriešana. Ņemiet vērā, ka lielāku momentuzņēmumu uzņemšana palielina laiku, kas nepieciešams paketu apstrādei, un faktiski samazina pakešu buferizācijas apjomu. Tas var izraisīt pakešu pazaudēšanu. Jums jāierobežo snaplen ar mazāko skaitli, kas uztvers jums interesējošo protokola informāciju. Noklusējuma iestatīšana līdz 0 nozīmē izmantot nepieciešamo garumu, lai noķertu veselus pakešus .

-T

Spēku paketes, kas izvēlētas ar " izteiksmi ", jāinterpretē norādītajā veidā . Šobrīd zināmie veidi ir cnfp (Cisco NetFlow protokols), rpc (Remote Procedure Call), rtp (reāllaika lietojumprogrammu protokols), rtcp (reāllaika lietojumprogrammu vadības protokols), snmp (vienkāršais tīkla pārvaldības protokols), vat (Visual Audio Tool ) un wb (izplatīta baltā valde).

-t

Neizdrukājiet laika zīmogu uz katras izgāšanas līnijas.

-tt

Izdrukājiet neformatētu laika zīmogu katrā izlaiduma rindā.

-U

Ievieto privilēģijas ar root un pārveido lietotāja ID lietotāja un grupas ID lietotājiem primārajā grupā.

Piezīme! Red Hat Linux automātiski atbrīvo lietotāja tiesības "` pcap '', ja nav norādīts nekas cits.

-ttt

Drukājiet delta (mikro sekundēs) starp pašreizējo un iepriekšējo līniju katrā izlaiduma līnijā.

-tttt

Izdrukājiet laika zīmogu noklusējuma formātā, ko turpina pēc datuma katrā izlaiduma rindā.

-u

Drukājiet nedecodētus NFS rokturus.

-v

(Nedaudz vairāk) verbose izeja. Piemēram, tiek izdrukāts laiks, kurā dzīvot, identifikācija, kopējais garums un opcijas IP paketē. Arī nodrošina papildu paketes integritātes pārbaudes, piemēram, IP un ICMP galvenes kontrolsummas verifikāciju.

-vv

Pat daudz verbose izlaidi. Piemēram, no NFS atbildes pakešu tiek izdrukāti papildu lauki, un SMB paketes tiek pilnībā dekodētas.

-vvv

Pat daudz verbose izlaidi. Piemēram, telnet SB ... SE opcijas tiek izdrukātas pilnībā. Ar -X telnet opcijām tiek izdrukāts arī heksadecīns.

-w

Rakstiet izejošos paketus failam, nevis parsēšanu un drukāšanu. Tos vēlāk var izdrukāt ar -r opciju. Standarta izvade tiek izmantota, ja fails ir `` - ''.

-x

Izdrukājiet katru paketi (atskaitot saišu līmeņa galveni) heksadėžē. Tiks drukāti mazāki no visa iepakojuma vai lentes baiti. Ņemiet vērā, ka tas ir viss saites slāņa pakete, tādēļ saišu slāņiem, kas pad (piem., Ethernet), drukāšanas baitus izdrukā arī tad, ja augstākā slāņa pakete ir īsāka par nepieciešamo polsterējumu.

-X

Drukājot hex, arī izdrukājiet ascii. Tādējādi, ja ir iestatīts arī -x , pakete tiek izdrukāta hex / ascii. Tas ir ļoti noderīgi jaunu protokolu analīzei. Pat tad, ja arī nav iestatīts -x , daži daĜu daĜu daĜu var izdrukāt hex / ascii.

izteiksme

izvēlas, kuras paketes tiks dempingētas. Ja neviena izteiksme netiek dota, visas paketes tīklā tiks dempingētas. Pretējā gadījumā tiks noņemti tikai tie iepakojumi, kuru izteiksme ir "true".

Izteiksme sastāv no vienas vai vairākām primitīvām. Primitīvi parasti sastāv no id (vārds vai numurs), pirms kura ir viens vai vairāki kvalifikācijas kritēriji. Ir trīs dažādi kvalifikācijas veidi:

tips

pretendenti saka, kāda veida lieta attiecas uz id vārdu vai numuru. Iespējamie veidi ir uzņēmēja , tīkla un ostas . Piemēram, "host foo", "net 128.3", "port 20". Ja nav tipa kvalifikācijas, uzņēmēja tiek pieņemts.

dir

pretendenti norāda konkrētu pārsūtīšanas virzienu uz un / vai no id . Iespējamie virzieni ir src , dst , src vai dst un src un dst . Piemēram, `src foo ',` dst net 128.3', `src vai dst porta ftp-data '. Ja trūkst atlases, tiek pieņemts src vai dst . Nulles saišu slāņiem (ti, no punkta uz punktu protokoliem, piemēram, slīdēšanai) ieejas un izejošo kvalifikāciju var izmantot, lai norādītu vēlamo virzienu.

proto

pretendenti ierobežo atbilstību konkrētam protokolam. Iespējamie protos ir: ēteris , fddi , tr , ip , ip6 , arp , rarp , decnet , tcp un udp . Piemēram, "eeters src foo", "arp net 128.3", "tcp ports 21". Ja nav proto kvalifikatora, tiek pieņemti visi protokolam atbilstošie protokoli. Piemēram, `src foo 'nozīmē` ip vai arp vai rarp' src foo '(izņemot, ja tas nav juridisks sintakse),' net bar 'nozīmē `(ip vai arp vai rarp) net bar' un 'port 53' nozīmē `(tcp vai udp) osta 53 '.

[`fddi 'patiešām ir aizstājvārds` eetram'; parsētājs tos izturas vienādi kā "norādīto tīkla saskarnes datu līniju līmeni". FDDI galvenes satur Ethernet tipa avota un galamērķa adreses, un bieži vien tiem ir Ethernet tipa pakešu veidi, tādēļ varat filtrēt šos FDDI laukus tāpat kā ar analogajiem Ethernet laukiem. FDDI galvenes satur arī citus laukus, taču to nevar skaidri norādīt filtra izteiksmē.

Līdzīgi `tr 'ir aizstājējs nosaukums` eter'; iepriekšējā punkta paziņojumi par FDDI galvenēm attiecas arī uz Token Ring galvenēm.]

Papildus iepriekšminētajam ir daži īpaši primitīvi atslēgvārdi, kas neatbilst modelim: vārteja , apraide , mazākas , lielākas un aritmētiskās izteiksmes. Visi šie ir aprakstīti tālāk.

Sarežģītāki filtra izteicieni tiek veidoti, izmantojot vārdus un vai ne primitīvu kombināciju. Piemēram, "host foo, nevis port ftp, nevis port ftp-data". Lai saglabātu mašīnrakstīšanu, vienādus kvalifikatoru sarakstus var izlaist. Piemēram, `tcp dst port ftp vai ftp-data vai domēns 'ir tieši tāds pats kā` tcp dst port ftp vai tcp dst ports ftp-data vai tcp dst porta domēns'.

Pieļaujamie primitīvi ir:

dst uzņēmēja resursdators

Taisnība, ja paketes IPv4 / v6 galamērķa lauks ir resursdators , kas var būt vai nu adrese, vai vārds.

src resursdatora resursdators

Taisnība, ja paketes IPv4 / v6 avota lauks ir resursdators .

uzņēmēja saimniekdators

Taisnība, ja pakešu IPv4 / v6 avots vai galamērķis ir resursdators . Jebkura no iepriekš minētajām saimniekdara izteiksmēm var tikt pievienota ar atslēgvārdiem, ip , arp , rarp vai ip6 kā:

ip resursdatora resursdators

kas ir līdzvērtīgs:

ētera proto \ ip un uzņēmējas saimniekdators

Ja resursdators ir nosaukums ar vairākām IP adresēm, katra adrese tiks pārbaudīta, lai iegūtu atbilstību.

ēteris dst ehost

Taisnība, ja Ethernet galamērķa adrese ir ehost . Ehost var būt vai nu nosaukums no / etc / ethers vai skaitļa (skatiet ciparu formāta ēterus (3N)).

Ether src ehost

Taisnība, ja Ethernet avota adrese ir ehost .

ētera saimniekdators ehost

Taisnība, vai nu Ethernet avota vai galamērķa adrese ir ehost .

vārtejas resursdators

Taisnība, ja pakete izmanto uzņēmēju kā vārteju. Ti, Ethernet avota vai galamērķa adrese bija uzņēmēja, bet ne IP avots, ne IP adresāts bija uzņēmēja . Hostam ir jābūt nosaukumam, un tam jāatrodas gan no ierīces resursdatora nosaukuma līdz IP adreses izšķiršanas mehānismiem (resursdatora nosaukuma failam, DNS, NIS uc), gan no ierīces resursdatora nosaukuma līdz Ethernet adreses izšķirtspējai mehānisms (/ etc / eters uc). (Līdzvērtīgs izteiciens ir

ētera saimniekdators ehost, nevis saimniekdators

ko var izmantot ar nosaukumiem vai numuriem saimniekam / ehost .) Šo sintaksi nedarbojas konfigurācijā, kas ir iespējota ar IPv6.

dst neto neto

Taisnība, ja paketes IPv4 / v6 adresāta adresei ir tīkla tīkla numurs. Tīkls var būt vai nu nosaukums no / etc / networks vai tīkla numura (sīkāk skatīt tīklus (4) ).

src neto neto

Taisnība, ja paketes IPv4 / v6 avota adresei ir tīkla tīkla numurs.

neto neto

Taisnība, ja paketes IPv4 / v6 avota vai galamērķa adresei ir tīkla tīkla numurs.

neto neto maska netmask

Taisnība, ja IP adrese atbilst tīklam ar konkrētu tīkla masku . Var tikt kvalificēts ar src vai dst . Ņemiet vērā, ka šis sintaksis nav derīgs IPv6 tīklam .

neto neto / len

Taisnība, ja IPv4 / v6 adrese atbilst tīklam ar netmaska len bitu platumu. Var tikt kvalificēts ar src vai dst .

dst ostas osta

Taisnība, ja pakete ir ip / tcp, ip / udp, ip6 / tcp vai ip6 / udp un tai ir ostas galamērķa porta vērtība. Otra var būt skaitlis vai nosaukums / etc / services (sk. Tcp (4P) un udp (4P)). Ja tiek izmantots nosaukums, tiek pārbaudīts gan porta numurs, gan protokols. Ja tiek izmantots cipars vai neskaidrs nosaukums, tiek pārbaudīts tikai porta numurs (piemēram, dst port 513 izdrukās gan tcp / login trafiku, gan udp / kuru satiksme un porta domēns izdrukās gan TCP / domēnu, gan udp / domēna datplūsmu).

src ostas ports

Taisnība, ja paketei ir ostas portāla vērtība.

ostas osta

Taisnība, ja paketes avota vai galamērķa ports ir ports . Jebkurš no iepriekš minētajiem portu izteicieniem var būt pievienots atslēgvārdiem, tcp vai udp , kā norādīts:

tcp src porta ports

kas atbilst tikai tcp paketēm, kuru avota ports ir ports .

mazāks garums

Taisnība, ja paketes garums ir mazāks vai vienāds ar garumu . Tas ir līdzvērtīgs:

len <= garums .

lielāks garums

Taisnība, ja paketei ir garums, kas ir lielāks vai vienāds ar garumu . Tas ir līdzvērtīgs:

len> = garums .

ip proto protokols

Taisnība, ja pakete ir protokola tipa protokola IP paketne (skat. Ip (4P)). Protokols var būt skaitlis vai viens no nosaukumiem: icmp , icmp6 , igmp , igrp , pim , ah , esp , vrrp , udp vai tcp . Ņemiet vērā, ka identifikatori tcp , udp un icmp ir arī atslēgvārdi, un tie jāaizvāc, izmantojot atpakaļsvītroloģi (\), kas ir \\ C-shell. Ņemiet vērā, ka šis primitīvs nepārraida protokola galvenes ķēdi.

IP6 proto protokols

Taisnība, ja pakete ir protokola tipa protokola pakotne IPv6. Ņemiet vērā, ka šis primitīvs nepārraida protokola galvenes ķēdi.

ip6 protochain protokols

Taisnība, ja pakete ir IPv6 pakete, un protokola galvenes ķēdē ir protokola galvene ar tipa protokolu . Piemēram,

ip6 protochain 6

atbilst jebkuram IPv6 paketei ar TCP protokola galveni protokola galvenes ķēdē. Pakete var saturēt, piemēram, autentifikācijas galvenes, maršrutēšanas galvenes vai hop-by-hop opcijas galvenes starp IPv6 galveni un TCP galveni. Šis primitīvs izstaro BPF kods ir sarežģīts, un to nevar optimizēt ar BPF optimizētāja kodu tcpdump , tāpēc tas var būt nedaudz lēns.

ip protochain protokols

Līdzvērtīgs IP6 protochain protokols , bet tas attiecas uz IPv4.

ētera raidījums

Taisnība, ja pakete ir ethernet apraides pakete. Ētera atslēgvārds nav obligāts.

ip raidījums

Taisnība, ja pakete ir IP apraides pakete. Tā pārbauda gan visu nulles, gan visu apraides konvenciju, un meklē vietējo apakštīkla masku.

ētera multicast

Taisnība, ja pakete ir Ethernet multicast pakete. Ētera atslēgvārds nav obligāts. Tas ir saīsināts par " etiera [0] & 1! = 0 ".

ip multicast

Taisnība, ja pakete ir IP multicast pakete.

ip6 multicast

Taisnība, ja pakete ir IPv6 multicast pakete.

ēterproto protokols

Taisnība, ja paketē ir ētera tipa protokols . Protokols var būt skaitlis vai viens no nosaukumiem ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx vai netbeui . Ņemiet vērā, ka šie identifikatori ir arī atslēgvārdi, un tie jāaizvāc, izmantojot slīpsvītru (\).

[Attiecībā uz FDDI (piemēram, ` fddi protocol arp ') un Token Ring (piemēram,` tr protocol arp ') lielākajā daļā šo protokolu protokola identifikācija tiek iegūta no 802.2 Logical Link Control (LLC) galvenes, kas parasti tiek novietots virs FDDI vai Token Ring galvenes.

Ja filtrē lielāko daļu protokola identifikatoru FDDI vai Token Ring, tcpdump pārbauda tikai LLC sadaļas protokola ID lauku tā saucamajā SNAP formātā ar 0x000000 Organizatoriskā vienības identifikatoru (OUI), kas paredzēts iekapsulētajam Ethernet; tas nekontrolē, vai pakete ir SNAP formātā ar 0x000000 OUI.

Izņēmumi ir izo , kuriem tā pārbauda LLC header, stp un netbeui DSAP (galamērķa pakalpojuma piekļuves punkta) un SSAP (avota pakalpojumu piekļuves punkta) laukus, kur tā pārbauda LLC header DSAP un atalk , kur tā pārbauda SNAP formāta paketi ar OUI 0x080007 un Appletalk etype.

Ethernet gadījumā tcpdump pārbauda Ethernet tipa lauku lielākajai daļai šo protokolu; izņēmumi ir iso , sap un netbeui , par kuriem tā pārbauda 802.3 rāmi, un pēc tam pārbauda LLC virsrakstu tāpat kā FDDI un Token Ring, atalk , kur tā pārbauda gan Appletalk tipa Ethernet rāmī, gan SNAP formāta pakete, tāpat kā FDDI un Token Ring, aarp , kur tā pārbauda Appletalk ARP etēnu Ethernet rāmī vai 802.2 SNAP rāmī ar 0x000000 OUI un ipx , kur tā pārbauda IPX etype Ethernet rāmis, IPX DSAP, kas atrodas LLC virsrakstā, 802,3 bez IPK nosaukuma, kas ietverts LLC virsrakstā, un IPX etape SNAP rāmī.]

Decet src resursdators

Taisnība, ja DECNET avota adrese ir resursdators , kas var būt formas `` 10.123 '' adrese vai DECNET resursdatora nosaukums. [DECNET resursdatora nosaukuma atbalsts ir pieejams tikai Ultrix sistēmās, kuras ir konfigurētas, lai palaistu DECNET.]

decnet dst host

Taisnība, ja DECNET galamērķa adrese ir saimniekdators .

decnet resursdatora resursdatora

Taisnība, vai DECNET avota vai galamērķa adrese ir resursdators .

ip , ip6 , arp , rarp , atalk , aarp , decnet , iso , stp , ipx , netbeui

Saīsinājumi:

Eteris proto p

kur p ir viens no iepriekšminētajiem protokoliem.

lat , moprc , mopdl

Saīsinājumi:

Eteris proto p

kur p ir viens no iepriekšminētajiem protokoliem. Ņemiet vērā, ka tcpdump pašlaik nezina, kā analizēt šos protokolus.

vlan [vlan_id]

Taisnība, ja pakete ir IEEE 802.1Q VLAN pakete. Ja ir norādīts [vlan_id] , tikai taisnība ir tas, ka paketē ir norādītais vlan_id . Ņemiet vērā, ka pirmais vlan atslēgvārds, kas sastopams izteiksmē, maina dekodēšanas kompensācijas atlikušo izteiksmi , pieņemot, ka pakete ir VLAN pakete.

tcp , udp , icmp

Saīsinājumi:

ip proto p vai ip6 proto p

kur p ir viens no iepriekšminētajiem protokoliem.

iso proto protokols

Taisnība, ja pakete ir protokola tipa protokola OSI pakete. Protokols var būt skaitlis vai viens no nosaukumiem klnp , esis vai isis .

clnp , esis , isis

Saīsinājumi:

iso proto p

kur p ir viens no iepriekšminētajiem protokoliem. Ņemiet vērā, ka tcpdump veic nepilnīgu uzdevumu analizēt šos protokolus.

expr relop expr

Taisnība, ja saistība ir tur, kur relop ir viens no>, <,> =, <=, =,! =, Un expr ir aritmētiskā izteiksme, kas sastāv no vesela skaitļu konstantes (izteikts C standarta sintaksē), parastos binārā operatora [+ , -, *, /, &, |], garuma operators un īpašie pakešu datu piekļuves līdzekļi. Lai piekļūtu datiem paketē, izmantojiet šādu sintaksi:

proto [ expr : lielums ]

Proto ir viens no ether, fddi, tr, ppp, slip, link, ip, arp, rarp, tcp, udp , icmp vai ip6 , un norāda protokola slāni indeksa darbībai. ( eeters, fddi, tr, ppp, slaids un visas saites attiecas uz saites slāni.) Jāņem vērā, ka tcp, udp un citi augšējā līmeņa protokola veidi attiecas tikai uz IPv4, nevis uz IPv6 (tas tiks fiksēts nākotnē). Baitu nobīde, salīdzinot ar norādīto protokola slāni, tiek norādīta ar expr . Izmērs nav obligāts un norāda interesējošajā jomā bitu skaitu; tas var būt viens, divi vai četri, un pēc noklusējuma tas ir viens. Operatora garums, kas norādīts ar atslēgvārdu len , norāda paketes garumu.

Piemēram, ` eeters [0] & 1! = 0 'nozveja visu multicast datplūsmu. Faktiski " ip [0] & 0xf! = 5 " nozvejas visus IP paketes ar iespējām. Faktiski " ip [6: 2] & 0x1fff = 0 " tiek nozvejotas tikai nesagraujošās datagrammas un sadrumstalotu datagrammu fragmenta nulle. Šī pārbaude tiek netieši piemērota tcp un udp indeksa darbībām. Piemēram, tcp [0] vienmēr nozīmē pirmo TCP galvenes baitu un nekad nenozīmē pirmo interfeisa fragmenta baitu.

Dažas kompensācijas un lauka vērtības var izteikt kā vārdus, nevis kā ciparu vērtības. Pieejami sekojoši protokola galvenes lauku kompensējumi: icmptype (ICMP tipa lauks), icmpcode (ICMP koda lauks) un tcpflags (TCP karšu lauks).

Ir pieejamas šādas ICMP tipa lauka vērtības: icmp-echoreply , icmp -unreach , icmp-sourcequench , icmp -novirzīšana , icmp-echo , icmp -routeradvert , icmp -routersolice , icmp -timxceed , icmp -paramprob , icmp -tstamp , icmp -satprasīt , icmp -ireq , icmp -ireqreply , icmp -maskreq , icmp -maskreply .

Ir pieejamas šādas TCP karodziņu lauka vērtības: tcp-fin , tcp-syn , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

Primitīvas var kombinēt, izmantojot:

Pieslēgtā pirmizdevēju un operatoru grupa (iekavas ir īpašas pārlūkprogrammai Shell, un tām jābūt izdzēstiem).

Negats (" ! " Vai " nav ").

Concatenācija (` && 'vai` and ').

Alternatīva (` || 'vai` vai ').

Negats ir visaugstākā prioritāte. Alfabētiskā secība un apvienošana ir vienāda prioritāte un saistīta no kreisās puses uz labo. Ņemiet vērā, ka saīsināšanai tagad ir nepieciešami skaidri un žetoni, nevis pretstatījums.

Ja identifikators tiek piešķirts bez atslēgvārda, tiek pieņemts visjaunākais atslēgvārds. Piemēram,

nav uzņemšanas vs un ace

ir īss

nav uzņemšanas vs un uzņēmējas ace

ko nedrīkst sajaukt ar

nē (uzņēmēja vs vai ace)

Izteiksmju argumentus var nodot tcpdump kā vienu argumentu vai kā vairākus argumentus, atkarībā no tā, kura ir ērtāka. Parasti, ja izteiksme satur Shell meta rakstzīmes, to ir vieglāk nodot kā vienu, citēto argumentu. Pirms pārmeklēšanas tiek apvienoti vairāki argumenti ar atstarpēm.

PIEMĒRI

Lai drukātu visus iepakojumus, kas ierodas vai atkāpjas no saulrieta :

tcpdump saimnieks sundown

Lai drukātu satiksmi starp helios un karsto vai tūziju :

tcpdump saimnieks helios un \ (karstu vai ace \)

Lai drukātu visus IP paketus starp ace un jebkuru uzņēmēju, izņemot helios :

tcpdump ip host ace un nevis helios

Lai drukātu visu satiksmi starp vietējiem saimniekiem un saimniekiem Berkelejā:

tcpdump neto ucb-ēteris

Lai izdrukātu visu ftp datplūsmu, izmantojot interneta vārteju: (ņemiet vērā, ka izteiciens ir citēts, lai novērstu to, ka apvalks no (nav) interpretēts iekavās):

tcpdump "vārtejas snup un (port ftp vai ftp-data)"

Lai drukātu trafiku, kas nav iegūta no vietējiem saimniekiem, un nav paredzēta vietējiem saimniekiem (ja jums ir vārteja uz citu tīklu, šis saturs nekad nebūtu jānovieto vietējā tīklā).

tcpdump ip un nevis tīkla vietējais tīkls

Lai drukātu sākuma un beigu paketes (SYN un FIN paketes) par katru TCP sarunu, kurā iesaistīta nevietā uzņēmēja.

tcpdump 'tcp [tcpflags] & (tcp-syn | tcp-fin)! = 0 un nevis src un dst neto lokālais tīkls '

Lai drukātu IP paketes, kuru garums pārsniedz 576 bitus, izmantojot vārteju:

tcpdump "vārteja snup un ip [2: 2]> 576 '

Lai drukātu IP apraides vai multicast paketes, kas netika nosūtīti, izmantojot Ethernet apraidi vai multicast:

tcpdump "ēteris [0] & 1 = 0 un ip [16]> = 224 '

Lai izdrukātu visus ICMP paketes, kas nav echo pieprasījumi / atbildes (ti, ne ping paketes):

tcpdump 'icmp [icmptype]! = icmp-echo un icmp [icmptype]! = icmp-echoreply'

OUTPUT FORMAT

Tcpdump produkcija ir atkarīga no protokola. Tālāk sniegts īss apraksts un piemēri lielākajai daļai formātu.

Linklīmes galvenes

Ja ir dota opcija -e, saite līmeņa virsraksts tiek izdrukāts. Uz eternetēm tiek izdrukāta avota un galamērķa adrese, protokols un pakešu garums.

FDDI tīklos opcija "-e" liek tcpdump izdrukāt lauku "frame control", avota un galamērķa adreses un paketes garumu. Normālie paketēm (piemēram, tiem, kas satur IP datagrammas) ir "async" pakotnes, kuru prioritātes vērtība ir no 0 līdz 7, piemēram, " async4 ". Tiek pieņemts, ka paketēs ir 802.2 Logical Link Control (LLC) pakete; LLC virsraksts tiek drukāts, ja tas nav ISO datagramma vai tā saucamais SNAP paketējums.

Token Ring tīklā opcija -e liek tcpdump izdrukāt laukus "access control" un "frame control", avota un galamērķa adreses un paketes garumu. Tāpat kā FDDI tīklos tiek pieņemts, ka pakām ir LLC pakete. Neatkarīgi no tā, vai ir norādīta opcija "-e", avota maršrutēšanas informācija tiek drukāta uz avota maršrutētiem paketēm.

(NB! Turpmāk aprakstīts priekšstats par SLIP kompresijas algoritmu, kas aprakstīts RFC-1144.)

Par SLIP saitēm tiek izdrukāts virziena indikators (`` I '' attiecībā uz ienākošo, `` O '' ārējai informācijai), pakešu tips un saspiešanas informācija. Pakešu tips tiek izdrukāts vispirms. Trīs tipi ir ip , utcp un ctcp . Ip paketēm nav iespiesta nekāda saišu informācija. TCP pakešu gadījumā savienojuma identifikators tiek drukāts pēc tipa. Ja pakete ir saspiesta, tiek izdrukāta tā kodētā galvene. Īpašie gadījumi tiek drukāti kā * S + n un * SA + n , kur n ir summa, pēc kuras ir mainīts kārtas numurs (vai kārtas numurs un ack). Ja tas nav īpašs gadījums, izdrukā nulles vai vairāk izmaiņas. Izmaiņas norāda U (steidzamais rādītājs), W (logs), A (ack), S (kārtas numurs) un I (pakešu ID), kam seko delta (+ n vai -n) vai jauna vērtība (= n). Visbeidzot tiek izdrukāts datu apjoms paketē un saspiestais galvenes garums.

Piemēram, nākamajā rindiņā parādīts saspiests TCP paketes ārējais savienojums ar netiešo savienojuma identifikatoru; ack ir mainījies par 6, kārtas numurs ir 49, un paketes ID - 6; ir 3 baiti datu un 6 baiti saspiestā galvenes:

O ctcp * A + 6 S + 49 I + 6 3 (6)

ARP / RARP paketi

Arp / rarp izeja parāda pieprasījuma veidu un tā argumentus. Formāts ir paredzēts pašsaprotams. Šeit ir īss paraugs, kas ņemts no "rlogin" sākuma no uzņēmējas rtsg uz csam uzņēmēju:

Arp kurš-csam pateikt rtsg arp atbildi csam ir-pie CSAM

Pirmajā rindā teikts, ka rtsg nosūtīja ARP paketi, kurā tika lūgta interneta resursdatora csam ethernet adrese. Csam atbildes ar Ethernet adresi (šajā piemērā Ethernet adreses ir cepurēs un interneta adresēs mazajiem burtiem).

Tas būtu mazāk lieki, ja būtu paveikts tcpdump -n :

arp who-128.3.254.6 pateikt 128.3.254.68 arp atbildi 128.3.254.6 ir-02: 07: 01: 00: 01: c4

Ja mēs būtu izdarījuši tcpdump-e , būtu redzams fakts, ka pirmais pakts tiek pārraidīts un otrais ir punkts-punkts-punkts.

RTSG Broadcast 0806 64: arp kurš-ir csam pateikt rtsg CSAM RTSG 0806 64: arp atbilde csam ir-pie CSAM

Attiecībā uz pirmo paketi tas norāda, ka Ethernet avota adrese ir RTSG, galamērķis ir Ethernet apraides adrese, tipa lauks bija hex 0806 (tips ETHER_ARP), un kopējais garums bija 64 baiti.

TCP paketi

(NB! Turpmākajā aprakstā ir pazīšanās par TCP protokolu, kas aprakstīts RFC-793. Ja neesat pazīstams ar protokolu, ne šis apraksts, ne tcpdump jums nebūs daudz noderīgas.)

TCP protokola līnijas vispārējais formāts ir:

src> dst: karodziņu dati-seqno ack loga steidzamas iespējas

Src un dst ir avota un galamērķa IP adreses un porti. Karodziņi ir daži S (SYN), F (FIN), P (PUSH) vai R (RST) vai vienotas "." Kombinācijas. (bez karodziņiem). Data-seqno apraksta sērijas telpas daļu, uz kuru attiecas šī paka dati (skatiet tālāk sniegto piemēru). Ack ir nākamo datu kārtas numurs, kas sagaidīts citā šajā savienojuma virzienā. Logs ir pieejamo bufera vietu baitu skaits, kas ir cits virziens šajā savienojumā. Urg norāda, ka paketē ir steidzami dati. Iespējas ir tcp opcijas, kas pievienotas leņķa iekavās (piemēram, ).

Src, dst un karogi vienmēr ir klāt. Pārējie lauki ir atkarīgi no paketes tcp protokola galvenes satura un tiek izvadīti tikai tad, ja tas ir nepieciešams.

Šeit ir rlogin sākuma daļa no resursdatora rtsg, lai uzņemtu csam .

rtsg.1023> csam.login: S 768512: 768512 (0) win 4096 csam.login> rtsg.1023: S 947648: 947648 (0) ack 768513 win 4096 rtsg.1023> csam. Pieslēgties: . ack 1 win 4096 rtsg.1023> csam.login: P 1: 2 (1) ack 1 win 4096 csam.login> rtsg.1023:. ack 2 win 4096 rtsg.1023> csam.login: P 2:21 (19) ack 1 win 4096 csam.login> rtsg.1023: P 1: 2 (1) ack 21 win 4077 csam.login> rtsg.1023: P 2: 3 (1) ack 21 win 4077 urg 1 csam.login> rtsg.1023: P 3: 4 (1) ack 21 win 4077 urg 1

Pirmajā rindā teikts, ka rtsg tcp ports 1023 nosūtīja paketi, lai pieslēgtu login csam. S norāda, ka ir iestatīts SYN karogs. Pakešu kārtas numurs bija 768512 un tajā nebija datu. (Apzīmējums ir "pirmais: pēdējais (nbytes)", kas nozīmē "secības numurus vispirms līdz, bet neietverot pēdējo, kas ir nbytes baiti no lietotāja datiem"). Nebija neviena piggy backed ack, pieejamais saņemšanas logs bija 4096 baiti un bija opcija max-segment-size, pieprasot mss 1024 baiti.

Csam atbildes ar līdzīgu paketi, izņemot gadījumus, kad tajā ir ietverts cgs balstīts ack, kas paredzēts rtsg SYN. Rtsg tad acks csam's SYN. "." nozīmē, ka nav noteikti karodziņi. Paketē nebija datu, tāpēc nav datu kārtas numura. Ņemiet vērā, ka ack secības numurs ir mazs vesels skaitlis (1). Pirmo reizi tcpdump redz TCP "saruna", tas izdrukā kārtas numuru no paketes. Sekojošajās sarunu paketēs tiek izdrukāta atšķirība starp pašreizējā paketes kārtas numuru un šo sākotnējo kārtas numuru. Tas nozīmē, ka pēc pirmās kārtas numurus var interpretēt kā relatīvā baita pozīcijas sarunu datu straumē (ar pirmo datu bitu, katrs virziens ir `1 '). `-S 'ignorēs šo funkciju, izraisot sākotnējo kārtas numuru izsaukšanu.

6. rindā rtsg nosūta csam 19 bitu datus (no 2 līdz 20 baitiem sarunas rtsg -> csam pusē). PUSH karogs ir iestatīts paketē. 7. rindiņā csam saka, ka ir saņemti dati, ko rtsg nosūta, bet neieskaitot 21. baitu. Lielākā daļa no šiem datiem, šķiet, sēž lūkas buferī, jo csam saņemšanas logs ir sasniedzis 19 baiti mazāku. Csam arī nosūta vienu baitu datus rtsg šajā paketē. Astotajā un 9. līnijā csam nosūta divus bitus steidzamos, bloķētos datus rtsg.

Ja momentuzņēmums bija pietiekami mazs, ka tcpdump neķīmēja pilnu TCP galveni, tas interpretē tik daudz virsraksta kā var, un tad ziņo `` [| tcp ] '', lai norādītu, ka atlikumu nevar interpretēt. Ja galvenē ir fiktīvs variants (viens ar garumu, kas ir vai nu pārāk mazs vai virs gala beigām), tcpdump ziņo par to kā `` [ bad opt ] '' un neinterpretē citas iespējas (jo nav iespējams pateikt) kur tie sākas). Ja galvenes garums norāda, ka opcijas ir pieejamas, bet IP datagrammas garums nav pietiekami ilgs, lai opcijas patiešām varētu būt tur, tcpdump ziņo to kā `` [ bad hdr length ] ''.

TCP pakešu saglabāšana ar īpašām karodziņu kombinācijām (SYN-ACK, URG-ACK uc)

TCP galvenes kontroles bitu sadaļā ir 8 biti:

CWR | ECE | URG | ACK | PSH | RST | SYN | FIN

Pieņemsim, ka mēs vēlamies skatīties pakešus, ko izmanto TCP savienojuma izveidei. Atcerieties, ka TCP, ja tā inicializē jaunu savienojumu, izmanto 3-virzienu rokasspiediena protokolu; savienojuma secība attiecībā pret TCP vadības bitiem ir

1) Zvanītājs nosūta SYN

2) Saņēmējs reaģē ar SYN, ACK

3) Zvanītājs nosūta ACK

Tagad mēs esam ieinteresēti notveršanā paketēs, kuriem ir tikai SYN bits (1. solis). Ņemiet vērā, ka mēs nevēlamies paketes no 2. posma (SYN-ACK), tikai vienkārša sākotnējā SYN. Nepieciešama pareiza tcpdump filtra izteiksme.

Atsaukt TCP galvenes struktūru bez opcijām:

0 15 31 ---------------------------------------------- ------------------ | avota osta | galamērķa osta | -------------------------------------------------- --------------- | kārtas numurs | -------------------------------------------------- --------------- | apstiprinājuma numurs | -------------------------------------------------- --------------- | HL | rsvd | C | E | U | A | P | R | S | F | loga izmērs | -------------------------------------------------- --------------- | TCP kontrolsumma | steidzams rādītājs | -------------------------------------------------- ---------------

TCP galvenē parasti ir 20 oketiti dati, ja vien nav opciju. Diagrammas pirmajā rindā ir okteti 0-3, otrajā rindiņā rāda 4-7 oktetus utt.

Sākot skaitīt ar 0, atbilstošie TCP vadības biti ir ietverti oketē 13:

0 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | ---------------- | HL | rsvd | C | E | U | A | P | R | S | F | loga izmērs | ---------------- | --------------- | --------------- | - --------------- | | 13 oktets | | |

Let's ir tuvāk apskatīt oktets nē. 13:

| | | --------------- | | C | E | U | A | P | R | S | F |. | | --------------- | | 7 5 3 0 |

Tie ir TCP kontroles biti, kurus mūs interesē. Šo oktetu bitu skaitu esam numurējuši no 0 līdz 7, no labās uz kreiso pusi, tāpēc PSH bits ir bits 3, bet URG bit ir 5.

Atgādinām, ka mēs vēlamies uzņemt paketes ar tikai SYN komplektu. Apskatīsim, kas notiek ar oketistu 13, ja TCP datagramma ierodas ar tā galvenē iestatīto SYN bitu:

| C | E | U | A | P | R | S | F |. | | --------------- | | 0 0 0 0 0 0 1 0 | | --------------- | | 7 6 5 4 3 2 1 0 |

Aplūkojot kontroles bitu sadaļu, mēs redzam, ka ir iestatīts tikai mazais skaitlis 1 (SYN).

Pieņemot, ka okteta numurs 13 ir 8 bitu neparakstīts vesels skaitlis tīkla baidītam secībā, šī okteta bināro vērtību

00000010

un tā decimāldaļskaitļa forma ir

7 6 5 4 3 2 1 0 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 = 2

Mēs esam gandrīz pabeigti, jo tagad mēs zinām, ka, ja ir iestatīts tikai SYN, tad TCP galvenē esošā 13 okteta vērtība, ja to interpretē kā 8-bitu nepierakstītu veselu skaitli tīkla baidītam, jābūt precīzi 2.

Šīs attiecības var izteikt kā

tcp [13] == 2

Mēs varam izmantot šo izteicienu kā filtru tcpdump , lai skatītu paketes, kurām ir tikai SYN iestatījums:

tcpdump-i xl0 tcp [13] == 2

Izteiksme saka: "Ļaujiet TCP datagrammas 13. oktetiem būt decimāldaļai 2", kas ir tieši tas, ko mēs vēlamies.

Tagad pieņemsim, ka mums ir jāuztver SYN paketes, taču mums nav jāuztraucas, vai vienlaicīgi tiek iestatīts ACK vai kāds cits TCP vadības bits. Apskatīsim, kas notiek ar oketistu 13, kad ierodas TCP datagramma ar SYN-ACK iestatījumu:

| C | E | U | A | P | R | S | F |. | | --------------- | | 0 0 0 1 0 0 1 0 | | --------------- | | 7 6 5 4 3 2 1 0 |

Tagad 1. un 4. bits ir iestatīts 13. oktetā. Okteta binārā vērtība 13 ir


00010010

kas pārvēršas par decimālo

7 6 5 4 3 2 1 0 0 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 = 18

Tagad mēs nevaram vienkārši izmantot tcpdump filtra izteiksā 'tcp [13] == 18', jo tas atlasītu tikai tos pakotnes, kurām ir iestatīts SYN-ACK, bet ne tiem, kuriem ir tikai SYN komplekts. Atcerieties, ka mums nav nozīmes, ja ACK vai kāds cits kontroles bits ir iestatīts tik ilgi, kamēr ir iestatīts SYN.

Lai sasniegtu mūsu mērķi, mums loģiski ir jātērē binārā vērtība 13 okteta ar citu vērtību, lai saglabātu SYN bitu. Mēs zinām, ka mēs vēlamies, lai SYN tiktu iestatīts jebkurā gadījumā, tāpēc mēs loģiski UN ar vērtību 13. oktetā ar SYN bināro vērtību:

00010010 SYN-ACK 00000010 SYN UN 00000010 (mēs vēlamies SYN) UN 00000010 (mēs vēlamies SYN) -------- -------- = 00000010 = 00000010

Mēs redzam, ka šī operācija UN nodrošina tādu pašu rezultātu, neatkarīgi no tā, vai ir iestatīts ACK vai kāds cits TCP kontroles bits. Šīs vērtības JA vērtības un tā rezultāta decimāldaļskaitlis ir 2 (binārais 00000010), tāpēc mēs zinām, ka paketēm ar SYN iestatījumiem ir jābūt šādai saiknei:

((13 okteta vērtība un (2)) == (2)

Tas norāda uz tcpdump filtra izteiksmi

tcpdump -i xl0 'tcp [13] & 2 == 2'

Ņemiet vērā, ka izteiksmē jālieto vienotās cenas vai atpakaļzīme, lai nerādītu (un &) īpašo rakstzīmi no apvalka.

UDP paketes

UDP formāts ir ilustrēts ar šo rwho paketi:

actinide.who> raidījums.who: udp 84

Tas saka, ka osta, kas uzņēmējā aktinīdā nosūtīja udp datagrammu, lai pieslēgtu ostas pārraidītājam , kas pārraida uzņēmēja adresi. Pakete satur 84 bitus lietotāja datus.

Daži UDP pakalpojumi tiek atpazīti (no avota vai galamērķa porta numura) un drukāta augstākā līmeņa protokola informācija. Jo īpaši Domēna vārda pakalpojumu pieprasījumi (RFC-1034/1035) un Sun RPC zvani (RFC-1050) uz NFS.

UDP nosaukumu servera pieprasījumi

(NB! Turpmākajā aprakstā tiek apzinātas Domēna pakalpojuma protokols, kas aprakstīts RFC-1035. Ja jūs neesat pazīstams ar protokolu, šāds apraksts tiks rakstīts grieķu valodā.)

Vārda servera pieprasījumi tiek formatēti kā

src> dst: id op? karogi qtype q klases nosaukums (len) h2opolo.1538> helios.domain: 3+ A? ucbvax.berkeley.edu. (37)

Host h2opolo pieprasīja domēna serveri helios par adreses ierakstu (qtype = A), kas saistīts ar nosaukumu ucbvax.berkeley.edu. Vaicājuma id bija `3 '. "+" Norāda rekursijas vēlamo karodziņu. Vaicājuma garums bija 37 baiti, neiekļaujot UDP un IP protokolu galvenes. Vaicājuma darbība bija normāla, Query , tāpēc op lauks tika izlaists. Ja op bija kaut kas cits, tas būtu drukāts starp "3" un "+". Tāpat qclass bija normāla, C_IN un izlaista. Jebkura cita qclass būtu drukāta uzreiz pēc "A".

Pārbauda dažas anomālijas, un kvadrātiekavās var tikt pievienoti papildu lauki: ja vaicājumam ir atbilde, iestādes ieraksti vai papildu ierakstu sadaļa, ancount , nscount vai arcount tiek izdrukāti kā `[ n a] ',` [ n n ] "vai" [ n au] ", kur n ir atbilstošs skaits. Ja kāds no atbildes bitiem ir iestatīts (AA, RA vai rcode) vai kāds no `must be zero 'bitiem ir jāiestata bitiem 2 un 3, tiek izdrukāts` [b2 & 3 = x ]', kur x ir hex vērtība divi un trīs galvenie baiti.

UDP vārdu servera atbildes

Vārda servera atbildes tiek formatētas kā

src> dst: id op rcode flags a / n / au tipa klases dati (len) helios.domain> h2opolo.1538: 3 3/3/7 A 128.32.137.3 (273) helios.domain> h2opolo.1537: 2 NXDomain * 0/1/0 (97)

Pirmajā piemērā helios reaģē uz vaicājuma ID 3 no h2opolo ar 3 atbildes ierakstiem, 3 nosaukumu servera ierakstiem un 7 papildu ierakstiem. Pirmais atbildes ieraksts ir A tips (adrese), un tā dati ir interneta adrese 128.32.137.3. Kopējais atbildes lielums bija 273 baiti, izņemot UDP un IP galvenes. Op (vaicājums) un atbildes kods (NoError) tika izlaists, tāpat kā A ieraksta klase (C_IN).

Otrajā piemērā helios reaģē uz 2. vaicājumu ar neesošu domēnu atbildes kodu (NXDomain) bez atbildēm, vienu vārdu serveri un nevienu autoritatīvo ierakstu. `* 'Norāda, ka ir iestatīts autoritatīvais atbildes bits. Tā kā atbildes nebija, netika izdrukāts neviens tips, klase vai dati.

Citas karodziņu rakstzīmes, kas varētu parādīties, ir `- '(rekursija ir pieejama, RA nav iestatīta) un` |' (saīsināts ziņojums, TC, iestatīts). Ja sadaļā "jautājums" nav precīzi viena ieraksta, tiek izdrukāts "[ n q]".

Ņemiet vērā, ka vārda servera pieprasījumi un atbildes parasti ir lielas, un 68 bitu noklusējuma spraudnis , iespējams, neuztver pietiekami daudz no drukājamā paketes. Izmantojiet -s karodziņu, lai palielinātu snaplen, ja jums nopietni jāpārbauda vārdu servera trafika. ` -s 128 'man ir labi strādājis.

SMB / CIFS dekodēšana

Tcpdump tagad ietver diezgan plašu SMB / CIFS / NBT dekodēšanu par datiem UDP / 137, UDP / 138 un TCP / 139. Tiek veikta arī daži primārā IPX un NetBEUI SMB datu dekodēšana.

Pēc noklusējuma notiek diezgan minimāla atšifrēšana, ar daudz detalizētāku dekodēšanu, ja tiek izmantots -v. Jābrīdina, ka ar vienu SMB paketi var uzņemt lapu vai vairāk, tādēļ izmantojiet tikai -v, ja patiešām vēlaties iegūt visas detaļas.

Ja jūs dekodējat SMB sesijas, kurās ir unikoda virknes, tad, iespējams, vēlēsities iestatīt vides mainīgo USE_UNICODE uz 1. Ir laipni gaidīts patch, lai automātiski noteiktu unikoda spiedogus.

Informāciju par SMB pakešu formātiem un to, ko visi tie lauki nozīmē skatīt www.cifs.org vai pub / samba / specs / directory savā iecienītajā samba.org spoguļa vietnē. SMB ielāpus rakstīja Andrew Tridgell (tridge@samba.org).

NFS pieprasījumi un atbildes

Sun NFS (tīkla failu sistēma) pieprasījumi un atbildes tiek drukātas kā:

src.xid> dst.nfs: len op args src.nfs> dst.xid: atbilde stat len ​​op rezultāti sushi.6709> wrl.nfs: 112 readlink fh 21,24 / 10.73165 wrl.nfs> sushi.6709: atbildi ok 40 lasīt saiti "../var" sushi.201b> wrl.nfs: 144 lookup fh 9,74 / 4096,6878 "xcolors" wrl.nfs> sushi.201b: atbilde ok 128 lookup fh 9,74 / 4134,3150

Pirmajā rindiņā saimnieka suši nosūta darījumu ar id 6709 uz wrl (ņemiet vērā, ka numurs, kas seko src uzņēmējai, ir darījuma id, nevis avota ports). Pieprasījums bija 112 baiti, izņemot UDP un IP galvenes. Operācija bija faila rokturis ( fh ) 21,24 / 10,731657119, kas bija lasīšanas saite (lasīt simbolisku saiti). (Ja ir paveicies, kā šajā gadījumā, faila rokturi var interpretēt kā galveno, mazo ierīces numuru pāri, kam seko inoda numurs un paaudzes numurs.) Wrl atbildes "ok" ar saites saturu.

Trešajā rindiņā suši uzdod vārdam " xcolors " apskatīt nosaukumu mapē 9,74 / 4096,6878. Ņemiet vērā, ka drukātie dati ir atkarīgi no darbības veida. Formāts ir paredzēts pašsaprotamībai, ja tas tiek lasīts kopā ar NFS protokola spec.

Ja tiek norādīts -v (verbose) karogs, tiek izdrukāta papildu informācija. Piemēram:

sushi.1372a> wrl.nfs: 148 lasīt fh 21,11 / 12,195 8192 bytes @ 24576 wrl.nfs> sushi.1372a: atbilde ok 1472 lasīt REG 100664 ids 417/0 sz 29388

(-v arī izdrukā IP virsrakstu TTL, ID, garuma un sadrumstalošanas laukus, kas šajā paraugā nav izlaisti). Pirmā rindā suši lūdz wrl lasīt 8192 baiti no faila 21,11 / 12.195, izmantojot baitu nobīdi 24576. Wrl atbildes "ok"; otrajā rindiņā redzamais pakalpojums ir pirmais atbildes fragments, un tādējādi tas ir tikai 1472 baiti garš (pārējie baiti sekos turpmākajos fragmentos, taču šajos fragmentos nav NFS vai pat UDP galvenes, un tādēļ tie var nebūt drukāti, atkarībā no izmantotā filtra izteiksmes). Tā kā tiek piešķirts -v karodziņš, tiek drukāti daži no faila atribūtiem (kas tiek atgriezti papildus faila datiem): faila tips (`` REG '', parastam failam), faila režīms (astotajā), uid un gid un faila izmērs.

Ja -v karodziņš tiek ievadīts vairāk nekā vienreiz, tiek izdrukāta vēl detaļa.

Ņemiet vērā, ka NFS pieprasījumi ir ļoti lieli, un liela daļa detalizācijas netiks drukāti, ja vien netiks palielināta lente . Mēģiniet izmantot ` -s 192 ', lai skatītu NFS datplūsmu.

NFS atbildes paketi nepārprotami nenosaka RPC darbību. Tā vietā tcpdump seko "nesenajiem" pieprasījumiem un tos saskaņo ar atbildēm, izmantojot darījuma ID. Ja atbilde nav cieši sekot attiecīgajam pieprasījumam, tā var nebūt parspējama.

AFS pieprasījumi un atbildes

Transarc AFS (Andrew File System) pieprasījumi un atbildes tiek drukātas kā:

src.sport> dst.dport: rx paketes tipa src.sport> dst.dport: rx paketes tipa pakalpojumu zvana zvana vārds args src.sport> dst.dport: rx paketes tipa pakalpojumu atbildes zvana vārds args elvis. 7001> pike.afsfs: rx dati fs zvans pārdēvēt veco fid 536876964/1/1 ".newsrc.new" new fid 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx dati fs atbilde pārdēvēt

Pirmajā rindiņā uzņēmēja elvis nosūta RX paketi uz līdaku. Tas bija RX datu pakalpojums fs (failu servera) pakalpojums, un tas ir RPC zvana sākums. RPC zvans bija pārdēvēt ar veco direktorijas faila ID 536876964/1/1 un veco nosaukumu ".newsrc.new", kā arī jaunu direktorijas faila ID 536876964/1/1 un jaunu faila nosaukumu ". newsrc ". Uzņēmēja līdaka reaģē ar RPC atbildi uz pārdēvēto zvanu (tas bija veiksmīgs, jo tas bija datu paketes, nevis aborts paketes).

Kopumā visi AFS RPC tiek dekodēti vismaz ar RPC zvana vārdu. Lielākajai daļai AFS RPC ir vismaz daži no dekodētajiem argumentiem (parasti tikai "interesanti" argumenti, lai kāda būtu interesanta definīcija).

Formāts ir paredzēts pašraksturai, taču tas, iespējams, nebūs noderīgs cilvēkiem, kas nav pazīstami ar AFS un RX darbību.

Ja -v (verbose) karodziņš tiek ievadīts divreiz, izdrukā apstiprinājuma paketes un papildu galvenes informāciju, piemēram, RX zvana ID, zvana numuru, kārtas numuru, sērijas numuru un RX paketes karodziņus.

Ja -v karodziņš tiek ievadīts divreiz, tiek izdrukāta papildu informācija, piemēram, RX zvana ID, sērijas numurs un RX paketes karogi. MTU sarunu informācija tiek izdrukāta arī no RX ack paketēm.

Ja -v karodziņš tiek ievadīts trīs reizes, tiek drukāts drošības indekss un pakalpojuma ID.

Kļūdu kodi tiek izdrukāti, lai pārtrauktu pakešus, izņemot Ubik maiņstrāvas paketes (jo aborta paketes tiek izmantotas, lai norādītu "yes" balsojumu par Ubik protokolu).

Ņemiet vērā, ka AFS pieprasījumi ir ļoti lieli, un daudzi no argumentiem netiks drukāti, ja vien netiks palielināts snaplen . Mēģiniet izmantot ` -s 256 ', lai skatītu AFS satiksmi.

AFS atbildes paketi nepārprotami nenosaka RPC darbību. Tā vietā tcpdump seko "neseniem" pieprasījumiem un tos saskaņo ar atbildēm, izmantojot zvana numuru un pakalpojuma ID. Ja atbilde nav cieši sekot attiecīgajam pieprasījumam, tā var nebūt parspējama.

KIP Appletalk (DDP UDP)

Appletalk DDP paketes, kas iekapsulētas UDP datagrammā, tiek dekabolētas un dempingētas kā DDP paketes (ti, visa UDP galvenes informācija tiek izmesta). Failu /etc/atalk.names tiek izmantots, lai tulkotu appletalk neto un mezgla numurus vārdiem. Šajā failā esošās rindiņas ir veidlapas

numurs nosaukums 1.254 ēteris 16.1 icsd-net 1.254.110 ace

Pirmās divas rindas apzīmē appletalk tīklu nosaukumus. Trešā rinda norāda konkrētas saimniekdatora nosaukumu (saimniekdators no tīkla atšķiras ar 3. okteta skaitli - tīrajam skaitlim jābūt diviem oktetiem un saimniekdatora numuram jābūt trīs oktēm). Skaits un nosaukums ir jāatdala ar atstarpēm (sagataves vai cilnes). /etc/atalk.names failā var būt tukšas rindiņas vai komentāru rindiņas (līnijas, kas sākas ar `# ').

Appletalk adreses tiek izdrukātas šādā formā:

net.host.port 144.1.209.2> icsd-net.112.220 office.2> icsd-net.112.220 jssmag.149.235> icsd-net.2

(Ja /etc/atalk.names neeksistē vai nesatur ierakstu par dažu apletu tīkla saimniekdatora / tīkla numuru, adreses tiek izdrukātas ciparu formātā.) Pirmajā piemērā NBP (DDP ports 2) uz neto 144.1 mezgls 209 sūta uz visu, kas klausās neto icsd mezgla 112. otrajā vietā. Otrā līnija ir tāda pati kā tikai avota mezgla pilns nosaukums ("birojs"). Trešā rinda ir sūtīšana no ostas 235 uz net jssmag mezglu 149, lai to pārraidītu uz icsd-net NBP portu (ņemiet vērā, ka apraides adresi (255) norāda tīkla nosaukums bez saimniekdatora numura - šī iemesla dēļ tas ir laba ideja lai /etc/atalk.names saglabātu mezglu vārdus un neto vārdus.

NBP (nosaukuma saistošais protokols) un ATP (Appletalk darījumu protokols) paketēm ir interpretējams to saturs. Citi protokoli vienkārši izgāž protokola nosaukumu (vai numuru, ja protokols nav reģistrēts) un paketes izmērs.

NBP paketes tiek formatētas kā šādi piemēri:

icsd-net.112.220> jssmag.2: nbp-lkup 190: "=: LaserWriter @ *" jssmag.209.2> icsd-net.112.220: nbp-atbilde 190: "RM1140: LaserWriter @ *" 250 techpit.2> icsd -net.112.220: nbp-reply 190: "techpit: LaserWriter @ *" 186

Pirmā rindiņa ir meklējamo vārdu meklēšanas pieprasījums, ko nosūta neto icsd mītnes numurs 112 un pārraida tīklā jssmag. Nbp id meklējumam ir 190. Otrā rindiņa parāda atbildi šim pieprasījumam (ņemiet vērā, ka tam ir tas pats ID) no uzņēmējas jssmag.209, sakot, ka tam ir 250W portā reģistrēts lasītāju rakstīšanas resurss ar nosaukumu "RM1140". Trešais līnija ir vēl viena atbilde uz to pašu pieprasījumu sakot uzņēmēja techpit ir laserwriter "techpit", kas reģistrēta ostā 186.

ATP pakešu formatējumu parāda šāds piemērs:

jssmag.209.165> helios.132: atp-req 12266 <0-7> 0xae030001 helios.132> jssmag.209.165: atp-resp 12266: 0 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 1 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 2 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 3 (512) 0xae040000 helios.132> jssmag.209.165: atp- resp 12266: 4 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 5 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 6 (512) 0xae040000 helios.132> jssmag. 209.165: atp-resp * 12266: 7 (512) 0xae040000 jssmag.209.165> helios.132: atp-req 12266 <3,5> 0xae030001 helios.132> jssmag.209.165: atp-resp 12266: 3 (512) 0xae040000 helios .132> jssmag.209.165: atp-resp 12266: 5 (512) 0xae040000 jssmag.209.165> helios.132: atp-rel 12266 <0-7> 0xae030001 jssmag.209.133> helios.132: atp-req * 12267 <0 -7> 0xae030002

Jssmag.209 ierosina darījuma id 12266 ar saimniekdatora helios, pieprasot līdz pat 8 paketēm (`<0-7> '). Līnijas beigās sešstūra numurs ir pieprasījumā ievadītā lauka "userdata" vērtība.

Helios reaģē ar 8 512 bitu paketēm. Pēc darījuma id piešķirtais `: cipars 'norāda darījuma paketes sērijas numuru, un parens skaitlis ir datu apjoms paketē, izņemot atskaites virsrakstu. Par 7 "*" norāda, ka EOM bits ir iestatīts.

Jssmag.209 pēc tam pieprasa, lai 3 un 5 paketes tiktu atkārtotas. Helios tos atkārtoti nosūta, pēc tam jssmag.209 atbrīvo darījumu. Visbeidzot, jssmag.209 ierosina nākamo pieprasījumu. Pieprasījums `* 'norāda, ka XO (` vienreiz vienreiz') nav iestatīts.

IP fragmentācija

Sagrupēti interneta datagrami drukā kā

(frag id : size @ offset +) (frag id : size @ offset )

(Pirmā forma norāda, ka ir vairāk fragmentu. Otrajā norāda, ka tas ir pēdējais fragments.)

Id ir fragments id. Izmērs ir fragmenta lielums (baitos), izņemot IP galveni. Nobīde ir šī fragments (sākotnējā datagrammā) nobīde (baitos).

Fragmenta informācija tiek izvadīta katram fragmentam. Pirmais fragments satur augstākā līmeņa protokola galveni un frag info tiek drukāts pēc protokola informācijas. Fragmenti pēc pirmā satura nav augstākā līmeņa protokola galvenes un frag info tiek drukāts pēc avota un galamērķa adreses. Piemēram, šeit ir ftp daļa no arizona.edu uz lbl-rtsg.arpa pār CSNET savienojumu, kas nešķiet apstrādā 576 baitu datagrammas:

arizona.ftp-data> rtsg.1170:. 1024: 1332 (308) ack 1 win 4096 (frag 595a: 328 @ 0 +) arizona> rtsg: (frag 595a: 204 @ 328) rtsg.1170> arizona.ftp-data:. ack 1536 win 2560

Šeit ir jāņem vērā pāris lietas. Pirmkārt, 2. rindā esošās adreses neietver portu numurus. Tas ir tāpēc, ka TCP protokola informācija ir visu pirmajā fragmentā, un mums nav ne jausmas par to, kas ir ostas vai kārtas numuri, kad izdrukājam vēlākos fragmentus. Otrkārt, tcp secības informācija pirmajā rindā tiek izdrukāta tā, it kā būtu lietotāju datu 308 baiti, ja patiesībā ir 512 baiti (pirmajā fragmentā - 308 un otrajā - 204). Ja jūs meklējat caurumus secības telpā vai mēģināt saskaņot up acks ar pakešu, tas var mānīt tevi.

Pakete ar IP nav fragmentu karogs ir atzīmēts ar aizmugures (DF) .

Timestamps

Pēc noklusējuma visām izvades līnijām ir laikspiedols. Laikspiedols ir pašreizējais pulksteņa laiks formā

hh: mm: ss.frac

un tas ir tikpat precīzi kā kodola pulkstenis. Laika zīme atspoguļo laiku, kad kodols pirmo reizi redzēja paketi. Nav mēģināts ņemt vērā laika periodu starp Ethernet saskarni, no kura izņemta pakete no stieples, un kad kodols apkalpoja "jaunā pakete" pārtraukšanu.

SKATĪT ARĪ

satiksme (1C), nit (4P), bpf (4), pcap (3)

Svarīgi: izmantojiet vīriešu komandu ( % man ), lai redzētu, kā komanda tiek izmantota jūsu konkrētajā datorā.