Tcpdump - Linux Command - Unix Command

NAME

tcpdump - bir şəbəkə dump trafik

SYNOPSIS

tcpdump [ -adeflnNOpqRStuvxX ] [ -c sayı ]

[ -C file_size ] [ -F fayl ]

[ -i interface ] [ -m modul ] [ -r fayl ]

[ -s snaplen ] [ -T tipi ] [ -U istifadəçi ] [ -w fayl ]

[ -A algo: gizli ] [ ifadə ]

TƏSVİRİ

Tcpdump , boolean ifadəsinə uyğun olan şəbəkə interfeysində paketlərin başlıqlarını çıxarır . Bundan əlavə, paketin məlumatlarını daha sonra təhvil verilməsi üçün bir faylya və / və ya -R bayrağına qənaət etməyə səbəb olan -w bayrağından istifadə edilə bilər ki, bu paketləri oxumaq yerinə, saxlanan paket faylından oxumağa səbəb olur şəbəkə interfeysindən. Bütün hallarda, yalnız eşleşen eşleme paketleri tcpdump tarafından işlenecektir.

Tcpdump , -c bayrağı ilə işləməsə , bir SIGINT siqnalı (məsələn, kəsilmə xarakterinizi, tipik olaraq nəzarət-C yazmaqla) və ya SIGTERM siqnalı (adətən öldürmək (1) əmr); -c bayrağından istifadə edildikdə, SIGINT və ya SIGTERM siqnalı ilə ya da müəyyən edilmiş paket sayı işlənmişdirsə, paketləri tutacaqdır.

Tcpdump paketlərin tutulmasını başa çatdıqda, hesabatın sayları hesablanır:

'' filter tərəfindən alınan '' paketlər '(bunun mənası, tcpdump çalıştırdığınız işletim sisteminize bağlıdır və ehtimal ki, OS konfiqurasiya olunduğunda - bir filtr komanda satırında müəyyən edilmişsə, bəzi əməliyyat sistemlərində sayar filtr ifadəsi ilə eşleşmiş olub-olmamasından asılı olmayaraq paketlər və digər əməliyyat sistemlərində yalnız filter ifadəsi ilə uyğunlaşdırılmış və tcpdump tərəfindən işlənmiş paketləri sayır);

'' çekirdek'ten düşmüş '' paketler (bu, tcpdump'un çalıştığı işletim sistemindeki paket yakalama mekanizması tarafından buffer alanı eksikliğinden dolayı düşen paketlerin sayısıdır ; əgər yoxsa, 0 olaraq bildiriləcək).

SIGINFO siqnalını dəstəkləyən platformalarda, məsələn, BSD-lər kimi bir SIGINFO siqnalını aldıqda hesabat verəcəkdir (məsələn, "status" xarakterini, tipik olaraq nəzarət-T yazmaqla yaradılan) və paketləri götürməyə davam edəcək .

Bir şəbəkə interfeysindən oxu paketləri xüsusi imtiyazlara malik olmanızı tələb edə bilər:

NOS və ya BPF ilə SunOS 3.x və ya 4.x altında:

/ Dev / nit və ya / dev / bpf * əvəzinə oxumaq lazımdır.

DLPI ilə Solaris altında:

Şəbəkə sözdə cihazına oxumaq / yazmaq lazımdır, məsələn, / dev / le . Bununla belə, Solaris'in ən azı bəzi versiyalarında, tcpdump'un qeyri-adi rejimdə tutulmasına icazə vermək kifayət deyil; Solaris'in bu versiyalarında, kök olmalı və ya tcpdump , kasıb rejimdə tutmaq üçün, kök etmək üçün setuid qurulmalıdır. Qeyd edək ki, bir çox (bəlkə də bütün) interfeyslərdə, fərqli rejimdə ələ keçirməyəcəksinizsə, gedən paketləri görməyəcəksiniz, belə ki, fərqli rejimdə aparılmayan bir tutma çox faydalı ola bilməz.

HP-UX-da DLPI ilə:

Siz kök olmalıdır və ya tcpdump kök üçün setuid quraşdırılmalıdır.

IRIX altında snoop ilə:

Siz kök olmalıdır və ya tcpdump kök üçün setuid quraşdırılmalıdır.

Linux altında:

Siz kök olmalıdır və ya tcpdump kök üçün setuid quraşdırılmalıdır.

Ultrix və Digital UNIX / Tru64 altında UNIX:

Hər hansı bir istifadə tcpdump ilə şəbəkə trafikini tuta bilər. Üstəlik super-istifadəçi pfconfig (8) istifadə edərək, bu interfeysdə fərqli rejim rejimini aktiv etmədiyi halda heç bir istifadəçi (hətta super-istifadəçi) interfeysdə əvəzsiz rejimdə tuta bilməz və heç bir istifadəçi (hətta super-istifadəçi ), super-istifadəçi pfconfig istifadə edərək, bu interfeysdə kopyala rejiminin işləməsini təmin etmədikdə, bir interfeysdə maşın tərəfindən alınan və ya göndərilən unicast trafikini ala bilər, belə ki, bir interfeysdə faydalı paket yığımı yəqin ki, -Bütün rejimdə əməliyyat və ya hər iki əməliyyat rejimi həmin interfeysdə effektiv olmalıdır.

BSD altında:

/ Dev / bpf * ünvanına oxumaqınız lazımdır .

Saxlanan paket faylını oxumaq xüsusi imtiyazlara ehtiyac yoxdur.

Seçimlər

-a

Şəbəkə və yayım adlarını adlara çevirmək cəhdi.

-c

Sayı paketləri alındıqdan sonra çıxın.

-C

Xammal paketini bir savefile yazmadan əvvəl faylın file_size- dən daha böyük olub-olmadığını yoxlayın və əgər varsa, mövcud saxlama faylını bağlayın və yenisini açın. Savefiles ilk savefile sonra -w bayraq ilə göstərilən adı olacaq, sonra bir sıra, 2 başlayaraq və yuxarı davam edəcək. File_size birləşmələri milyonlarla baytdır (1,000,000 bayt, 1,048,576 bayt deyil).

-d

Bəstələnmiş paketi müqayisə edən kodunu insan oxunaqlı forma ilə standart çıxışa buraxın və dayandırın.

-dr

Paket eşleme kodunu bir C proqram parçası olaraq dökün.

-drd

Paket-eşleme kodunu decimal ədədlər kimi yığın (hesabdan öncə).

-e

Hər bir dump xəttində link səviyyəli başlığı yazdırın.

-E

Algo istifadə edin : IPsec ESP paketlərinin şifrələməsinə sirr . Alqoritmlər des- cbc , 3des-cbc , blowfish- cbc , rc3-cbc , cast128-cbc və ya heç biri ola bilər . Varsayılan des-cbc'dir . Paketlərin şifrələmə qabiliyyəti yalnız tcpdump kriptoqrafiya effektivliyi ilə tərtib olunduqda mövcuddur. ESP gizli açarı üçün ascii mətni gizlət. Bu anda ikiqat xarakterli ikiqat dəyər ala bilmərik. Seçim RFC2406 ESP deyil, RFC1827 ESP deyil. Seçim yalnız nizamlama məqsədləri üçündir və bu seçimin həqiqətən "gizli" açarı ilə istifadə edilməsi cəlbedicidir. IPSec gizli açarı komanda xəttinə təqdim edərkən, ps (1) və digər hallarda başqalarına görünə bilər.

-f

Print 'yabanci' internet ünvanlarını simvolik olaraq deyil, sayısal olaraq (bu seçim Günəşin yp serverində ciddi beyin ziyanına çevrilmək üçün nəzərdə tutulur --- adətən qeyri-lokal internet nömrələrini tərcümə etmək asılıdır).

-F

Filtre ifadesi üçün giriş olaraq fayl olaraq istifadə edin. Komanda xəttində verilmiş əlavə ifadə edilmir.

-i

İnterfeys dinləyin. Belirtilmemişse, tcpdump en az numaralandırılmış, yapılandırılmış bir interfeys (loopback istisna olmaqla) üçün sistem arayüz listesini arar. Ən köhnə matçı seçərək bağlar qırılır.

2.2 və ya daha sonrakı çekirdekli Linux sistemlərində, bütün interfeyslərdən paketləri ələ keçirmək üçün "hər hansı" bir interfeys arayışı istifadə edilə bilər. 'Hər hansı bir' cihazda tutulan alətlərin fərqli rejimdə edilməyəcəyini unutmayın.

-l

