Tcpdump - Linux Command - Unix Command

NIMI

tcpdump - dump liiklus võrgus

SÜNOPSIS

tcpdump [ -adflnNOpqRStuvxX ] [ -c count ]

[ -C file_size ] [ -F fail ]

[ -i liides ] [ -m moodul ] [ -r fail ]

[ -s snaplen ] [ -T tüüp ] [ -U kasutaja ] [ -w fail ]

[ -E algo: saladus ] [ väljend ]

KIRJELDUS

Tcpdump prindib võrguliidese pakettide päised, mis vastavad boolean väljendile . Seda saab kasutada ka -w-lippiga , mis paneb selle salvestama pakettandmeid faili hilisemaks analüüsiks ja / või -r- lipp, mis muudab selle salvestatud paketfaili lugemiseks, mitte pakettide lugemiseks võrguliidust. Kõikidel juhtudel töötlevad tcpdump ainult pakette, mis vastavad väljendile .

Kui Tcpdump ei käivita -c- lippiga , jätka pakettide hõivamist, kuni see on katkestatud SIGINT-i signaaliga (loodud näiteks sisestades katkestuse tähemärgi (tüüpiliselt control-C) või SIGTERMi signaali (tavaliselt loodud kill (1) käsk); kui käivitatakse -c-lippiga , lüüb see pakette, kuni see katkeb SIGINT või SIGTERM-signaaliga või määratud pakettide arv on töödeldud.

Kui tcpdump lõpetab pakettide hõivamise, annab see aruande loendite kohta:

pakette ", mida saab" filtri abil "(selle tähendus sõltub operatsioonisüsteemist, kus te kasutate tcpdumpi ja võib-olla ka operatsioonisüsteemi konfigureerimisel - kui mõnes operatsioonisüsteemis on see arvutis määratud käsureal määratud filter pakette, olenemata sellest, kas need on vastavuses filtri avaldusega, ja teistes operatsioonisüsteemides loeb see ainult pakette, mis olid vastavuses filtri avaldusega ja töödeldi tcpdumpiga );

pakettaknad `` langenud kernel''' (see on pakettide arv, mis puhvri ruumi puudumise tõttu langesid pakettvõtte võtmise mehhanismi kaudu operatsioonisüsteemis, kus tcpdump töötab, kui operatsioonisüsteem teatab selle teabe rakendustele; kui mitte, siis see esitatakse 0-ga).

SIGINFO signaali toetavate platvormide, näiteks enamiku BSD-ide puhul teavitab ta neid loendeid, kui ta saab SIGINFO signaali (mis on genereeritud, näiteks sisestades oma "staatuse" tähise, tavaliselt kontrolli-T) ja jätkab pakettide hõivamist .

Võrguliidese pakettide lugemine võib eeldada, et teil on erilised õigused:

Under SunOS 3.x või 4.x koos NIT või BPF-ga:

Teil peab olema lugeja juurdepääs / dev / nit või / dev / bpf * .

Solaris koos DLPI-ga:

Peate looma / kirjutama juurdepääsu võrgu pseudo seadmele, näiteks / dev / le . Vähemalt mõnede Solarisi versioonide puhul ei piisa sellest, et tcpdump saaks promiscige režiimis lüüa; Solaris nende versioonide puhul peate olema root, või tarkvarakomplekti püüdmiseks tuleb paigaldada tcpdump, et seda administreerida. Pange tähele, et paljude (võib-olla kõigi) liideste puhul, kui te ei hõivata promiscuous režiimis, ei näe sa välja ühtegi väljaminevat paketti, nii et püüdmine ei tehta promiscuous režiimis, ei pruugi olla väga kasulik.

HP-UX koos DLPI-ga:

Sul peab olema root või tcpdump tuleb installuid setuid root.

IRIX-i allservas:

Sul peab olema root või tcpdump tuleb installuid setuid root.

Linuxi all:

Sul peab olema root või tcpdump tuleb installuid setuid root.

Under Ultrix ja Digital UNIX / Tru64 UNIX:

Iga kasutaja võib võrguliiklust lüüa tcpdumpiga . Siiski ei saa ükski kasutaja (isegi mitte superkasutaja) lüüa kasutajaliideselt promiscige režiimis, välja arvatud juhul, kui super-kasutaja on selles liideses lubanud pimendirežiimi toiminguid kasutades pfconfig (8) ja mitte ühtegi kasutajat (isegi mitte super-kasutajat ) saab lüüa liidese poolt saadetud või saadetud sõnumite ühtseks liikluseks , välja arvatud juhul, kui super-kasutaja on seda liidest kasutades kasutanud pseudo liideset kasutades pfconfig-i , nii et kasulik pakettaknad kasutajaliidesel vajavad tõenäoliselt kas promiscuous-režiimi või koopiat - selle liidese kaudu on sisse lülitatud kõik režiim või mõlemad töörežiimid.

BSD all:

Teil peab olema lugeja juurdepääs / dev / bpf * .

Salvestatud paketifaili lugemine ei vaja erilisi õigusi.

VÕIMALUSED

-a

Püüab võrgu teisendamiseks ja aadresside edastamiseks nimesid.

-c

Väljumine pärast loendamispakettide saamist.

-C

Enne toormaterjali salvestamist salvestusfailile kontrollige, kas fail on praegu suurem kui file_size ja kui see on nii, sulgege praegune salvestusfail ja avage uus. Salvestafailidel pärast esimest salvestusfaili on nimega määratud tähis -w , millele järgneb number, alustades 2-st ja jätkates ülespoole. Faili suuruse ühikud on miljonid baidid (1 000 000 baiti, mitte 1 048 576 baiti).

-d

Kompileeritud pakettide sobitamise koodi prügikasti laadige standardväljundisse ja peata.

-dd

Dump pakettide sobitamise kood C- programmi fragment.

-ddd

Dump pakettide sobitamise kood kümnendnumbrid (millele eelneb arv).

-e

Printige lingi taseme päis igal prügila joonel.

-E

Kasutage algo: salasõna IPsec ESP pakettide dekrüpteerimiseks. Algoritmid võivad olla des-cbc , 3des-cbc , blowfish-cbc , rc3-cbc , cast128-cbc või mitte . Vaikimisi on des-cbc . Pakettide dekrüptimise võimalus on olemas ainult juhul, kui tcpdump on krüptograafiaga lubatud. salajane ESP salajase võtme ascii tekst. Me ei saa käesoleval hetkel meelevaldset binaarväärtust võtta. Võimalus eeldab RFC2406 ESP, mitte RFC1827 ESP. Valik on ainult silumiseks ja selle võimaluse kasutamine tõeliselt salajase võtmega on häiritud. IPseci salajase võtme esitamine käsureale muudab selle nähtavaks teistele ps (1) ja muudel juhtudel.

-f

Trükite välismaiseid Interneti-aadresse arvuliselt, mitte sümboolselt (see variant on mõeldud tõsiste ajukahjustuste tekitamiseks Päikese yp serveris --- tavaliselt igatsevad, et see muudab mitte-kohalikke Interneti-numbreid).

-F

Kasutage filtri väljendina sisendfaili. Käsureal antud lisaarvustus ignoreeritakse.

-i

Kuulake liidest . Kui see pole täpsustatud, otsib tcpdump kõige madalama numbriga konfigureeritud liidest (välja arvatud loopback) süsteemi liidese nimekirja. Sidemed on purustatud, valides kõige varem sobiva mängu.

Linuxi süsteemides, mis sisaldavad 2.2 või uuemaid kernesid, saab `` any '' liidese argumenti kasutada kõigi pakettide hankimiseks kõigilt liidestest. Pange tähele, et `` ükskõik millisel '' seadet ei tehta promiscuous režiimis.

-l

Tehke stdout-rida puhverdatud. Kasulik, kui soovite andmete hankimisel seda vaadata. Näiteks
`` tcpdump -l | tee dat '' või `` tcpdump -l> dat & tail -f dat ''.

-m

Laadige SMI MIB mooduli definitsioonid failimoodulisse . Seda võimalust saab mitu korda kasutada mitmete MIB-moodulite laadimiseks tcpdumpisse .

-n

Ärge teisendage hosti aadresse nimedele. Seda saab kasutada DNS otsingute vältimiseks.

-nn

Ärge teisendage ka protokolle ja pordinumbreid jne.

-N

Ärge printige hosti nimede domeeninime kvalifikatsiooni. Näiteks, kui annate selle lingi, siis tcpdump printib `` nic '' asemel `` nic.ddn.mil ''.

-O

Ärge käivitage pakettide sobivuse koodi optimeerijat. See on kasulik ainult siis, kui kahtlustate optimeerija viga.

-p

Ärge pange liidet promiscuous režiimi. Pidage meeles, et liides võib mõnel muul põhjusel olla mitmetasandiline režiim; seega ei saa `-p 'kasutada lühendina eetri hostile {local-hw-addr} või eetris.

-q

Kiire (vaikne?) Väljund. Trükkige vähem protokolliandmeid, nii et väljundliinid on lühemad.

-R

Oletame, et ESP / AH paketid põhinevad vana spetsifikatsioonil (RFC1825-RFC1829). Kui määratud, tcpdump ei printida replay ennetamise valdkonnas. Kuna ESP / AH spetsifikatsioonis ei ole protokolli versiooni välja, ei saa tcpdump ESP / AH protokolli versiooni järeldada.

-r

Lugege paketid failist (mis on loodud -w-ga). Standardse sisendit kasutatakse juhul, kui fail on `` - ''.

-S

Trüki absoluutsed, mitte suhtelised, TCP jadanumbrid.

-s

Snarf varustab iga paketti andmetega baiti, mitte vaikimisi 68 (koos SunOSi NIT-ga, minimaalne on tegelikult 96). 68 baiti sobib IP, ICMP, TCP ja UDP jaoks, kuid võib lühendada protokolli andmeid nimeserverist ja NFS-paketidest (vt allpool). Piiratud hetktõmmise tõttu kärbitud pakette tähistatakse väljundina koos `` [| proto ] '', kus proto on protokolli taseme nimi, mille järgi kärpimine on toimunud. Pange tähele, et suuremate hetktõmmiste suurendamine suurendab ka pakettide töötlemiseks kuluvat aega ja vähendab tegelikult pakettaknad puhverdamist. See võib põhjustada pakettide kadumise. Peaksite piirama snapleni väikseima arvuni, mis püüab teile huvipakkuva protokolliinfo hõivata. Ligipääsu seadistamine 0-le tähendab kasutada kogu pakettide saamiseks vajalikku pikkust.

-T

Võimaldab jõudnud " ekspressi " abil valitud paketid tõlgendada määratud tüüpi . Praegu tuntud tüübid on cnfp (Cisco NetFlow protokoll), rpc ( kaugprotseduuride väljakutse ), rtp (reaalajas rakenduste protokoll), rtcp (reaalajas rakenduste juhtimisprotokoll), snmp (lihtne võrguhaldusprotokoll), vat (Visual Audio Tool ) ja wb (hajutatud valge tahvel).

-t

Ärge printige ajatemplit igal prügila joonel.

-tt

Printige vormimata ajatempel igal prügila joonel.

-U

Tühistab administraatoriõigused ja muudab kasutajanime kasutaja ja rühma ID kasutaja põhigrupiks.

Märge! Red Hat Linux lükkab automaatselt kasutaja privileege `` pcap '', kui midagi muud ei ole määratud.

-ttt

Trükkige delta (mikro sekundites) praeguse ja eelmise rea vahel iga prügila joonel.

-tttt

Ajatempli trükkimine vaikevormingus, mis kulgeb kuupäeval igal prügila joonel.

-u

Trükkida undecode NFS käepidemed.

-v

(Veidi rohkem) verbi väljund. Näiteks trükitakse IP-paketi eluea aeg, identifitseerimine, kogupikkus ja võimalused. Samuti võimaldab täiendavaid paketi terviklikkuse kontrolle, näiteks IP ja ICMP päise kontrollsumma kinnitamist.

-vv

Veelgi rohkem loogilist väljundit. Näiteks trükitakse täiendavad väljad NFS-i vastuste pakettidelt ja SMB pakette on dekodeeritud täielikult.

-vvv

Veelgi rohkem loogilist väljundit. Näiteks telnet SB ... SE valikud trükitakse täielikult. X- telneti optsioonide trükkimine on ka hexes.

-w

Kirjutage töötlemata pakettide fail, mitte parsimine ja nende printimine. Neid saab hiljem printida -r-valiku abil. Standardväljundit kasutatakse juhul, kui fail on `` - ''.

-x

Trükkige iga pakett (miinus selle lingi taseme päis) hexis. Trükitakse kogu paketi väiksem või täppisbait . Pange tähele, et see on kogu lingi kihi pakett, nii et ka lingi kihid (nt Ethernet), trükkimisbaidid trükitakse ka siis, kui kõrgema kihi pakett on lühem kui vajalik polster.

-X

Hexi printimiseks printige ka ascii. Seega, kui -x on määratud, pakett trükitakse ka hex / ascii-le. See on väga kasulik uute protokollide analüüsimiseks. Isegi kui -x ei ole määratud, võib mõnede pakettide mõned osad printida hex / ascii.

väljendus

valib, millised pakettid langevad. Kui väljendeid ei esitata, siis kõik võrgupakendid lammutatakse. Vastasel juhul tühistatakse ainult need paketid, mille puhul väljend on `true '.

Väljend koosneb ühest või mitmest primitiivist. Primitiivid koosnevad tavaliselt idist (nimi või number), millele eelneb üks või mitu kvalifitseerijat. On kolm erinevat kvalifikatsiooni:

tüüp

kvalifitseerijad ütlevad, millist asja viitab id-nimi või number. Võimalikud tüübid on host , net ja port . Näiteks `host foo ',` net 128.3', `port 20 '. Kui tüübi määratlejat pole, eeldatakse hosti .

dir

Kvalifitseerijad määravad konkreetse edastus suuna ja / või id-st . Võimalikud juhised on src , dst , src või dst ning src ja dst . Näiteks `src foo ',` dst net 128.3', `src või dst port ftp-data '. Kui ei ole määrajat, eeldatakse src või dst . "Null" linki kihtide (st punkt-punkti protokollid, näiteks libisemine) abil saab soovitud suuna täpsustamiseks kasutada sisenevaid ja väljaminevaid kvalifikaatoreid.

proto

kvalifitseerijad piiravad mängu konkreetse protokolliga. Võimalikud protos on: eeter , fddi , tr , ip , ip6 , arp , rarp , decnet , tcp ja udp . Näiteks `eeter src foo ',` arp net 128.3', `tcp port 21 '. Kui puudub protoefektentifikaator, eeldatakse, et kõik protokollid vastavad tüübile. Näiteks `src foo 'tähendab` ip või arp või rarp' src foo '(välja arvatud viimane ei ole õiguslik süntaks);' netbar 'tähendab `(ip või arp või rarp) netbar' ja 'port 53' tähendab `(tcp või udp) port 53 '.

[`fddi 'on tegelikult' eetri 'alias; parser kohtleb neid identselt, mis tähendab, et "on määratletud võrguliidese jaoks kasutatav andmeside tase." FDDI-päised sisaldavad Ethernet-sarnaseid lähte- ja sihtkoha aadresse ning sisaldavad sageli Ethernet-tüüpi paketti tüüpe, nii et saate filtreerida nende FDDI väljadel nagu analoogsete Etherneti väljade puhul. FDDI-päised sisaldavad ka teisi välju, kuid neid ei saa filtri avaldis selgesõnaliselt nimetada.

Samamoodi on `tr 'alias eetri jaoks; eelmise lõigu avaldused FDDI päiste kohta kehtivad ka Token Ringi päiste kohta.]

Lisaks ülaltoodule on olemas ka mõned erilised "primitiivsed" märksõnad, mis ei järgi mustrit: lüüsi , saade , vähem , suurem ja aritmeetiline väljend. Kõik need on allpool kirjeldatud.

Keerulisemad filtri avaldised luuakse, kasutades sõnu ja , või mitte , ja mitte ühendada primitiivseid elemente. Näiteks `host foo, mitte port ftp, mitte port ftp-data '. Kirjutamise salvestamiseks võidakse identsed kvalifitseerimisnimed välja jätta. Näiteks `tcp dst port ftp või ftp-data või domain 'on täpselt sama mis` tcp dst port ftp või tcp dst port ftp-data või tcp dst port domain'.

Lubatud primitiivid on:

dst host- host

Tõsi, kui paketi IPv4 / v6 sihtväljund on hostija , mis võib olla kas aadress või nimi.

src host- host

Tõsi, kui paketi IPv4 / v6 allikas on hosti .

host- host

Tõsi, kas paketi IPv4 / v6 allikas või sihtkoht on server . Mis tahes ülaltoodud hostimisväljundite võib lisada märksõnadele ip , arp , rarp või ip6, nagu on:

ip host- host

mis on samaväärne:

eeter proto \ ip ja host- host

Kui host on mitme IP-aadressiga nimi, siis kontrollitakse iga aadressi vastavust.

eeter dst ehost

Tõsi, kui Etherneti sihtkoha aadress on ehost . Ehost võib olla kas / etc / eetrite nimi või number (nummerdatud vormingus vt eetrid (3N)).

eeter src ehost

Tõsi, kui Etherneti allika aadress on ehost .

Ether host ehost

Tõsi, kas Etherneti allikas või sihtkoha aadress on ehost .

gateway host

Tõsi, kui pakettaknad kasutavad hosti gateway. Teisisõnu, Etherneti lähtekood või sihtkoha aadress oli vastuvõtvas, kuid mitte IP-lähtekood ega IP-sihtkoht ei olnud hosti . Vastuvõtja peab olema nimi ja seda peab leidma nii masina host-nimi-to-IP-aadressi lahendamise mehhanismid (hosti nimefail, DNS, NIS jne) kui ka masina host-name-to-ethernet-aadressi resolutsioon mehhanism (/ etc / eetrid jne). (Sama väljend on

eetri host ehost ja mitte host- host

mida saab kasutada kas host / ehost nimede või numbritega.) Antud hetkel ei toimi antud süntaks IPv6-ga lubatud konfiguratsioonis.

dst neto neto

Tõsi, kui paketi IPv4 / v6 sihtkoha aadressil on võrgu võrguarv. Net võib olla kas nimi / etc / networks või võrgu number (üksikasjad leiate võrgudest (4) ).

src neto neto

Tõsi, kui paketi IPv4 / v6 lähtekoodil on võrgu võrguarv.

neto neto

Tõsi, kas paketi IPv4 / v6 allika või sihtkoha aadressil on võrgu võrguarv.

netmask netmask

Tõsi, kui IP-aadress sobib konkreetse võrgumärgiga võrguga . Võib olla kvalifitseeritud src või dst . Pange tähele, et see süntaks ei kehti IPv6 võrgu jaoks .

net net / len

Tõsi, kui IPv4 / v6 aadress sobib võrgu võrgu maskide len bittide lai. Võib olla kvalifitseeritud src või dst .

dst sadamaport

Tõsi, kui pakett on ip / tcp, ip / udp, ip6 / tcp või ip6 / udp ning sellel on portpordi sihtkoha porti väärtus. Pord võib olla number / nimi / etc / services (vt tcp (4P) ja udp (4P)). Kui kasutatakse nime, kontrollitakse nii pordi numbrit kui ka protokolli. Kui kasutatakse arvu või mitmetähenduslikku nime, kontrollitakse ainult pordi numbrit (nt. Dst port 513 printib nii tcp / login-liikluse kui ka udp / kelle liiklus ja port domeen prindib nii tcp / domain kui udp / domain traffic).

src sadamaport

Tõsi, kui pakettaknad on sadama lähtekomponendi väärtuseks.

sadama sadam

Tõsi, kas paketi allika või sihtpunkti port on port . Kõigi eespool nimetatud portide väljade võib lisada märksõnadele, tcp või udp , nagu on:

tcp src port port

mis vastab ainult tcp-pakettidele, mille lähteporti on port .

vähem pikkust

Tõsi, kui paki pikkus on väiksem või sellega võrdne. See on samaväärne:

len <= pikkus .

suurem pikkus

Tõsi, kui pakettaknad on pikkusega pikemad või pikemad . See on samaväärne:

len> = pikkus .

ip proto protokoll

Tõsi, kui pakett on IP-paketi (vaata ip (4P)) protokolli tüüpi protokolli . Protokoll võib olla number või üks nimesid: icmp , icmp6 , igmp , igrp , pim , ah , esp , vrrp , udp või tcp . Pange tähele, et identifikaatorid tcp , udp ja icmp on ka märksõnad ja neid tuleb vältida tagurpidi kriipsu (\) abil, mis on \\ C-shellis. Pange tähele, et see primitiiv ei jälgi protokolli päise ahelat.

ip6 proto protokoll

Tõsi, kui pakett on protokolli tüüpi protokolli IPv6 pakett. Pange tähele, et see primitiiv ei jälgi protokolli päise ahelat.

ip6 protochaini protokoll

Tõsi, kui pakett on IPv6 pakett ja sisaldab protokolli päise tüübiprotokolli oma protokolli päise ahelas. Näiteks,

ip6 protochain 6

vastab ühelegi IPv6 paketile, millel on protokolli päise ahelas TCP-protokolli päis. Pakett võib sisaldada näiteks autentimise päist, suunamispeatüki või hop-by-hop-valiku päise IPv6-päise ja TCP-päise vahel. Selle primitiivi poolt välja pandud BPF-kood on keeruline ja optimeeritavat tcpdump- faili ei saa optimeerida BPF-i optimeerija koodiga, mistõttu võib see olla mõnevõrra aeglane.

ip protochaini protokoll

Samaväärne ip6 protochaini protokolliga , kuid see kehtib IPv4 kohta.

Eeter eetrisse

Tõsi, kui pakett on Etherneti levitatav pakett. Eeter- märksõna on vabatahtlik.

ip levi

Tõsi, kui pakett on IP-levipakett. See kontrollib nii kõigi nullpunktide kui ka kõigi osade edastuskonventsioone ning otsib kohaliku alamvõrgu maski.

Ether multicast

Tõsi, kui pakett on Etherneti multipakk pakett. Eeter- märksõna on vabatahtlik. See on stenogrammiks eeter [0] & 1! = 0 '.

ip multicast

Tõsi, kui pakett on IP-rühma pakett.

ip6 multicast

Tõsi, kui pakett on IPv6 mitme pakettaknad.

eeter proto protokoll

Tõsi, kui pakett on eetrilises protokollis . Protokoll võib olla number või üks nimesid ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx või netbeui . Pidage meeles, et need identifikaatorid on ka märksõnad ja neid tuleb vältida tagurpidi kriipsuga (\).

[FDDI puhul (nt ` fddi protocol arp ') ja Token Ring ( nt` ` tr protocol arp ' ') enamikule neist protokollidest pärineb protokolli identifikaator 802.2 Logical Link Control (LLC) päisest, mis on tavaliselt kihiline FDDI või Token Ring päise peal.

Kui filtreeritakse kõige enam protokolli identifikaatoreid FDDI-s või Token Ringis, kontrollib tcpdump nimega SNAP-vormingus ainult LLC-i päise protokolli ID-d, mille kapseldatud Ethernet-iga on Ox-koodi Oxy identifikaator (OUI) 0x000000; see ei kontrolli, kas pakett on SNAP-vormingus, mille OUI on 0x000000.

Erandid on iso , mille puhul ta kontrollib LLC-päise, stp ja netbeui DSAP-i (sihtkoha teenuse pääsupunkti) ja SSAP-i (allika teenuspöörduspunkti ) väljade, kus see kontrollib LLC-i päise DSAP-i ja atalk , kus see kontrollib SNAP-vormingus paketti, mille OUI on 0x080007 ja Appletalk etikett.

Etherneti puhul kontrollib tcpdump Etherneti tüüpi välja enamiku nende protokollide jaoks; erandid on iso , sap ja netbeui , mille jaoks see kontrollib raami 802.3 ja seejärel kontrollib LLC-i päise, nagu seda teeb FDDI ja Token Ring, atalk , kus see kontrollib nii Appletalk-tüüpi Etherneti kaadris kui ka SNAP-vormingus pakett, nagu seda teeb FDDI ja Token Ring, aarp , kus ta kontrollib Appletalk ARP-i etiketti kas Etherneti kaadris või 802.2 SNAP kaadris OUI-ga 0x000000 ja ipx-st , kus see kontrollib IPX-tüüpi Etherneti raami, IPX DSAP-i päises LLC-s, 802.3 ilma IPX-i IP-pealkirja kapseldamiseta ja IPX-eetris SNAP raamis.]

dececkt src host

Tõsi, kui DECNETi lähteaadress on host , mis võib olla vormi "10.123" aadress või DECNETi hostinimi. [DECNET-hostinime tugi on saadaval ainult Ultrix-süsteemides, mis on konfigureeritud käivitama DECNET-i.]

decnet dst host

Tõsi, kui DECNETi sihtkoha aadress on host .

decnet host host

Tõsi, kas DECNETi allika või sihtkoha aadress on hostija.

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

Lühendid:

eeter proto p

kus p on üks eespool nimetatud protokollidest.

lat , moprc , mopdl

Lühendid:

eeter proto p

kus p on üks eespool nimetatud protokollidest. Pange tähele, et tcpdump ei tea praegu, kuidas neid protokolle analüüsida.

vlan [vlan_id]

Tõsi, kui pakett on IEEE 802.1Q VLAN-pakett. Kui [vlan_id] on täpsustatud, on ainult tõene see, et paketil on määratud vlan_id . Pange tähele, et esimene ekspressiooniga seotud vlani märksõna muudab dekodeerimise tasaarveldusi ülejäänud ekspressiooni jaoks eeldusel, et pakett on VLAN-pakett.

tcp , udp , icmp

Lühendid:

ip proto p või ip6 proto p

kus p on üks eespool nimetatud protokollidest.

iso proto protokoll

Tõsi, kui pakett on protokolli tüüpi protokolli OSI pakett. Protokoll võib olla number või üks nimesid: clnp , esis või isis .

clnp , esis , isis

Lühendid:

iso proto p

kus p on üks eespool nimetatud protokollidest. Pange tähele, et tcpdump teeb nende protokollide parsimisel ebatäielikku tööd.

expr relop expr

Tõsi, kui suhe püsib, kus relop on üks>, <,> =, <=, = ,! = Ja expr on aritmeetiline väljend, mis koosneb täisarvu konstantsetest (väljendatud standardse C-süntaksina), tavalised binaarsed operaatorid [+ , -, *, /, &, |], pikkusega operaator ja spetsiaalsed pakettaknad. Pakettide andmetele juurdepääsuks kasutage järgmist süntaksi:

proto [ expr : suurus ]

Proto on üks eetri, fddi, tr, ppp, libise, lingi, ip, arp, rarp, tcp, udp , icmp või ip6 ning tähistab indeksi operatsiooni protokolli kihti. ( eeter, fddi, tr, ppp, libisemine ja link kõik viitavad lingi kihile.) Pange tähele, et tcp, udp ja muud ülemise kihi protokollitüübid kehtivad ainult IPv4 jaoks, mitte IPv6 (see on fikseeritud tulevikus). Baitide nihe näidatud protokolli kihiga võrreldes on antud expr . Suurus on vabatahtlik ja näitab huvipakkuvas valdkonnas baitide arvu; see võib olla kas üks, kaks või neli ja vaikimisi üks. Pikkuse operaator, mida tähistab märksõna len , annab paketi pikkuse.

Näiteks " eeter [0] & 1! = 0 " püüab kogu multicast liiklust. Väljend " ip [0] & 0xf! = 5 " püüab kõiki IP-pakette võimalustega. Väljend " ip [6: 2] & 0x1fff = 0 " püüab ainult fragmenteerimata datagramme ja fragmenteeritud datagramme frag fragmenti. Seda kontrolli kasutatakse kaudselt tcp-i ja udp- indeksi toimingute suhtes. Näiteks tcp [0] tähendab alati TCP päise esimest baiti ja ei tähenda vahepealse fragmendi esimest baiti.

Mõned tasakaalu ja väljade väärtused võivad olla pigem nimed kui arvulised väärtused. Saadaval on järgmised protokolli päise väljavahetused : icmptype (ICMP tüüpi välja), icmpcode (ICMP koodi väli) ja tcpflags (TCP-lipud väljale).

Saadaval on järgmised ICMP-tüüpi väljade väärtused: icmp -echoreply , icmp -unreach , icmp -sourcequench , icmp -redirect , icmp -echo , icmp -routeradverti , icmp -routersolicy , icmp-timxceed , icmp -paramprob , icmp -tstamp , icmp -tstampreply , icmp -ireq , icmp -ireqreply , icmp -maskreq , icmp -maskreply .

Saadaval on järgmised TCP-lipud väljade väärtused: tcp-fin , tcp-syn , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

Primitiivid võib kombineerida, kasutades:

Ümberstruktuurne primitiivide ja operaatorite rühm (sulgud on Shellile eriomased ja neid tuleb vältida).

Tagasilükkamine (` ! 'Või' not ').

Ühendamine (` && 'või` ja ').

Vahetus (` || 'või` või ').

Tagasilükkamine on kõige kõrgem. Ümberpaigutamine ja ühendamine on võrdselt tähtsad ja seostatakse vasakult paremale. Pange tähele, et sidumiseks on vaja selgesõnalisi ja žetoonid, mitte kokkuvõtteid.

Kui tunnus on antud ilma märksõna, eeldatakse, et viimane märksõna on. Näiteks,

ei võõrusta vs ja äss

on lühike

mitte vastuvõtva vs ja vastuvõtva äss

mida ei tohiks segi ajada

mitte (host vs või äss)

Tipp-argumente saab tcpdumpile edastada kas ühe argumendina või mitme argumendina, olenevalt sellest, kumb on mugavam. Üldiselt, kui väljend sisaldab Shelli metasõnastikku, on seda lihtsam edastada ühe tsiteeritud argumendina. Enne parsimist on mitmed argumendid ühendatud tühikutega.

NÄITED

Kõikide päikset saabuvate või sealt lahkuvate pakettide printimiseks:

tcpdump host sundown

Liikluse trükkimine heliooside vahel kuuma või ässini :

tcpdump host helios ja \ (kuum või äss \)

Kõikide IP-pakettide printimine ace ja mis tahes hosti vahel, välja arvatud heliod :

tcpdump ip host ace ja mitte helioosid

Et printida kogu Berkeley kohalike hostide ja hostide vahelist liiklust:

tcpdump net ucb-eeter

Kõigi ftp-i liikluse trükkimine läbi Interneti-gateway snup : (pidage silmas, et väljend on tsiteeritud, et vältida sulgude (mis-) tõlgendamist):

tcpdump "gateway snup ja (port ftp või ftp-data)"

Selleks, et printida liiklust, mis ei pärine kohalikest hostidest ega ole määratud (kui te lüüakse mõnele muule võrgule, ei peaks see asi kunagi oma kohalikku võrku pakkuma).

tcpdump ip ja mitte võrguühendus

Iga TCP-vestluse algus- ja lõpppakettide (SYN ja FIN pakettide) printimine, mis hõlmab mitte-kohalikku hosti.

tcpdump 'tcp [tcpflags] & (tcp-syn | tcp-fin)! = 0 ja mitte src ja dst net localnet '

IP-pakettide trükkimiseks, mis on saadetud lüüsi kaudu, üle 576 baiti:

tcpdump "gateway snup ja ip [2: 2]> 576 '

Et printida IP edastust või multimeediumspetsiifilisi pakette, mida ei saadetud Etherneti leviedastuse või multimeediumsõnumite kaudu:

tcpdump "eeter [0] & 1 = 0 ja ip [16]> = 224 '

Et printida kõiki ICMP pakette, mis ei ole echo taotlused / vastused (st mitte ping pakette):

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

VÄLJUND FORMAAT

Tcpdumpi väljund sõltub protokollist. Järgnev annab lühikirjelduse ja näited enamiku vormingute kohta.

Link tasemel päised

Kui antakse "-e" valik, trükitakse linki taseme päis. Eriotstarbel on trükitud lähte- ja sihtkoha aadressid, protokoll ja paketi pikkus.

FDDI-võrkude puhul teeb "-e" valik tcpdump, et printida "raami juhtimise" välja, lähte- ja sihtkoha aadressid ning paketi pikkus. Tavalised paketid (näiteks need, mis sisaldavad IP-datagramme) on "async" -pakettid, mille prioriteetne väärtus on vahemikus 0 kuni 7, näiteks " async4 ". Sellised eeldatakse, et paketid sisaldavad 802.2 Logical Link Control (LLC) paketti; LLC-päis trükitakse, kui see ei ole ISO-datagramm või nn SNAP-pakett.

Token Ring-võrkude puhul annab "-e" valik tcpdump, et printida väljadele "access control" ja "frame control", lähte- ja sihtkoha aadresse ning paketi pikkust. FDDI-võrkude puhul eeldatakse, et paketid sisaldavad LLC-paketi. Sõltumata sellest, kas '-e' -valik on määratud või mitte, trükitakse lähtejuurdepääsu teave lähtekõverdatud pakettidele.

(NB! Järgnev kirjeldus eeldab RFC-1144-s kirjeldatud SLIP-pakkimisalgoritmi tutvustamist.)

SLIP-lingidel prinditakse välja suunamisnäidik (sisendnumbri "I", väljaminevatele "O" jaoks), pakettide tüüp ja tihendusinformatsioon. Paketi tüüp trükitakse esmalt. Kolm tüüpi on ip , utcp ja ctcp . Ip- pakettide jaoks ei ole täiendavat lingi infot trükitud. TCP-pakettide jaoks trükitakse tüübi järgi ühendus identifikaator. Kui pakett on kokkusurutud, trükitakse selle kodeeritud päis. Erijuhud trükitakse väljale * S + n ja * SA + n , kus n on summa, mille võrra järjenumber (või järjekorranumber ja akk) on muutunud. Kui see pole erijuhtum, trükitakse null või rohkem muudatusi. Muutmist tähistab U (kiireloomuline kursor), W (aken), A (ack), S (järjekorranumber) ja I (paketi ID), millele järgneb delta (+ n või -n) või uus väärtus (= n). Lõpuks trükitakse pakettide ja tihendatud päise pikkuse andmete hulk.

Näiteks järgmine rida näitab väljaminevat kokkusurutud TCP-paketti koos kaudse ühenduse identifikaatoriga; akk on muutunud 6, järjekorranumbrid 49 ja pakettide ID 6; seal on 3 baiti andmeid ja 6 baiti kokkusurutud päist:

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

ARP / RARP paketid

Arp / rarp väljund näitab taotluse tüüpi ja selle argumente. Selle vormi eesmärk on enesestmõistetav. Siin on lühike proov, mis võeti hosti rtsg -i rlogini algusest hosti csamini :

arp kellel on csam öelda rtsg arp vastus csam on-at CSAM

Esimeses reas öeldakse, et rtsg saatis arp-paketi, milles küsitakse veebiserveri csam e-posti aadressi. Csam vastab oma Etherneti aadressile (selles näites on Ethernet-aadressid väiketähtedega ja Interneti-aadressid).

See oleks vähem koondatud, kui oleksime teinud tcpdump -n :

arp who-128.3.254.6 öelda 128.3.254.68 arp vastus 128.3.254.6 on-at 02: 07: 01: 00: 01: c4

Kui oleksime teinud tcpdump-e , oleks nähtav see, et esimene pakett edastatakse ja teine ​​on punkt-punkt.

RTSG Broadcast 0806 64: arp kellel on csam öelda rtsg CSAM RTSG 0806 64: arp vastus csam on-at CSAM

Esimese paketi jaoks ütleb see, et Etherneti lähtekoodi aadress on RTSG, sihtpunkt on Ethernet-leviaadress, tüübi väli sisaldas hex 0806 (tüüp ETHER_ARP) ja kogupikkus oli 64 baiti.

TCP-paketid

(NB! Järgnev kirjeldus eeldab RFC-793-s kirjeldatud TCP-protokolli tutvustamist. Kui te pole protokolliga tuttav, ei ole see kirjeldus ega tcpdump teile eriti kasulikud.)

Tcp-protokolli liini üldine vorm on:

src> dst: lipud data-seqno akk akna kiireloomulisi valikuid

Src ja dst on lähte- ja sihtkoha IP-aadressid ja portid. Lipud on mõni kombinatsioon S (SYN), F (FIN), P (PUSH) või R (RST) või ühe "." (ilma lipudeta). Data-seqno kirjeldab selles paketis sisalduvate andmetega hõlmatud järjestusruumi osa (vt allpool toodud näidet). Ack on järgmiste andmete järjekorranumber, mis ootavad selle suuna teist suunda. Aken on vastuvõtu puhvervaru baitide arv, mis on selles suunas teine ​​suund. Urg näitab, et pakettaknad on "kiireloomulised" andmed. Valikud on tcp valikud, mis on suletud nurksulgudes (nt ).

Src, dst ja lipud on alati olemas. Muud väljad sõltuvad pakettide tcp-protokolli päise sisust ja väljastatakse ainult siis, kui see on asjakohane.

Siin on rlogini avanev osa vastuvõtvast rtsgist csami vastuvõtmiseks.

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. Logi sisse: . 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

Esimeses reas öeldakse, et rtsg-i tcp-port 1023 saatis paketti csami sisselogimiseks porti. S näitab, et SYN- lipp oli seatud. Pakettide järjekorranumber oli 768512 ja see ei sisaldanud andmeid. (Märkus on "esimene: viimane (nbytes)", mis tähendab "järjekorranumbreid kõigepealt kuni, kuid mitte viimati, mis on nbytes baidid kasutajaandmetest"). Pole ühtegi tagurpidi tagastatud akki , saadaval saada aken oli 4096 baiti ja seal oli max segmendi suuruse variant, milles taotletakse mss-i 1024 baiti.

Csam vastab sarnase paketiga, välja arvatud juhul, kui see sisaldab rtsg-i SYN-i rätikuga tagatud anni. Rtsg seejärel aktiveerib csami SYN. `. ' tähendab, et pole määratud lippu. Pakettaknad ei sisaldanud andmeid, nii et andmete järjekorranumbrit ei oleks. Pange tähele, et ack järjekorranumber on väike täisarv (1). Esimene kord, kui tcpdump näeb tcp "vestlust", trükkab see järjenumber paketti. Vestluse järgnevatel pakettidel trükitakse praeguse paki järjenumbri ja selle algse järjekorranumbri vahe. See tähendab, et järjestuste numbreid pärast esimest saab tõlgendada suhtelise baidi positsioonidena vestluse andmevoovis (esimese andmebaidi puhul on suund `1 '). `-S 'ignoreerib seda funktsiooni, põhjustades originaaljärjestuse numbrite väljastamise.

6. reas rtsg saadab csamile 19 baiti andmeid (vestluse rtsg -> csam pool baidid 2 kuni 20). PUSH-lipp on seatud paketti. Seitsmendal real csam ütleb, et rtsg on saanud rtsg-i saatnud andmed, kuid ei sisalda baiti 21. Enamik neist andmetest tundub olevat pistikupuhvris, kuna csam-i vastuvõtmise aken on 19 baiti väiksem. Csam saadab selle paketi rtsg-iga ühe andmebaidi. 8. ja 9. rida csam saadab rtsg-ile kaks baiti kiiret, surutud andmeid.

Kui hetktõmmis oli piisavalt väike, et tcpdump ei kogu TCP-päise, see tõlgendab nii palju päist kui võimalik ja seejärel arutab `` [| tcp ] '', et ülejäänud osa ei saaks tõlgendada. Kui päis sisaldab võltsuvõimalust (üks pikkusega, mis on kas liiga väike või päise lõppu jäänud), teatab tcpdump sellest kui `` [ bad opt ] '' ja ei tõlgendata täiendavaid valikuid (kuna seda ei saa öelda kus nad alustavad). Kui päise pikkus tähistab võimalusi, kuid IP-datagrammi pikkus ei ole piisavalt pikk, et võimalused oleksid seal tegelikult olemas, siis teatab tcpdump sellest "[ halb hdr pikkus ]".

Spetsiaalsete lipukombinatsioonidega TCP-pakettide hõivamine (SYN-ACK, URG-ACK jne)

TCP-päise kontroll-bittide sektsioonis on 8 bitti:

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

Oletame, et tahame vaadata TCP-ühenduse loomiseks kasutatavaid pakette. Tuletame meelde, et TCP kasutab uue sideühenduse initsialiseerimisel 3-suunalist käepigistusprotokolli; TCP-kontroll-bittide seostamise järjestus on

1) helistaja saadab SYNi

2) Saaja vastab SYN-ile, ACK-le

3) Helistaja saadab ACK-i

Nüüd oleme huvitatud pakettide hankimiseks, millel on ainult SYN-i bittide seade (1. samm). Pange tähele, et me ei soovi 2. etapi pakette (SYN-ACK), vaid lihtsalt esialgset SYN-i. Vajame tcpdumpi õiget filtri avaldist.

Tuletame meelde ilma valikuteta TCP-päise struktuuri:

0 15 31 ---------------------------------------------- ------------------ | allika sadam | sihtkoha sadam | -------------------------------------------------- --------------- | järjekorranumber | -------------------------------------------------- --------------- | kinnitus number | -------------------------------------------------- --------------- | HL | rsvd | C | E | U | A | P | R | S | F | akna suurus | -------------------------------------------------- --------------- | TCP kontrollsumma | kiire käekell | -------------------------------------------------- --------------

TCP-päisel on tavaliselt 20 octetit andmeid, välja arvatud juhul, kui valikud on olemas. Graafi esimene rida sisaldab oktete 0-3, teine ​​rida näitab oktete 4 - 7 jne.

Alustades loendist 0-ga, vastavad TCP-juhtelemendid sisalduvad oktetis 13:

0 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | ---------------- | HL | rsvd | C | E | U | A | P | R | S | F | akna suurus | ---------------- | --------------- | --------------- | - --------------- | | 13 oktett | | |

Lähemalt vaatame oktett nr. 13:

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

Need on TCP-i kontroll-bittid, millest oleme huvitatud. Oleme nummerdanud selle okteti bitti 0 kuni 7 paremalt vasakule, nii et PSH bitt on bitt number 3, samal ajal kui URG bit on number 5.

Tuletame meelde, et me tahame lüüa pakette ainult SYN-seadmega. Vaatame, mis juhtub oktetiga 13, kui TCP-datagramm saabub selle päises määratud SYN-bitiga:

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

Kontrollibitite sektsiooni vaadates näeme, et on seatud ainult bitiarv 1 (SYN).

Eeldusel, et okteti number 13 on võrguteenuse järjekorras 8-bitise tähtarvuga täisarv, on selle okteti binaarväärtus

00000010

ja selle kümnendkoht on

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

Me oleme peaaegu valmis, sest nüüd teame, et kui määratud on ainult SYN, siis TCP-päises oleva 13-nda okteti väärtus, kui seda tõlgitakse 8-bitise võrguteta tellimuse täisarvuna 8-bitiseks, peab olema täpselt 2.

Seda suhet võib väljendada kui

tcp [13] == 2

Saame kasutada seda väljendit filtri tcpdump , et vaadata pakette, millel on ainult SYN-kood:

tcpdump-i xl0 tcp [13] == 2

Väljend näitab, et "lase TCP-datagrammil 13. oktetil olla kümnendarvväärtus 2", mis on täpselt see, mida me tahame.

Nüüd eeldame, et peame võtma SYN-pakette, kuid me ei hooli sellest, kas ACK või mõni muu TCP-kontrollbiti seatakse korraga. Vaatame, mis juhtub oktetiga 13, kui saabub SYN-ACK-ga määratud TCP-datagramm:

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

Nüüd on bitid 1 ja 4 määratud 13. oktetis. Okteti binaarväärtus on 13


00010010

mis tähendab kümnendkohta

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

Nüüd ei saa tcpdump filtri avaldis kasutada ainult 'tcp [13] == 18', sest see valib ainult need paketid, millel on SYN-ACK-seade, kuid mitte ainult need, millel on ainult SYN-seade. Pidage meeles, et me ei hooli, kas ACK või mõni muu kontrollibit on seatud seni, kuni on seatud SYN.

Selle eesmärgi saavutamiseks peame loogiliselt ja OKTET 13 binaarväärtust mõne teise väärtusega säilitama, et SYN-bitti säilitada. Me teame, et me soovime, et SYN-i oleks igal juhul seatud, nii et loogiliselt andsime väärtuse 13. oktetis SYN-i binaarväärtusega:

00010010 SYN-ACK 00000010 SYN ja 00000010 (tahame SYN) JA 00000010 (tahame SYN) -------- -------- = 00000010 = 00000010

Me näeme, et see AND-operatsioon annab sama tulemuse olenemata sellest, kas ACK või mõni muu TCP-kontrollbiti on seatud. AND-väärtuse kümnendmõõtmine ja selle toimingu tulemus on 2 (binaarne 00000010), nii et me teame, et SYN-iga pakettide jaoks peab järgnev suhe olema tõene:

((okteti väärtus 13) JA (2)) == (2)

See viitab meile tcpdump- filtri väljendile

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

Pange tähele, et kasutage eksemplaris üksikuid hinnapakkumisi või tagasiulatuvaid rõngaid, et varjata AND ('&') erimärki koopialt.

UDP paketid

UDP-vormingu illustreerib see rwho pakett:

actinide.who> broadcast.who: udp 84

See ütleb, et sadam, kes vastuvõttev aktinid, saatis udp-datagrammi, et sadamasse saata, kes on saadete vastuvõtjal, Interneti-aadressi aadressil. Pakett sisaldas 84 baidi kasutajaandmeid.

Mõned UDP-teenused on tuvastatud (lähtekoodi või sihtkoha porti) ja trükitakse kõrgema taseme protokolli andmed. Eelkõige DNS-i teenusetaotlused (RFC-1034/1035) ja Sun RPC-kõned (RFC-1050).

UDP nime serveri taotlused

(NB! Järgnev kirjeldus eeldab RFC-1035-s kirjeldatud domeeniteenuse protokolli tutvustamist. Kui te ei tunne protokolli, kuvatakse järgmine kirjeldus kreeka keeles.)

Nimeserver päringud on vormindatud kui

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

Vastuvõtja h2opolo palus domeeni serveril helios aadressiraamatu (qtype = A), mis on seotud nimega ucbvax.berkeley.edu. Päringu ID oli '3'. '+' Tähistab rekursiooni soovitud lipu seadistamist. Päringu pikkus oli 37 baiti, välja arvatud UDP ja IP-protokolli päised. Päringuoperatsioon oli tavaline, päring , seega jäeti op-väljale ära. Kui op oleks olnud midagi muud, oleks see olnud trükitud "3" ja "+" vahel. Samamoodi oli qclass tavaline, C_IN ja jäeti välja. Kõik muud qclass oleksid trükitud kohe pärast "A".

Kontrollitakse mõnda kõrvalekallet ja selle tulemuseks võivad olla nurgakividega ümbritsetud täiendavad väljad: kui päring sisaldab vastust, trükitakse autoriseerimisdokumendid või täiendavad kirjete sektsioonid, ancount , nscount või arcount kui "[ n a]", "[ n n ] "või" [ n au] ", kus n on sobiv arv. Kui mõni vastuse bitti on seatud (AA, RA või rcode) või mõni nullist peab olema null, tehakse kahe ja kolme baiti, trükitakse `[b2 & 3 = x ] ', kus x on hex väärtus päise kaks ja kolm baiti.

UDP nime serveri vastused

Nimeserveri vastused on vormindatud kui

src> dst: id op rcode lipud a / n / au tüüpi klassi andmed (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)

Esimeses näites heliod reageerib h2opolo päringu ID 3- le, millel on 3 vastuse kirjet, 3 nimeserverit ja 7 täiendavat kirjet. Esimene vastusekiri on tüüp A (aadress) ja selle andmed on Interneti-aadress 128.32.137.3. Vastuse kogusumma oli 273 baiti, välja arvatud UDP ja IP päised. Op (päring) ja vastusekood (NoError) jäeti välja, nagu ka A-kirje klass (C_IN).

Teises näites helios vastab päringule 2 vastusekoodiga olematu domeeniga (NXDomain), millel pole vastuseid, üks nimeserver ja ükski autoriseerimisregister. '*' Tähistab autoritaarse vastuse biti määra. Kuna vastuseid ei olnud, trükiti ühtegi tüüpi, klassi või andmeid.

Võimalik, et muud tähised on `- '(rekursioon on saadaval, RA ei ole seatud) ja` |' (lühendatud teade, TC, seatud). Kui "küsimuse" jaotis ei sisalda täpselt üht sisestust, trükitakse [ n q] ".

Pange tähele, et nimeserveri päringud ja vastused kipuvad olema suured ja 68-baidine vaikimisi varukoopia ei pruugi printida piisavalt paketti. Kasutage -s lipp, et tõsta klapi, kui peate tõsiselt uurima nimeserveri liiklust. ` -s 128 'on minu heaks töötanud.

SMB / CIFS dekodeerimine

Tcpdump hõlmab nüüd üsna ulatuslikku SMB / CIFS / NBT dekodeerimist UDP / 137, UDP / 138 ja TCP / 139 andmetele. Samuti tehakse mõned IPX ja NetBEUI SMB andmete esmane dekodeerimine.

Vaikimisi tehakse suhteliselt minimaalne dekodeerimine, kui palju rohkem üksikasjalikumat dekodeerimist tehakse, kui kasutatakse -v-d. Olge ettevaatlik, et-üks üksik SMB-pakett võib võtta lehte või rohkem, nii et kasutage ainult -v, kui soovite tõesti kõiki kergeid üksikasju.

Kui sa dekomendeerivad unikoodi stringe sisaldavaid SMB seansse, siis võid soovida määrata keskkonnamuutuja USE_UNICODE väärtuseks 1. Unicode'i sangide automaatse tuvastamise plaaster oleks teretulnud.

SMB pakettide vormingute kohta teabe saamiseks vaadake veebisaiti www.cifs.org või pub / samba / specs / kataloogi oma lemmik samba.org peegel saidil. SMB plaane kirjutas Andrew Tridgell (tridge@samba.org).

NFS taotlused ja vastused

Sun NFS (võrgufailide süsteem) päringud ja vastused trükitakse järgmiselt:

src.xid> dst.nfs: len op args src.nfs> dst.xid: vastus stat len ​​op tulemused sushi.6709> wrl.nfs: 112 readlink fh 21,24 / 10.73165 wrl.nfs> sushi.6709: vastake hea 40 read link "../var" sushi.201b> wrl.nfs: 144 lookup fh 9,74 / 4096,6878 "xcolors" wrl.nfs> sushi.201b: vastus ok 128 lookup fh 9,74 / 4134,3150

Esimeses reas annab host sushi tehingu ID 6709 - ga (arvesta, et src-hosti järgnev number on tehingu id, mitte lähteporti). Taotlus oli 112 baiti, välja arvatud UDP ja IP päised. Operatsioon oli faili käepide ( fh ) 21,24 / 10.731657119 lugemisloend (loe sümboolne link). (Kui üks on õnnelik, nagu käesoleval juhul, saab failihaldust tõlgendada kui peamist, väiksemat seadme numbripaari , millele järgneb inode number ja põlvnumber .) Wrl vastab lingi sisule "ok".

Kolmandas reas küsib sushi , et kataloogifailis 9,74 / 4096,6878 otsitakse nime " xcolors ". Pidage meeles, et trükitud andmed sõltuvad operatsioonitüübist. Vormindus on iseenesest mõistetav, kui lugeda seda koos NFS-protokolli spetsifikatsiooniga.

Kui antakse -v (verbose) lipp, trükitakse lisateavet. Näiteks:

sushi.1372a> wrl.nfs: 148 loe fh 21,11 / 12.195 8192 bytes @ 24576 wrl.nfs> sushi.1372a: vastus ok 1472 loe reg 100664 ids 417/0 sz 29388

(-v ka prindib IP-pealkirja TTL-i, ID-d, pikkuse ja killustatuse väljad, mida käesolev näide on välja jätta). Esimeses reas küsib sushi , et faili 21,11 / 12.195 lugeda 8192 baidit baitide nihutamisel 24576. Wrl vastused "ok"; teises reas näidatud pakett on vastuse esimene fragment ja seega on see ainult 1472 baiti pikk (teised baitid järgnevatel fragmentidel järgivad, kuid neil fragmentidel ei ole NFS-i või isegi UDP-päise, mistõttu neid ei pruugita, sõltuvalt kasutatud filtri väljendist). Kuna -v-lipp on antud, trükitakse mõned faili atribuudid (mis saadetakse lisaks faili andmetele): failitüüp (`` REG '', tavalise faili jaoks), failirežiim (kaheksandas tähestikus), uid ja gid ning faili suurus.

Kui -v-lipp antakse rohkem kui üks kord, siis prinditakse veelgi rohkem üksikasju.

Pange tähele, et NFS-päringud on väga suured ja suuremat osa üksikasjadest ei trükita, kui ei suurendata snaplenit . NFS liikluse vaatamiseks proovige kasutada ` -s 192 '.

NFS-vastused pakette ei määratle selgesõnaliselt RPC-operatsiooni. Selle asemel tcpdump jälgib "hiljutisi" päringuid ja sobitab need vastustega kasutades tehingu ID-d. Kui vastus ei vasta vastavale taotlusele hoolikalt, ei pruugi see olla parsable.

AFS taotlused ja vastused

Transarc AFS (Andrew File System) taotlused ja vastused trükitakse järgmiselt:

src.sport> dst.dport: rx pakett-tüüpi src.sport> dst.dport: rx pakett-tüüpi teenuse kõne kõne nime args src.sport> dst.dport: rx pakett-tüüpi teenuse vastus call-name args elvis. 7001> pike.afsfs: rx data fs call rename vanu fid 536876964/1/1 ".newsrc.new" uus fid 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx data fs vastus ümbernimetamine

Esimeses reas, vastuvõttev elvis saadab Rike-paketile haugi. See oli fs (failiserveri) teenus RX andmepaketiga ja see on RPC-kõne algus. RPC-kõne oli ümbernimetamine, kus oli vana kataloogifaili number 536876964/1/1 ja vana failinimi ".newsrc.new" ning uus kataloogifaili number 536876964/1/1 ja uus failinimi ". newsrc ". Vastuvõtja haug on reageerinud RPC vastusega ümbernimetamise kõnele (see oli edukas, kuna tegemist oli andmepaketiga ja mitte katkestatud paketiga).

Üldiselt dekodeeritakse kõik AFS RPC-d vähemalt RPC-kõne nime järgi. Enamikul AFS RPC-dest on vähemalt mõned dekodeeritud argumendid (üldiselt ainult "huvitavad" argumendid, mõnele huvitavale määratlusele).

Selle vormi eesmärk on ise kirjeldada, kuid see ei pruugi tõenäoliselt olla kasulik inimestele, kes ei tunne AFSi ja RX-i toiminguid.

Kui -v (verbose) lipp antakse kaks korda, prinditakse kinnituspakettid ja täiendavad päiseandmed, näiteks RX kõne ID, kõne number, järjekorranumber, seerianumber ja RX pakett-lipud.

Kui -v-lipp antakse kaks korda, trükitakse lisateavet, näiteks RX-kõne ID, seerianumber ja RX-paketi lipud. MTU läbirääkimiste teave trükitakse ka RX ack pakettidelt.

Kui -v-luba antakse kolm korda, trükitakse turvaindeks ja teenuse ID.

Eraldumiskoodid trükitakse pakettide katkestamiseks, välja arvatud Ubigi majakapakette (kuna abikombel pakette kasutatakse Ubigi protokolli jah hääletamiseks).

Pange tähele, et AFS-i taotlused on väga suured ja paljusid argumente trükitakse ainult siis, kui suurendatakse snaplenit . AFSi liikluse vaatamiseks proovige kasutada ` -s 256 '.

AFS-vastuste paketid ei määratle selgesõnaliselt RPC-operatsiooni. Selle asemel tcpdump jälgib "hiljutisi" päringuid ja vastab nendele vastustele kasutades kõne numbrit ja teenuse ID-d. Kui vastus ei vasta vastavale taotlusele hoolikalt, ei pruugi see olla parsable.

KIP Appletalk (DDP UDP-s)

UDP datagrammides kapseldatud Appletalk DDP-pakettid on dekapseldatud ja mahajäetud DDP pakettidena (st kogu UDP päise andmed jäetakse kõrvale). Faili /etc/atalk.names kasutatakse appletalk net ja sõlme numbrite tõlkimiseks nimedele. Selle faili ridadel on vorm

numbri nimi 1.254 eeter 16.1 icsd-net 1.254.110 ace

Esimesed kaks rida annavad appletalk-võrkude nimesid. Kolmas rida annab konkreetse hosti nime (host erineb võrgust arvu 3-nda oktetiga - neto number peab olema kaks oktetit ja vastuvõtva numbril peab olema kolm oktetit). Numbri ja nime tuleks eraldada tühjad tühikud (toorikud või sakid). Faili /etc/atalk.names võib sisaldada tühikuid või kommenteerimisringe (read, mis algavad # -ga).

Appletalk-aadressid on trükitud kujul:

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

(Kui /etc/atalk.names ei ole olemas või ei sisalda mõnda appletalki hosti / netnumbri sisestust, trükitakse aadressid numbrilisel kujul.) Esimeses näites, NBP (DDP port 2) võrgu 144.1 sõlm 209 saadab igale, mis on kuulnud võrgu icsd-sõlme 112 pordis 220. Teine rida on sama, välja arvatud allika sõlme täisnimi on tuntud ("asukoht"). Kolmas rida on pordi 235 saatmine võrgu jssmag sõlme 149-le icsd-net NBP porti edastades (märkus, et leviaadressi (255) tähistab võrgu nimi, millel puudub hosti number - sellepärast on see hea mõte et hoida /etc/atalk.names sõlme nimesid ja võrgunimesid eraldi.

NBP (nimi-sidumisprotokoll) ja ATP (Appletalk-tehingute protokoll) pakettide sisu tõlgendatakse. Teised protokollid panevad lihtsalt protokolli nime (või numbri, kui nime pole protokolli jaoks registreeritud) ja pakettide suurust.

NBP-paketid on vormindatud nagu järgmised näited:

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

Esimene rida on nimeotsingu taotlus laskuvõtete jaoks, mille on saatnud võrgu icsd vastuvõtja 112 ja edastatakse võrgus jssmag. Otsinguvõrgu nbp-id on 190. Teine rida näitab selle päringu vastust (märkige, et see on sama ID) vastuvõtjalt jssmag.209, öeldes, et sellel on port-250-le registreeritud laserprinterite ressurss nimega "RM1140". Kolmas line on teine ​​vastus samale taotlusele, öeldes, et host techpit'il on laserprinterit "techpit", mis on registreeritud sadamas 186.

ATP pakettide vormindamist näitab järgmine näide:

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: 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 helioos .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 algatab tehingu ID 12266 serveri heliosiga, taotledes kuni 8 paketti (`<0-7> '). Rida lõpus on hex-number päringu väljal "userdata" väärtus.

Helios vastab 8 512-baidise paketiga. Transaction id-i järgnev `: number 'annab tehingu pakettaknumbrilise numbri ja parensis olev number on paketti andmete hulk, välja arvatud peerspea. Pakettaknad '*' näitab, et EOMi bitt oli seatud.

Jssmag.209 nõuab siis, et pakette 3 ja 5 uuesti edastataks. Helios saadab need uuesti, seejärel vabastab jssmag.209 tehingu. Lõpuks algatab jssmag.209 järgmise taotluse. Päring '*' näitab, et XO (`täpselt üks kord ') ei olnud seatud.

IP killustatus

Jaotatud Interneti-datagrammid trükitakse nagu

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

(Esimene vorm näitab, et seal on rohkem fragmente. Teine näitab, et see on viimane fragment.)

Id on fragment id. Suurus on fragmentuurus (baitides), välja arvatud IP päis. Offset on selle fragmendi algse datagrammi nihke (baitides).

Iga fragmendi kohta esitatakse fragmentinformatsioon. Esimene fragment sisaldab kõrgema taseme protokolli päist ja frag info on pärast protokolliinfot trükitud. Esimesed fragmendid ei sisalda kõrgemal tasemel protokolli päist ega trükitakse fraafiandmed allika ja sihtkoha aadresside järgi. Näiteks siin on osa arizona.edu ftp-lt lbl-rtsg.arpa-le üle CSNET-i ühenduse, mis ei näita 576-baidise datagrammi käsitlemist:

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

Siin on siin paar asja: esiteks, 2. rea aadressid ei sisalda pordinumbreid. Seda seetõttu, et TCP-protokolli andmed on kõik esimeses fraasis ja meil ei ole aimugi, mis port või järjenumber on, kui me printida hiljem fragmente. Teiseks trükitakse esimese rea tcp-järjestuse teave nii, nagu oleks kasutajaandmeid 308 baiti, kui tegelikult on 512 baidi (esimeses fraasis 308 ja teises teises 204 baiti). Kui otsite järjestikku tühikuid või püüate pakettidega kokku puutuda, võib see sulle petta.

IP-ga pakett ei fragmenta lipu märgistusega jäljendi (DF) .

Ajatemplid

Vaikimisi eelneb kõigile väljundiliinidele ajatempel. Ajatempel on vormi praegune kellaaeg

hh: mm: ss.frac

ja see on sama täpne kui tuuma kell. Ajatempel peegeldab aega, mil kernel nägi paketti esimest korda. Ei püüa arvestada ajapuudust, kui Ethernet-liides eemaldas paki traadist ja kui kernel teenindas uut pakettaknad katkestust.

VAATA KA

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

Tähtis: kasutage käsuga man ( % man ), et näha, kuidas käsku kasutatakse teie konkreetsel arvutis.