Stdout xəttini tamponlaşdırın. Faktiki olaraq onu tutarkən məlumatları görmək istəyirsən. Məsələn,
`` tcpdump -l | tee dat '' ya da `` tcpdump -l> dat & tail -f dat '' yazılır.

-m

Fayl modulundan SMI MIB modul təsvirlərini yükləyin. Bu seçim, bir neçə MIB modulunu tcpdump'a yükləmək üçün bir neçə dəfə istifadə edilə bilər.

-n

Host ünvanlarını adlara çevirməyin. DNS axtarışlarının qarşısını almaq üçün bu istifadə edilə bilər.

-nn

Protokol və port nömrələrini və s.

-N

Host adlarının domen adı sifətini çap etməyin. Məsələn, bu bayraq verirsinizsə, tcpdump `` nic.ddn.mil '' əvəzinə '' nic '' yazacaq.

-O

Paket uyğun kod optimizatoru çalıştırmayın. Optimallaşdırıcıda səhv olduğundan şübhə edirsinizsə bu faydalıdır.

-p

Arayüzü fərqli rejimə qoymayın. Interface başqa bir səbəbdən fərqli ola bilər unutmayın; beləliklə, '-p' ether hostu (local-hw-addr) və ya ether yayımı üçün bir kısaltma kimi istifadə edilə bilməz.

-q

Tez (sakit?) Çıxış. Çıxış hatları daha qısa olduğundan daha az protokol məlumatı yazdırın.

-R

ESP / AH paketlərinin köhnə dəqiqləşdirilməsinə (RFC1825-dən RFC1829-a) əsaslanmalıdır. Göstərildiyi təqdirdə, tcpdump replay qarşısının alınması sahəsində çap etməyəcək. ESP / AH spesifikasiyasında heç bir protokol versiyası sahəsi olmadığından, tcpdump ESP / AH protokolu versiyasını çıxara bilməz.

-r

Fayldan paketləri oxuyun (-w parametri ilə yaradılmışdır). Fayl '`-' 'olduğu halda standart giriş istifadə olunur.

-S

TCP sıra nömrələrindən daha mütləq deyil.

-s

Snarf, hər paketdən verilən məlumatların 68-dən çox olmaması (SunOS-un NIT ilə minimum, həqiqətən 96). 68 bayt IP, ICMP, TCP və UDP üçün kifayətdir, lakin protokol məlumatlarını adı server və NFS paketlərindən (aşağıya bax) kəsin. Məhdud bir anlıq şəklində kəsilmiş paketlər '`[| proto ] '' protokolu, proto , kəsilmənin baş verdiyi protokolun adıdır. Qeyd edək ki, daha böyük anlık görüntülər həm paketləri emal etmək üçün lazım olan vaxtın sayını artırır və effektiv olaraq paket tamponlama məbləğini azaldır. Bu, paketlərin itirilməsinə səbəb ola bilər. Siz snaplen'i maraqlandıran protokol məlumatını tutacaq ən kiçik nöqtəyə məhdudlaşdırmalısınız. 0-a yığmaq , bütün paketləri tutmaq üçün lazım olan uzunluğu istifadə etməyi nəzərdə tutur.

-T

" Ifadə " ilə seçilən paketləri müəyyən edilmiş tipdə şərh etmək. Hal-hazırda tanınmış növlər cnfp (Cisco NetFlow protokolu), rpc (Remote Procedure Call), rtp (Real-Time Proqramlar protokolu), rtcp (Real-Time Proqramlar nəzarət protokolu), snmp (Simple Network Management Protocol), vat (Visual Audio Tool ), və wb (paylanmış Ağ Şurası).

-t

Hər dump xəttində bir vaxt damgasını yazmayın.

-t

Hər bir dəmiryol xəttində formatlaşdırılmamış vaxt damgasını yazdırın.

-U

İstifadəçi və qrup şəxsiyyətini istifadəçi əsas qrupuna köçürür və dəyişir.

Qeyd! Red Hat Linux, başqa bir şey belirtilmediğinde, avtomatik olaraq '`pcap' 'a ayrıcalıkları düşürür.

-tti

Hər dump xəttində cari və əvvəlki xətt arasında delta (mikro saniyədə) çap edin.

-tttt

Hər bir dump xəttinə görə tarixə keçən default formatda bir vaxt damgasını yazdırın.

-u

Çapraz NFS işlətmələri çap edin.

-v

(Bir az daha) ətraflı çıxış. Məsələn, bir IP paketində yaşamaq üçün vaxt, şəxsiyyət, ümumi uzunluq və variantlar çap olunur. Həmçinin, IP və ICMP başlığı yoxlama ölçüsünü təsdiqləyən əlavə paket bütünlüklərini yoxlayır.

-vv

Daha ətraflı məlumat. Məsələn, NFS cavab paketlərindən əlavə sahələr çap edilir və SMB paketləri tam şəkildə kodlanır.

-vv

Daha ətraflı məlumat. Məsələn, telnet SB ... SE variantları tam olaraq çap olunur. -X telnet variantları ilə hex də çap olunur.

-w

Paketləri təhlil etmək və çap etməkdən ötrü xam paketləri yazın. Daha sonra -r seçimi ilə çap edilə bilər. Fayl standart `` - '' istifadə edildikdə istifadə olunur.

-x

Her paketi (onun bağlantı səviyyəsi başlığını eksi) hex'te yazdırın. Bütün paket və ya snaplen baytlardan kiçik olanlar çap olunacaq. Qeyd edək ki, bu, bütün qat-qat paketidir, buna görə də, pad (məsələn, Ethernet) olan qoşulma qatları üçün, üst qat paketi zəruri doldurulandan daha qısa olduğunda, padding baytları da çap olunacaq.

-X

Hex çap edərkən, ascii də çap edin. Beləliklə, əgər -x də müəyyən edilirsə, paket hex / ascii-də çap olunur. Yeni protokolların təhlili üçün bu çox əlverişlidir. Hətta əgər -x də müəyyən deyilsə, bəzi paketlərin bir hissəsi hex / ascii-də çap edilə bilər.

ifadəsi

hansı paketlərin atılacağını seçir. Heç bir ifadə verilmirsə, şəbəkədəki bütün paketlər atılacaq. Əks halda, yalnız 'true' ifadəsi olan paketlər atılır.

İfadə bir və ya bir neçə ibtidai ibadətdən ibarətdir. Primitivlər adətən bir və ya daha çox seçici tərəfindən əvvəlki iddən (addan və ya nömrədən) ibarətdir. Üç seçmə növü var:

növü

seçicilər id adı və ya nömrənin hansı növə aid olduğunu deyirlər. Mümkün növləri ev sahibi , xalisportdur . Məsələn, "host foo", "net 128.3", "port 20". Heç bir tip təsbitçisi olmadıqda, ev sahibi qəbul edilir.

dir

seçicilər müəyyən bir ötürmə istiqamətini və / və ya iddən müəyyən edirlər . Mümkün istiqamətlər src , dst , src və ya dstsrc və dst . Məsələn, 'src foo', `dst net 128.3 ',` src və ya dst port ftp-data'. Dəyirici seçici olmadıqda src və ya dst qəbul edilir. 'Null' link qatına (yəni slip kimi nöqtə protokollarında) daxil olmaq üçün gələngedən seçicilər istənilən istiqamət göstərmək üçün istifadə oluna bilər.

proto

seçmələr matçı müəyyən bir protokola məhdudlaşdırır. Mümkün protozarlar: eter , fddi , tr , ip , ip6 , arp , rarp , decnet , tcpudp . Məsələn, 'ether src foo', 'arp net 128.3', `tcp port 21 '. Proto seçici olmadıqda, növü ilə uyğun olan bütün protokollar qəbul edilir. Məsələn, 'src foo' (ip və ya arp ya da çınqıl) src foo '(sonuncu qanuni sintaksis deyildir),' net bar '(ip və ya arp ya da çubuk) net bar' anlamına gelir ve 'port 53' '(tcp və ya udp) portu 53'.

['fddi' əslində 'ether' üçün bir aliasdır; parser onları '' göstərilən şəbəkə interfeysində istifadə edilən məlumatların səviyyəsini 'eyni şəkildə qəbul edir.' 'FDDI başlıqları Ethernet kimi mənbə və təyinat ünvanlarını ehtiva edir və tez-tez Ethernet kimi paket növlərini ehtiva edir, belə ki FDDI sahələrində eyni Ethernet sahələrində olduğu kimi. FDDI başlıqları da digər sahələri ehtiva edir, ancaq onları bir filtre ifadəsində açıq şəkildə deyə bilməzsiniz.

Eynilə, 'tr', 'eter' üçün bir aliasdır; əvvəlki paraqrafın FDDI başlıqları ilə bağlı ifadələri Token Ring başlıqlarına da aiddir.]

Yuxarıda göstərilənlərə əlavə olaraq, nümunə riayət etməyən bəzi xüsusi "ibtidai" açar sözlər var: gateway , yayım , az , daha çox və arifmetik ifadələr. Bütün bunlar aşağıda təsvir edilmişdir.

Daha kompleks süzgəc ifadələri sözləri istifadə edərək ya primitivləri birləşdirməməklə qurulur. Məsələn, "host foo və ftp port deyil və ftp-data port deyil". Yazmağa qoşulmaq üçün eyni seçici siyahıları atlana bilər. Məsələn, `tcp dst port ftp və ya ftp-data və ya domain 'tam olaraq` tcp dst portu ftp və ya tcp dst port ftp-data və ya tcp dst port domain' kimidir.

Rəqəmli primitivlər:

dst host host

Paketin IPv4 / v6 hədəf alanının bir ünvan və ya ad ola biləcəyi ev sahibidir .

src host host

Paketin IPv4 / v6 qaynaq sahəsi barındırılsa doğrudur .

ev sahibi ev sahibi

Paketin IPv4 / v6 mənbəyi və ya təyinat yeri barındırıldığı təqdirdə. Yuxarıda göstərilən host ifadələrindən hər hansı birində açar sözlər, ip , arp , rarp və ya ip6 kimi əlavə edilə bilər:

ip host xost

buna bərabər olan:

eter proto \ ip və ana kompüter

Host birdən çox IP ünvanı olan bir ad varsa, hər bir ünvan bir matç üçün yoxlanacaq.

ether dst ehost

Ethernet hədəf ünvanı ehost olduğunda doğrudur . Ehost ya / etc / eters və ya bir ədəd ola bilər (sayısal format üçün eterlərə (3N) bax).

ether src ehost

Ethernet mənbəyi ünvanı ehost olduğunda doğrudur .

Eter host ehost

Ethernet mənbəyi və ya hədəf ünvanı ya ehost olduğunda həqiqət .

şəbəkə hostu

Paket, ev sahibi bir ağ geçidi olaraq istifadə edildiyində doğrudur. Yəni, ethernet mənbəyi və ya təyinat ünvanı ev sahibiydi, lakin nə IP mənbəyi, nə də IP təyinatı ev sahibi idi. Host bir ad olmalıdır və həm maşının host-adı-IP-ünvanı həll mexanizmləri (host adı fayl, DNS, NIS və s.), Həm də maşının host-name-to-Ethernet-ünvanı qətnaməsi ilə olmalıdır mexanizmi (/ etc / eters, və s.). (Ekvivalent bir ifadədir

Eter host ehost və ev sahibi deyil

bu, host / ehost adları və ya nömrələri ilə istifadə edilə bilər.) Bu sözdizim bu anda IPv6-effektiv konfiqurasiya işləmir.

dst net net

Paketin IPv4 / v6 hədəf ünvanına şəbəkənin şəbəkə nömrəsi olduqda doğrudur. Net , / etc / şəbəkələrdən və ya şəbəkə nömrəsindən bir ad ola bilər ( ətraflı məlumat üçün şəbəkələrə baxın ) (4 ).

src net net

Paketin IPv4 / v6 qaynaq ünvanı net bir şəbəkə sayına sahib olduqda.

xalis xalis

Paketin IPv4 / v6 mənbəyi və ya hədəf ünvanı şəbəkənin ağ nömrəsinə malik olduqda doğrudur.

net xalis maska netmask

IP ünvanı dəqiq ağ maskası ilə dəqiqləşirsə düzgündür . Src və ya dst ilə uyğun ola bilər. Qeyd edək ki, bu sözdizim IPv6 şəbəkəsi üçün etibarlı deyil.

net xalis / len

IPv4 / v6 ünvanı bir ağ maskası len biti ilə genişlənir. Src və ya dst ilə uyğun ola bilər.

dst port limanı

Paket ip / tcp, ip / udp, ip6 / tcp və ya ip6 / udp və portun təyinat portu dəyəri olduqda doğrudur. Liman / etc / services ( tcp (4P) və udp (4P)) -də istifadə olunan bir sıra və ya bir ad ola bilər. Bir ad istifadə edildikdə həm liman nömrəsi, həm protokol yoxlanılır. Bir nömrə və ya birmənalı adı istifadə edilmirsə, yalnız port nömrəsi yoxlanılır (məsələn, dst portu 513 həm tcp / giriş trafiki, həm udp / trafikə çıxacaq, həm də dp domeninin tcp / domain və udp / domain trafiğini çap edəcək).

src port limanı

Paketin limanın mənbə portu dəyəri olduqda doğrudur .

port limanı

Paketin mənbəyi və ya hədəf limanının liman olması düzgündür. Yuxarıdakı port ifadələrindən hər hansı birində açar sözlər, tcp və ya udp ilə əlavə edilə bilər:

tcp src port portu

mənbəyi portu olan yalnız tcp paketləri ilə uyğun gəlir.

daha az uzunluğu

Paket uzunluğundan daha az və ya bərabər olduqda düzgündür . Bu, aşağıdakılara bərabərdir:

len <= uzunluğu .

daha uzunluq

Paket uzunluğa bərabər və ya uzunluğa bərabər olduqda düzgündür . Bu, aşağıdakılara bərabərdir:

len> = uzunluğu .

ip proto protokolu

Paket bir protokol tipi protokolu olan ip paketidir (bax ip (4P)). Protokol , icmp , icmp6 , igmp , igrp , pim , ah , esp , vrrp , udp və ya tcp adlarının bir və ya bir sıra ola bilər. Qeyd edək ki, identifikatorlar tcp , udpicmp də açar sözlərdir və C-shell-da \\ olan backslash (\) vasitəsilə qaçmaq lazımdır. Qeyd edək ki, bu ibtidai protokolun başlıq zəncirini çəkmir.

ip6 proto protokolu

Paket protokol növü protokolunun bir IPv6 paketidir. Qeyd edək ki, bu ibtidai protokolun başlıq zəncirini çəkmir.

ip6 protochain protokolu

Paket IPv6 paketidirsə və protokol başlığı zəncirində protokol başlığı olan protokol başlığı varsa. Misal üçün,

ip6 protochain 6

protokol başlığı zəncirində TCP protokol başlığı ilə hər hansı bir IPv6 paketinə uyğun gəlir. Paket, məsələn, identifikasiya başlığı, marşrutlaşdırma başlığı və ya hop-by-hop variant başlığı, IPv6 başlığı və TCP başlığı arasında ola bilər. Bu ibtidai tərəfindən çıxarılan BPF kodu mürəkkəbdir və tcpdump-da BPF optimizer kodları tərəfindən optimallaşdırıla bilməz, buna görə bir qədər yavaş ola bilər.

ip protochain protokolu

IP6 protochain protokoluna bərabər, lakin bu IPv4 üçün.

eter yayımlanır

Paket bir ethernet yayım paketi olduqda doğrudur. Ether sözü isteğe bağlıdır.

ip yayımı

Paket bir IP yayım paketiyse doğrudur. Həm bütün sıfırlar, həm də hamısı yayımlanan konvensiyalar üçün yoxlanılır və yerli alt şəbəkə maskasını gözləyir.

ether multicast

Paket ethernet multicast paketi olduğu təqdirdə. Ether sözü isteğe bağlıdır. Bu, eter [0] & 1! = 0 'üçün stenoqrafiya.

ip multicast

Paket bir IP multicast paketi olduqda doğrudur.

ip6 multicast

Paket bir IPv6 multicast paketi olduqda doğrudur.

eter proto protokolu

Paket eter tipli protokoldadırsa . Protokol , ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx və ya netbeui adlarından bir və ya bir sıra ola bilər. Bu tanımlayıcılar da açar sözlərdir və backslash (\) vasitəsilə qaçmaq lazımdır.

FDDI (məsələn, fddi protokol arp ) və Token Ring (məsələn, ' protokol arp ' kimi) halda, bu protokolların əksəriyyəti üçün protokolun identifikasiyası 802.2 Logical Link Control (LLC) başlığından gəlir. adətən FDDI və ya Token Ring başlığının üst qatına yerləşdirilir.

FDDI və ya Token Ring-də ən çox protokol identifikatorları üçün filtrasiya edərkən, tcpdump yalnız SNAP formatında 0x000000 təşkilati vahidi identifikatoru (OUI) ilə encapsulated Ethernet üçün bir MMC başlığının protokolu ID sahəsini yoxlayır; paket SNAP formatında 0x000000 bir OUI ilə olub olmadığını yoxlamaz.

İstisnalar , MMC-nin başlıqlı DSAP- yoxlayır, burada DSAP (Hedef Xidmətə Erişim Noktası) və SSAP (Kaynak Xidmətə Erişim Noktası) sahələrini yoxlayan , iso , 0x080007 bir OUI və Appletalk etype ilə SNAP-format paketini yoxlayır.

Ethernet halda, tcpdump bu protokolların əksəriyyəti üçün Ethernet tipli sahəni yoxlayır; istisnalar iso , sapnetbeui , 802.3 çərçivəsini yoxlayır və sonra FDDI və Token Ring üçün olduğu kimi, MMC-nin başlığını yoxlayır; burada, həm Ethernet çərçivəsində Appletalk etype üçün yoxlanılır, həm də FDDI və Token Ring üçün SNAP-format paket kimi, bir Ethernet çərçivəsində ya da 0x000000 bir OUI ilə bir 802.2 SNAP çərçivə və IPX etype üçün yoxlanılması ipx ilə Appletalk ARP etype üçün yoxlanılması yerləşir aarp bir Ethernet çərçivəsi, MMC başlıqlı IPX DSAP, IPX-in heç bir MMC başlıqlı encapsulasiyası olmayan 802.3 və SNAP çərçivəsindəki IPX etype.

decnet src host

DECNET mənbə ünvanının host olduğu halda , '' 10.123 '' şəklində bir ünvan və ya DECNET host adı ola bilər. [DECNET host adı dəstəyi yalnız DECNET'i çalıştırmak üçün yapılandırılmış olan Ultrix sistemlərində mövcuddur.]

decnet dst host

DECNET hədəf ünvanının host olduğu təqdirdə.

decnet host host

DECNET qaynağı və ya təyinat ünvanı ev sahibi olduğu təqdirdə.

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

Kısaltmalar:

eter proto s

burada p yuxarıda göstərilən protokollardan biridir.

lat , moprc , mopdl

Kısaltmalar:

eter proto s

burada p yuxarıda göstərilən protokollardan biridir. Tcpdump hazırda bu protokolların necə ayrılacağını bilmir.

vlan [vlan_id]

Paket bir IEEE 802.1Q VLAN paketiyse doğrudur. [Vlan_id] təyin edildiyində, paket yalnız vlan_idə aiddir . İfadədə qarşılaşılan ilk vlan açar sözünün , paketin bir VLAN paketi olduğu varsayımına bağlı olaraq qalan ifade üçün dekoding offsetlerini değiştirdiğini unutmayın.

tcp , udp , icmp

Kısaltmalar:

ip proto p və ya ip6 proto p

burada p yuxarıda göstərilən protokollardan biridir.

iso proto protokolu

Paket protokol tipi bir protokolun OSI paketiyse doğrudur. Protokol klnp , esis və ya isis adlarının bir nömrə və ya bir növü ola bilər.

clnp , esis , isis

Kısaltmalar:

iso proto s

burada p yuxarıda göstərilən protokollardan biridir. Tcpdump bu protokolların ayrılmasının tamamlanmamış bir işi olduğunu unutmayın.

expop relop expr

<,> =, <=, =,! =, Və eksperi , tamsayı sabitlərindən (standart C ifadəində ifadə edilmiş) ibarət arifmetik bir ifadədir, normal ikili operatorlar [+ , -, *, /, &, |], uzunluğu operatoru və xüsusi paket məlumatları. Paket içindəki məlumatlara daxil olmaq üçün aşağıdakı sözdizimini istifadə edin:

proto [ expr : ölçüsü ]

Proto ether, fddi, tr, ppp, slip, link, ip, arp, rarp, tcp, udp, icmp və ya ip6-dan biridir və indeks əməliyyatının protokol qatını göstərir. ( ether, fddi, tr, ppp, sliplink bütün link katına baxın.) tcp, udp və digər üst qat protokol növləri yalnız IPv6 üçün deyil, gələcəkdə təyin olunacaqdır. Göstərilən protokol qatına nisbətən baytın forması, ekspres tərəfindən verilir. Ölçü əlavədir və faiz sahəsində bayt sayını göstərir; bir, iki, dörd ya da bir ola bilər. Açar söz len ilə göstərilən uzunluqlu operator, paketin uzunluğunu verir.

Məsələn, ' ether [0] & 1! = 0 ' bütün multicast trafikini tutur. ' Ip [0] & 0xf! = 5 ' ifadəsi bütün IP paketlərini variantları ilə əvəz edir . ' Ip [6: 2] & 0x1fff = 0 ' ifadəsi yalnız açılmamış datagramları və parçalanmış datagramların sıfır sıfırını tutur. Bu çek tcpudp indeks əməliyyatlarına dolğun olaraq tətbiq olunur. Məsələn, tcp [0] həmişə TCP başlığının ilk baytı deməkdir və heç vaxt heç bir müdaxilə parçasının ilk baytı demək deyil.

Bəzi offsets və sahə dəyərləri ədədi dəyərlərdən daha çox adlar kimi ifadə edilə bilər. Aşağıdakı protokol başlığı sahəsində kənar sahələri mövcuddur: icmptype (ICMP növü sahəsi), icmpcode (ICMP kodu sahəsi) və tcpflags (TCP bayraqları sahəsi).

Aşağıdakı ICMP növü sahəsində dəyərləri mövcuddur: icmp-echoreply , icmp-unreach , icmp-sourcequench , icmp-redirect , icmp-echo , icmp-routeradvert , icmp-routersolicit , icmp-timxceed , icmp-paramprob , icmp-tstamp , icmp -tstampreply , icmp-ireq , icmp-ireqreply , icmp-maskreq , icmp-maskreply .

Aşağıdakı TCP bayraqları sahə dəyərləri mövcuddur: tcp-fin , tcp-syn , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

Primitives istifadə edərək birləşdirilə bilər:

Parantezli primitivlər və operatorlar qrupu (parantezlər Shell üçün xüsusi və qaçdı).

Negation (' ! ' Və ya ' not ').

Birləşmə (' && ' və ya ' ').

Alternativləşmə (` || 'və ya ' və ya ').

Negasiya yüksək prioritetə ​​malikdir. Alternativləşmə və birləşmə bərabərliyə malikdir və soldan sağa birləşir. Qeyd edək ki, birləşmə üçün aydın simvolu deyil, yanaşma tələb olunur.

Bir identifikator bir söz olmadan verilirsə, ən son söz əsas götürülür. Misal üçün,

ev sahibi və ace deyil

üçün qısa

host vs vs host ace

bu ilə qarışdırılmamalıdır

deyil (ana və ya ace)

İfadə arqumentləri tcpdump-yə bir arqument və ya birdən çox arqument kimi təqdim edilə bilər, hansılardan daha rahatdır. Ümumiyyətlə, ifadənin Shell metakaracters ehtiva etdiyi halda, onu tək, qeyd edilmiş sübut kimi qəbul etmək asandır. Çox dəlilləri ayrılmadan əvvəl boşluqlarla birləşir.

ÖRNEKLER

Gündüzdən gələn və ya gedən bütün paketləri çap etmək üçün:

tcpdump host sundown

Helios və ya isti və ya ace arasında trafiği çap etmək üçün:

tcpdump host helios və \ (isti və ya ace \)

Helios istisna olmaqla ace ilə hər hansı bir host arasında bütün IP paketlərini çap etmək üçün:

tcpdump ip host ace və helios deyil

Berkeley'deki yerli hostlar və hostlar arasında bütün trafikləri çap etmək üçün:

tcpdump net ucb-ether

İnternet şəbəkəsi vasitəsilə bütün ftp trafiklərini çap etmək üçün: (ifadənin parantezləri şərh etmədən (mis-) qabığı qarşısını almaq üçün qeyd olunur):

tcpdump 'gateway snup və (port ftp və ya ftp-data)'

Trafikləri nə yerli qaynaqlardan istəmədiklərini, nə də başqa bir şəbəkəyə qoşulmağı tövsiyə etmək üçün (bu məhsullar heç bir zaman yerli şəbəkə üzərində qurulmamalıdır).

tcpdump ip və net localnet deyil

Başlanğıc və son paketləri (SYN və FIN paketləri) yerli olmayan bir hostu əhatə edən hər bir TCP söhbətə yazdırmaq.

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

Gateway snup vasitəsilə göndərilən 576 baytdan artıq IP paketlərini çap etmək üçün:

tcpdump 'gateway snup və ip [2: 2]> 576'

Ethernet yayım və ya multicast vasitəsilə göndərilməmiş IP yayımı və ya multicast paketlərini çap etmək üçün:

tcpdump 'ether [0] & 1 = 0 və ip [16]> = 224'

Yoxlama sorğuları / cavabları olmayan bütün ICMP paketlərini (məsələn, ping paketləri deyil) çap etmək üçün:

tcpdump 'icmp [icmptype]! = icmp-echo və icmp [icmptype]! = icmp-echoreply'

OUTPUT FORMAT

Tcpdump çıxışı protokoldan asılıdır. Aşağıda, formatların əksəriyyətinin qısa təsviri və nümunələri verilmişdir.

Link səviyyəsi başlığı

'-e' variantının verildiyi halda, link səviyyəsi başlığı yazdırılır. Etniketlərdə mənbə və təyinat ünvanları, protokol və paket uzunluğu basılır.

FDDI şəbəkələrində '-e' variantı tcpdump 'frame nəzarət' sahəsini, mənbə və təyinat ünvanlarını və paket uzunluğunu çap etməyə səbəb olur. ("Çərçivə nəzarət" sahəsi paketin qalan hissəsinin təfsirini tənzimləyir.) Normal paketlər (məsələn, IP datagramları olanlar) "async" paketləri, 0 və 7 arasında prioritetli, məsələn ' async4 ' kimi. paketlər 802.2 Logical Link Control (LLC) paketini ehtiva edirlər, əgər ISO datagramı və ya SNAP paketi deyilmirsə, MMC başlığı çap olunur.

Token Ring şəbəkələrində '-e' variantı tcpdump 'giriş nəzarət' və 'çərçivə nəzarət' sahələrini, mənbə və təyinat ünvanlarını və paket uzunluğunu çap etməyə səbəb olur. FDDI şəbəkələrinə gəldikdə, paketlər MMP paketini ehtiva edir. '-e' variantının müəyyən olub-olmamasından asılı olmayaraq, qaynaq marşrutlaşdırma məlumatları mənbə-yönlendirilmiş paketlər üçün çap olunur.

(NB: Aşağıdakı təsvir RFC-1144-də təsvir edilən SLIP sıxılma alqoritmini tanıyır.)

SLIP əlaqələrində, istiqamət göstəricisi (daxil olmaq üçün `` `` `` '' '' '' ''), paket növü və sıxılma məlumatları çap olunur. Paket növü əvvəl çap olunur. Üç növ ip , utcpctcp . İp paketləri üçün daha çox əlaqə məlumatı çap edilmir. TCP paketləri üçün, əlaqə identifikatoru tipdən sonra çap olunur. Paket sıkıştırılıyorsa, kodlanmış başlığı yazdırılır. Xüsusi hallar * S + n* SA + n kimi çap olunur, burada n nizamnamə nömrəsi (və ya sıra nömrəsi və ack) dəyişdirildiyi məbləğdir. Xüsusi bir vəziyyət olmasa, sıfır və ya daha çox dəyişiklik yazılır. Bir dəyişiklik U (təcili göstərici), W (pəncərə), A (ack), S (sıra nömrəsi) və I (paket ID), sonra bir delta (+ n və ya -n) və ya yeni bir dəyər (= n). Nəhayət, paket və sıxılmış başlıq uzunluğunda məlumatların miqdarı basılır.

Məsələn, aşağıdakı xətt örtülü bir əlaqə identifikatoru olan bir giden sətrli TCP paketini göstərir; ack, 6 ədəd, 49 ədəd sıra nömrəsi və paket ID'si 6 ilə dəyişdirildi; 3 bayt məlumat və 6 bayt sıxılmış başlıq var:

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

ARP / RARP paketləri

Arp / rarp çıxışı sorğunun növü və onun arqumentlərini göstərir. Format özünü izah etmək üçün nəzərdə tutulub. İştirakçı rtsg-dan csam-a "rlogin" in başlamasından qısa bir nümunə götürülür:

CSR-lə bağlı olan arp, rtsg arp cavab csam-CSAM-də deyir

Birinci xətt rtsg internet host csamın ethernet ünvanını soruşan bir arp paketini göndərdiyini bildirir. Csam onun ethernet ünvanına cavab verir (bu misalda, ethernet ünvanları kepkalarda və aşağıda internet ünvanlarına daxildir).

Əgər tcpdump -n :

128.3.254.6 arp olan 128.3.254.68 arp cavab 128.3.254.6 02: 07: 01: 00: 01: c4

Əgər biz tcpdump-e etsəydik , ilk paketin yayımlanması və ikincisi nöqtə-körpü olması görünən olardı:

RTSG Broadcast 0806 64: arp, kimin csam deyir rtsg CSAM RTSG 0806 64: arp cavab csam - CSAM-də

İlk paket üçün ethernet mənbə ünvan RTSG, hədəf ethernet yayım adresi, hex 0806 (növü ETHER_ARP) və ümumi uzunluğu 64 bayt olan növü sahəsindədir.

TCP paketləri

(NB: Aşağıdakı təsvir RFC-793-də təsvir edilən TCP protokolu ilə tanış olur. Əgər protokolla tanış deyilsinizsə, bu təsvir nə də tcpdump sizin üçün çox istifadə olunmayacaq.)

Tcp protokolunun ümumi formatı:

src> dst: bayraqları data-seqno ack pəncərə təcili variantları

Srcdst mənbə və təyinat IP ünvanları və portlardır. Bayraqlar S (SYN), F (FIN), P (PUSH) və ya R (RST) və ya birdən ibarətdir. (heç bir bayraq). Data-seqno , bu paketdə verilən məlumatların əhatə etdiyi ardıcıllıq hissəsinin hissəsini təsvir edir (aşağıdakı nümunəyə bax). Ack , bu əlaqənin digər istiqamətindən gözlənilən növbəti məlumatların sıralanma sayıdır. Pəncərə , bu əlaqə üzərindəki digər istiqaməti olan birbaşa alma alanının bayt sayıdır. Urg paketdə "təcili" məlumatlar olduğunu göstərir. Seçimlər bucaqlı mötərizələrə daxil edilmiş tcp variantlarıdır (məsələn, ).

Src, dstbayraqlar daima mövcuddur. Digər sahələr paketin tcp protokol başlığının məzmunundan asılıdır və yalnız müvafiq olduqda çıxılır.

İştirakçı rtsg-dən csam- a ev sahibliyinə bir rloginin açılış hissəsidir.

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. daxil ol: . 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 acil 1 csam.login> rtsg.1023: P 3: 4 (1) ack 21 win 4077 acil 1

Birinci xətt rtsg-də tcp port 1023-də csam port girişinə bir paket göndərdiyini bildirir. S , SYN bayrağının təyin olunduğunu göstərir. Paket ardıcıllığı sayı 768512 idi və heç bir məlumat içermədi. (Qeyd: 'son: nbytes', yəni " son istifadəçi məlumatlarının nbytes baytları olan sonuncu nömrələri" deməkdir). Piggy- backed ack yox idi, mövcud qəbul pəncərəsi 4096 bayt idi və 1024 baytlıq mss tələb edən maksimum seqment ölçüsü var idi.

Csam bənzər bir paketlə cavab verir, istisna olmaqla, rtsg-nin SYN-ləri üçün bir donuz dəstəyi verilir. Rtsg sonra csam nin SYN bağlıdır. '.' heç bir bayraq qoyulmamışdır. Paketdə heç bir məlumat yoxdur, beləliklə məlumat sırası nömrəsi yoxdur. Ack sıra nömrəsi kiçik bir tamsayıdır (1). İlk dəfə tcpdump bir tcp `söhbət 'görür, paketdən sıra nömrəsini yazır. Söhbətin sonrakı paketlərində, cari paketin sıra nömrəsi və bu ilkin sıra nömrəsi arasındakı fərq yazılır. Bu, birinci sonra ardıcıllıq sayının söhbət məlumat axınında nisbi bayt mövqeyi kimi şərh edilə biləcəyini (hər bir məlumatın birinci istiqamətdə olduğu '1'). '-S' bu funksiyanı ləğv edər, orijinal sıra nömrələrinin çıxmasına səbəb olur.

6-cı sətirdə, rtsg csam 19 bytes veri göndərir (2-dən 20-yə qədər, söhbətin rtsg-csam tərəfində). PUSH bayraqları paketdə müəyyən edilir. 7-ci xəttdə, csam deyir ki, bu, rtsg tərəfindən göndərilən məlumatlara qədər, lakin bayt 21-ə daxil deyil. Bu məlumatların əksəriyyəti, csamın qəbul pəncərəsi 19 bayt daha kiçik olduğundan, socket tamponda oturur. Csam da bu paketdə bir bayt məlumatı rtsg göndərir. 8-ci və 9-cu xəttlərdə csam iki ədəd təcili, göndərilən məlumatları rtsg-ə göndərir.

Anlık görüntü tcpdump tam TCP başlığını tutmadığına yetərincə kiçik olduqda, üstbilginin daha çoxunu şərh edə bilər və sonra `` [| tcp ] '' qalıqlarını izah edə bilmədi. Başlıqda bir soxma seçimi varsa (birindən çox kiçik və ya başlıq sonundan kənar), tcpdump onu'` [ pis seçim ] 'kimi bildirir və başqa variantları şərh etmir (çünki demək mümkün deyil) harada başlayacaqlar). Başlıq uzunluğu variantları mövcuddur, lakin IP datagram uzunluğu variantları həqiqətən orada olmaq üçün kifayət qədər uzun deyil, tcpdump onu `[ pis hdr uzunluğu ] 'kimi hesabat.

TCP paketlərini xüsusi bayraq kombinasiyaları ilə ələ keçirmək (SYN-ACK, URG-ACK və s.)

TCP başlığının nəzarət bit seqmentində 8 bit var:

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

Bir TCP bağlantısı qurmaq üçün istifadə olunan paketləri izləmək istəyirik. Xatırladaq ki, TCP yeni bir əlaqəni ilk dəfə başlatdıqda 3 yollu bir handshake protokolunu istifadə edir; TCP nəzarət bitlərinə aid əlaqə sırasıdır

1) Zəng edən SYN göndərir

2) Alıcı SYN, ACK ilə cavab verir

3) Çağırıcı ACK göndərir

İndi biz yalnız SYN bit setinə malik olan paketləri götürməklə maraqlanırıq (1 addım). Qeyd edək ki, addım 2-dən (SYN-ACK) paketlər istəmirik, yalnız düz bir başlanğıc SYN. Bizə lazım olanlar tcpdump üçün düzgün bir filter ifadəsidir.

Seçimsiz TCP başlığının strukturunu xatırlayın:

0 15 31 ----------------------------------------------- ------------------ | mənbə portu təyinat limanı -------------------------------------------------- --------------- | sıra nömrəsi | -------------------------------------------------- --------------- | etiraf nömrəsi | -------------------------------------------------- --------------- | HL | rsvd | C | E | U | A | P | R | S | F | pəncərə ölçüsü | -------------------------------------------------- --------------- | TCP checksum | təcili göstərici | -------------------------------------------------- ---------------

Seçenekler mövcud olmadıkça TCP başlığı genelde 20 octet veri tutar. Grafiğin ilk satırında 0 - 3 oktetləri, ikinci sətirdə isə seksiyalar 4 - 7 və s. Göstərilir.

0 ilə sayılmağa başlayan müvafiq TCP nəzarət bitləri oktet 13-də verilir:

0 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | ---------------- | HL | rsvd | C | E | U | A | P | R | S | F | pəncərə ölçüsü | ---------------- | --------------- | --------------- | - --------------- | | 13 octet | | |

Gəlin oktet sayına daha çox nəzər salaq. 13:

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

Bunlar bizi maraqlandıran TCP nəzarət bitləridir. Bu octetdə bitləri 0-dan 7-ə qədər, sağdan sola nömrə verdik, buna görə PSH biti bit sayı 3, URG biti isə 5 nömrədir.

Xatırladaq ki, paketləri yalnız SYN dəsti ilə tutmaq istəyirik. Bir TCP datagramının başlığında quraşdırılmış SYN bitsi ilə gəldiyi halda, octet 13-ə nə oldu:

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

Control bit seqmentinə baxdığımızda yalnız bit sayı 1 (SYN) təyin olunduğunu görürük.

13 nömrəli sekizli bit byte sətrində 8 bit imzasız tamsayı olduğunu varsayarsak, bu oktetin ikili dəyəri

00000010

və onun onlu təmsil edir

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

Biz demək olar ki, başa düşülür, çünki indi biz yalnız SYN təyin edildikdə, TCB başlığında 13-cü sekizli dəyər, şəbəkə byte sırası ilə 8-bit işarəsi olmayan bir tamsayı kimi şərh edildikdə, tam olaraq 2 olmalıdır.

Bu əlaqələr kimi ifadə edilə bilər

tcp [13] == 2

Bu ifadəni yalnız SYN dəsti olan paketləri izləmək üçün tcpdump üçün filter kimi istifadə edə bilərsiniz:

tcpdump -i xl0 tcp [13] == 2

Ekspozisiya "TCP datagramının 13-cü seksiyası onlu dəyərə malik olsun" deyir.

İndi, SYN paketlərini tutmamız lazım olduğunu varsayalım, ancaq ACK ya da başqa TCP kontrol bitinin eyni anda ayarlandığını umursamadık. SN-ACK dəsti ilə bir TCP datagramı gəldikdə octet 13-nə nə edəcəyini görək:

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

İndi 1-ci və 4-cü bitlər 13-cü hissədə müəyyən edilir. Octet 13-in ikili dəyəri


00010010

onluya çevirir

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

İndi yalnız tcpdump filter ifadəsində 'tcp [13] == 18' istifadə edə bilmirik, çünki yalnız SYN-ACK-lə malik olan paketləri seçə bilər, ancaq yalnız SYN dəsti olanlar deyil. ACK və ya başqa bir nəzarət bitinin SYN qurulduğu müddətdə təyin olunmamasına diqqət yetirməyin.

Bizim məqsədimizə nail olmaq üçün, biz SYNT bitini qorumaq üçün başqa bir dəyər ilə sekizliğin ikili dəyərini və məntiqi dəyər vermək lazımdır. Biz SYN-in istənilən halda qurulmasını istəyirik. Ona görə, biz 13-cü hissədə dəyərini və SYN-in ikili dəyərini dəyərləndirəcəyik:

00010010 SYN-ACK 00000010 SYN VE 00000010 (SYN istiyoruz) VE 00000010 (SYN istiyoruz) -------- -------- = 00000010 = 00000010

Görürük ki, bu və əməliyyat ACK və ya başqa bir TCP nəzarət bitinin müəyyən olmasına baxmayaraq eyni nəticə verir. VƏ dəyərinin onlu təsviri və bu əməliyyatın nəticəsi 2 (ikili 00000010) təşkil edir, belə ki, SYN ilə paketlər üçün aşağıdakı əlaqənin doğru olması vacibdir:

((oktetin dəyəri 13) və (2)) == (2)

Bu, bizi tcpdump filter ifadəsinə göstərir

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

Xüsusi ifadəni AND ('&') qəfildən gizləmək üçün ifadədə tək tırnak və ya terslik istifadə etməlisiniz.

UDP paketləri

UDP formatı bu paket paketi ilə təsvir olunur:

aktinide.who> broadcast.who: udp 84

Host aktinide üzərindəki liman, host yayımda olan internetə yayım adına porta bir udp datagramı göndərdiyini söyləyir. Paketdə 84 bayt istifadəçi məlumatı var idi.

Bəzi UDP xidmətləri tanınır (qaynaq və ya hədəf limanından) və daha yüksək səviyyəli protokol məlumatları çap olunur. Xüsusilə, Domain Name xidmət tələbləri (RFC-1034/1035) və Sun RPC (RFC-1050) NFS-ə çağırır.

UDP Adı Server İstekleri

(NB: Aşağıdakı təsvir RFC-1035-də təsvir olunmuş Domain Service protokolu ilə tanış olur. Əgər protokolla tanış deyilsinizsə, aşağıdakı təsviri Yunan dilində yazılmış görünür.)

Adı server istəkləri kimi biçimlendirilir

src> dst: id kimdir? bayraqlar qtype qclass adı (len) h2opolo.1538> helios.domain: 3+ A? ucbvax.berkeley.edu. (37)

Host h2opolo, ucbvax.berkeley.edu adı ilə əlaqəli bir ünvan qeydinə (qtype = A) dair helioslarda domen serverindən soruşdu . Sorgu idi '3' idi. '+' Rəqəmsal istənilən bayrağı müəyyənləşdirdiyini göstərir. Sorgunun uzunluğu, UDP ve IP protokolü başlıkları daxil olmaqla, 37 bayt idi. Sorgu əməliyyatı normaldir , Sorgu , beləliklə op sahəsi atlandı. Op başqa bir şey olsaydı, '3' və '+' arasında çap olunardı. Eynilə, qclass normal idi, C_IN və atlandı. Hər hansı digər qclass 'A' dan dərhal sonra çap olunacaqdı.

Bir neçə anormallik yoxlanılır və kvadrat mötərizədə əlavə əlavə sahələrə gətirib çıxara bilər: Sorguda bir cavab varsa, orqan qeydləri və ya əlavə qeydlər bölümü, hesabdan , sayından və ya hesabdan '[ n a]', '[ n n ] 'və ya' [ n au] ', burada n müvafiq sayılır. Əgər hər hansı bir cavab bitinin (AA, RA və ya rcode) hər hansı biri müəyyənləşsə və ya 'sıfır olmalıdır' bitləri iki və üç baytla müəyyən edilirsə, x [b2 & 3 = x ] başlıq baytı iki və üç.

UDP Adı Server Cavablar

Adı server cavabları kimi biçimlendirilir

src> dst: id rcode bayraqları a / n / au tipli sinif data (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)

İlk nümunədə helios 3 cavab yazısı , 3 ad server qeydləri və 7 əlavə qeyd ilə h2opolo- dan sorğu id 3 cavab verir. İlk cavab yazısı A (ünvanı) və onun məlumatları İnternet ünvanı 128.32.137.3-dir. Yanıtın ümumi ölçüsü UDP və IP başlıqları istisna olmaqla, 273 bayt idi. A (Sorgu) və cavab kodu (NoError) A qeydinin sinfi (C_IN) olduğu kimi, istisna edildi.

İkinci nümunədə, helios, sorğuya cavab verməyən cavab kodunu (NXDomain) cavabsız cavab, bir adı server və heç bir orqan qeydləri ilə cavablandırır. '*' Nüfuzlu cavab bitinin təyin olunduğunu göstərir. Cavab olmadığı üçün heç bir tip, sinif və ya məlumatlar çap edilmədi.

Göründüyü kimi başqa bayraq simvolları '-' (təkrarlanan, RA, müəyyən edilməyib ) və `| ' (kəsilmiş mesaj, TC, set). 'Sual' bölməsi tam bir giriş içermiyorsa, '[ n q]' yazdırılır.

Adı server istəkləri və cavablarının böyük olmağına diqqət yetirin və 68 baytın default snaplen yazdırmaq üçün paketin kifayət qədər tutulmayacağını unutmayın. Adı server trafiğini ciddi araşdırmaq lazımdırsa snapleneni artırmaq üçün -s bayrağını istifadə edin. ' -s 128 ' mənim üçün yaxşı iş gördü .

SMB / CIFS kodlaşdırma

tcpdump indi UDP / 137, UDP / 138 və TCP / 139 məlumatları üçün kifayət qədər geniş SMB / CIFS / NBT kodunu ehtiva edir. IPX və NetBEUI SMB məlumatlarının bəzi ibtidai kodlaşdırma işləri də aparılır.

Varsayilarsa, kifayət qədər minimal bir dekode edilmir, əgər daha çox detal kodunu -v istifadə edildikdə yerinə yetirir. -va vahid SMB paket ilə bir və ya daha çox bir səhifə çəkə bilər ki, xəbərdar olun ki, əgər, həqiqətən, bütün qəribə məlumatları istəsən, istifadə edin.

Unicode strings olan SMB seanslarını kodlaşdırırsınızsa, sonra USE_UNICODE ətraf mühitə dəyişən parametrini 1-ə təyin etmək olar. Unicode sinklərini avtomatik olaraq təyin etmək üçün bir yama salamlayıram.

SMB paket formatları və bütün sahələrə dair məlumatlar üçün www.cifs.org və ya sevimli samba.org aynası saytında pub / samba / specs / kataloqunu görmək olar. SMB yamaları Andrew Tridgell (tridge@samba.org) tərəfindən yazılmışdır.

NFS sorğuları və cavabları

Sun NFS (Şəbəkə Fayl Sistemi) istək və cavabları aşağıdakı kimi yazılır:

src.xid> dst.nfs: len op args src.nfs> dst.xid: cavab sorğusuna cavab verin sushi.6709> wrl.nfs: 112 readlink fh 21,24 / 10.73165 wrl.nfs> sushi.6709: cavab ok 40 readlink "../var" sushi.201b> wrl.nfs: 144 axtarış fh 9,74 / 4096,6878 "xcolors" wrl.nfs> sushi.201b: cavab ok 128 axtarış fh 9,74 / 4134,3150

Birinci satırda host suşi id 6709 ilə bir əməliyyat göndərir (src hostundan sonra gələn nömrənin mənbə port deyil , əməliyyatın nömrəsi olduğunu unutmayın). UDP və IP başlıqları istisna olmaqla, tələb 112 bayt idi. Əməliyyat file handle ( fh ) 21,24 / 10.731657119 üzrə readlink (simvolik link oxumaq) idi. (Biri şanslıysa, bu halda olduğu kimi, fayl sapı əsas, kiçik bir cihaz nömrəsi cütü, sonra inode nömrəsi və generasiya nömrəsi kimi şərh edilə bilər.) Wrl, linkin məzmunu ilə "OK" cavab verir.

Üçüncü xəttdə suşi 9,74 / 4096,6878 fayl qovluğunda ' xcolors ' adını axtarmağa çağırır. Yazılan məlumatlar əməliyyat növü ilə bağlı olduğunu unutmayın. NFS protokolu spec ilə birlikdə oxunduqda formatın özünü izahlı olması nəzərdə tutulur.

-v (verbose) bayrağı verilmişsə, əlavə məlumat çap olunur. Misal üçün:

sushi.1372a> wrl.nfs: 148 okuma fh 21,11 / 12.195 8192 bytes @ 24576 wrl.nfs> sushi.1372a: cavab ok 1472 okumaq REG 100664 ids 417/0 sz 29388

(-v, həmçinin bu nümunədən götürülmüş olan IP başlığının TTL, ID, uzunluq və parçalanma sahələrini də yazır). Birinci sətirdə suşi 21,11 / 12.195 faylından 8192 bayt oxumaq üçün yanaşmağı xahiş edir, byte ofset 24576. Wrl cavabları 'ok'; ikinci xəttdə göstərilən paket cavabın ilk fragmanıdır və buna görə də yalnız 1472 bayt (digər baytlar sonrakı parçalarda izlənəcək, lakin bu fraqmentlərdə NFS və hətta UDP başlıqları yoxdur və buna görə də çap edilə bilməz, istifadə olunan filter ifadəsindən asılı olaraq). -v bayrağı verildiyi üçün, faylın bəzi xüsusiyyətləri (fayl məlumatlarına əlavə olaraq qaytarılır) yazılır: fayl növü (normal fayl üçün 'REG' '), fayl rejimi (sekizli), uid və gid və fayl ölçüsü.

-v bayrağı birdən çox dəfə verilirsə, daha ətraflı məlumat basılır.

NFS istəkləri çox böyük olduğuna diqqət yetirilməlidir və snaplen artırılmadığı təqdirdə detalların çoxu basılmayacaqdır . NFS trafiki izləmək üçün ` -s 192 'istifadə edin.

NFS cavab paketləri RPC əməliyyatını açıq şəkildə müəyyən etmir. Bunun əvəzinə, tcpdump '`son' 'sorğularını saxlayır və əməliyyat kimliğini istifadə edərək onları cavablandırır. Cavab müvafiq tələbi yaxından təqib etmirsə, bu, ayrılmaz ola bilər.

AFS İstekleri ve Yanıtları

Transarc AFS (Andrew Fayl Sistemi) istək və cavabları aşağıdakı kimi çap olunur:

src.sport> dst.dport: rx paket tipi src.sport> dst.dport: rx paket tipi servis çağrısı call-name args src.sport> dst.dport: rx paket tipi servis cavab çağrı adını args elvis. 7001> pike.afsfs: rx data fs redaktə adını dəyişmək köhnə fid 536876964/1/1 ".newsrc.new" yeni fid 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx data fs cavab ver

İlk sətirdə, ev sahibi elvis bir RX paketi göndərmək üçün pike göndərir. Bu, fs (fileserver) xidmətinə bir RX məlumat paketi idi və bir RPC zənginin başlanğıcıdır. RPC çağırışı, 536876964/1/1 köhnə kataloq faylının və '.newsrc.new' köhnə faylının və 536876964/1/1 yeni bir qovluq faylının adı və yeni bir fayl adı ilə yenidən adlandırıldı. newsrc '. Ev sahibi çəyirtkəsi yenidən adlandırma çağırışına RPC cavabı ilə cavab verir (uğurlu olmuşdur, çünki məlumat paketi və abort paketi deyil).

Ümumiyyətlə, bütün AFS RPC'ləri ən az RPC zəng adı ilə kodlanır. AFS RPC-lərinin əksəriyyəti ən azı bir neçə argümanı var (ümumiyyətlə 'maraqlı' argümanlar, bəzi maraqlı təriflər üçün).

Format özünü təsvir etmək üçün nəzərdə tutulub, lakin AFS və RX işləmələri ilə tanış olmayan insanlar üçün faydalı ola bilər.

-V (verbose) bayrağının iki dəfə verildiyi təqdirdə, RX çağırış nömrəsi, çağırış nömrəsi, sıra nömrəsi, seriya nömrəsi və RX paket bayraqları kimi bildiriş paketləri və əlavə başlıq məlumatları çap olunur.

-v bayrağı iki dəfə verilirsə, RX çağırış nömrəsi, seriya nömrəsi və RX paket bayraqları kimi əlavə məlumatlar çap olunur. MTU danışıq məlumatları da RX ack paketlərindən çap olunur.

-v bayrağı üç dəfə verilirsə, təhlükəsizlik indeksi və xidmət idi yazdırılır.

Ubik işareti paketləri istisna olmaqla (abort paketləri Ubik protokolu üçün bir bəli səs vermək üçün istifadə olunur) istisna olmaqla, abort paketləri üçün səhv kodları basılır.

Qeyd edək ki, AFS-in istəkləri çox böyükdür və əksəriyyətin əksəriyyəti əlavə edilmədikdə bəyan edilməyəcək . AFS trafiki izləmək üçün ` -s 256 'istifadə edin.

AFS cavab paketləri RPC əməliyyatını açıq şəkildə müəyyən etmir. Bunun əvəzinə, tcpdump "son" tələbləri izləyir və onları zəng nömrəsini və xidmət identifikatını istifadə edərək cavablandırır. Cavab müvafiq tələbi yaxından təqib etmirsə, bu, ayrılmaz ola bilər.

KIP Appletalk (UDP-də DDP)

UDP datagramlarında əhatə olunan Appletalk DDP paketləri DDP paketləri (yəni, bütün UDP başlığı məlumatları atılır) kimi de-encapsulated və dumped olunur. /etc/atalk.names faylları , appletalk net və node nömrələrini adlara tərcümə etmək üçün istifadə olunur. Bu fayldakı xətlər forma sahibdir

ədəd adı 1.254 eter 16.1 icsd-net 1.254.110 ace

Ilk iki xətt appletalk şəbəkələrinin adlarını verir. Üçüncü xətt müəyyən bir xananın adını verir (bir ana nömrə ilə 3-cü hissədən xal fərqlənir - nömrə nöqtəsində iki oktet, bir nömrə nöqtəsi isə üçbucaq olmalıdır ). Nömrə və adı ayrılmalıdır boşluq (boşluqlar və ya nişanlar) ilə. /etc/atalk.names faylı boş xətlər və ya şərh xətləri ola bilər ('#' ilə başlayan xətlər).

Appletalk ünvanları şəklində çap olunur:

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

( /etcatalink.names mövcud deyilsə və ya bəzi appletalk host / net numarası üçün giriş ehtiva etməzsə, ünvanlar rəqəmli formada yazılır). İlk nümunədə NBP (DDP port 2) net 144.1 node 209, net icsd node 112-in 220 nöqtəsində dinləyən hər şeyə göndərir. İkinci xətt, qaynaq nodeının tam adı ("ofis") olduğu halda, eynidır. Üçüncü xətt şifrəli NPP limanında yayımlanmaq üçün şəbəkə nizamında 149 nömrəli portdan 235 nömrəli bir göndərmədir (yayım adının (255) heç bir host nömrəsi olmayan bir xalis adı ilə qeyd edildiyini unutmayın - bu səbəbdən yaxşı bir fikirdir node adlarını və /etc/atalk.names-də fərqlənən xalis adları saxlamaq).

NBP (adı bağlama protokolu) və ATP (Appletalk əməliyyat protokolu) paketlərinin məzmunu şərh olunur. Digər protokollar yalnız protokol adını (ya da protokol üçün heç bir adı qeyd edilmədiyi halda) və paket ölçüsünü dümdüz edir.

NBP paketləri aşağıdakı nümunələr kimi formatlanır:

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

İlk satır, net icsd host 112 tərəfindən göndərilən və net jssmag-da yayımlanan laserwriters üçün ad axtarış tələbidir. Axtarış üçün nbp id 190'dur. İkinci xətt, 250 nömrəli portada qeydiyyatdan keçmiş "RM1140" adlı lazer yazıçı qaynağı olduğunu söyləyərək, bu xahiş üçün (bu idə malik olduğunu qeyd edin) məsələnin cavabını göstərir. xətt, 186 nömrəli limanda qeydiyyatdan keçən "texpit" laserwriter var idi, deyərək eyni tələbinə başqa cavabdır.

ATP paket formatlaması aşağıdakı nümunə ilə nümayiş etdirilir:

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, 8 ədəd paketi (<0-7) 'qədər tələb edən host helios ilə 12266 əməliyyat idini işə salır. Satırın sonunda olan hex sayı, sorğuda 'userdata' alanının dəyəri.

Helios 8 512 baytlıq paketlə cavab verir. Əməliyyat idindən sonra `` rəqəm 'əməliyyatda paket sıra nömrəsini verir və parens nömrəsi atp başlığı istisna olmaqla, paketdə verilən məlumatların miqdarıdır. Paket 7'deki '*' EOM bitinin müəyyən edildiğini göstərir.

Jssmag.209 sonra 3 və 5 paketlərinin yenidən ötürülməsini tələb edir. Helios onları yenidən göndərir, sonra jssmag.209 əməliyyatını buraxır. Nəhayət, jssmag.209 növbəti tələbi başlatır. İstədiyiniz '*' XO ('bir dəfə') təyin olunmadığını göstərir .

IP Parçalanma

Parçalanmış İnternet datagramları kimi yazdırılır

(frag id : ölçüsü @ offset +) (frag id : ölçüsü @ ofset )

(İlk form daha çox fragment olduğunu göstərir, ikincisi, bu son parçadır.)

Id , fragman ididir. Ölçü , IP başlığı istisna olmaqla, fragment ölçüsüdür (baytlarda). Ofset , bu fragmanın ofsetindən (bytes) orijinal datagramda göstərilir.

Parça məlumatı hər bir parça üçün çıxır. Birinci fraqment yüksək səviyyəli protokol başlığını ehtiva edir və protokol məlumatından sonra frag məlumatı çap olunur. Birincidən sonra fragmanlar heç bir yüksək səviyyəli protokol başlığı və qabarma məlumatı qaynaq və təyinat ünvanlarından sonra çap olunur. Məsələn, arizona.edu-dan lbl-rsg.arpa-a bir CSNET bağlantısı üzərində 576 byte datagramlarında işləməyən görünməyən bir ftp parçasıdır:

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 qazanmaq 2560

Burada qeyd etmək üçün bir neçə şey var: Birincisi, 2-ci xəttindəki ünvanlar port nömrələrini əhatə etmir. Bunun səbəbi, TCP protokol məlumatlarının bütününün birinci hissədə olmasıdır və sonrakı parçaları yazdığımızda portun və ya sıra nömrələrinin nə olduğunu bilmirik. İkincisi, ilk satırdakı tcp ardıcıllığı məlumatı, faktiki olaraq, 512 bayt (birinci kubda 308 və ikincidə 204) olduğunda istifadəçi məlumatlarının 308 bayt olduğu kimi basılır. Ardıcıllıqda boşluqlar axtarırsınızsa və ya paketlərlə qarşılaşmağa çalışırsınızsa, bu sizi aldadır.

IP ilə bir paket parçalanmır, bayraq arxada (DF) ilə qeyd olunur.

Zaman damgaları

Varsayılan olaraq, bütün çıxış xətləri əvvəlcədən vaxt damgasıdır. Vaxt nişanı şəkildəki cari saatdır

hh: mm: ss.frac

və çekirdek saat kimi dəqiq. Zaman damgası, çekirdek paketin ilk gördüyünü əks etdirir. Ethernet interfeysi paketdən teldən çıxarıldığı zaman və "yeni paket" kəsilməsinə xidmət edildikdə zaman aralığının hesabına heç bir cəhd edilmir.

HƏMÇİNİN BAX

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

Mühüm: Şəxsi kompüterinizdə bir komanda necə istifadə edildiyini görmək üçün man komutunu ( % man ) istifadə edin.