tcpdump

Priročnik za pripomoček za analizo omrežnega prometa TCPDUMP

Priročnik za pripomoček za analizo omrežnega prometa TCPDUMP

Tcpdump je pripomoček za vohljanje omrežnega paketa. Najpogosteje se uporablja za odpravljanje težav z omrežji in testiranje varnostnih težav. Kljub odsotnosti grafičnega uporabniškega vmesnika je to najbolj priljubljen, zmogljiv in vsestranski pripomoček za ukazno vrstico.

Linux je domač, tako da ga večina distribucij Linuxa namesti kot del standardnega operacijskega sistema. Tcpdump je povezani program libpcap, ki je knjižnica za zajemanje mrežnih datagramov.

Ta članek bo demistificiral tcpdump s prikazom, kako zajeti, prebrati in analizirati zajeti omrežni promet v tem pripomočku. Kasneje bomo z našim razumevanjem pregledali podatkovne pakete z naprednimi filtri zastavic TCP.

Namestitev Tcpdump

Privzeta namestitev Tcpdump v vašem distribucijskem sistemu je odvisna od možnosti, izbranih med postopkom namestitve. V primeru namestitve po meri paket morda ni na voljo. Namestitev tcpdump lahko preverite s pomočjo dpkg ukaz z-s".

ubuntu $ ubuntu: ~ $ dpkg -s tcpdump

Ali pa uporabite ukaz “sudo apt-get install tcpdump” za namestitev tcpdump v Ubuntu Linux.

Zajemanje paketov v Tcpdump:

Za začetek postopka zajemanja moramo najprej poiskati svoj delujoči vmesnik z uporabo »ifconfig”Ukaz. Ali pa lahko z vmesnikom tcpdump ukaz z-D".

ubuntu $ ubuntu: ~ $ tcpdump -D

Za začetek postopka zajema lahko uporabite sintakso;

tcpdump [-options] [izraz]

Na primer, v spodnjem ukazu uporabljamo “-jaz"Možnost zajemanja prometa na"enp0s3", Z"-c"Zastavica za omejitev zajetih paketov in zapis"-w"To do a test_capture.pcap mapa.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -c 20 -w / tmp / test_capture.pcap

Podobno lahko z različnimi kombinacijami filtrov izolirate promet po svojih zahtevah. Tak primer vključuje zajemanje omrežnih podatkov, ki zapustijo in prispejo na gostitelja z uporabo gostitelj ukaz za določeno pristanišče. Poleg tega sem uporabil-n”Zastavica, ki tcpdump preprečuje zajemanje iskanj DNS. Ta zastavica je zelo koristna pri nasičenju prometa med odpravljanjem težav z omrežjem.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -c 20 gostitelj 10.0.2.15 in dst port 80 -w / tmp / test_capture1.pcap
tcpdump: poslušanje na enp0s3, tip povezave EN10MB (Ethernet), velikost zajema 262144 bajtov
20 zajetih paketov
21 paketov, prejetih s filtrom
0 paketov, ki jih je spustilo jedro

UporabljamoinUkaz za zajem samo paketov, ki vsebujejo gostitelja 10.0.2.15 in ciljno pristanišče 80. Podobno lahko uporabimo različne druge filtre za lažje odpravljanje težav.

Če ne želite uporabiti-cZastavo, da omejite zajemanje prometa, lahko uporabite prekinitveni signal, tj.e., Ctrl + C, ustaviti postopek izolacije.

Branje datotek Tcpdump

Branje zajetih datotek tcpdump je lahko veliko presenetljivo. Privzeto tcp dodeli imena naslovom IP in vratom. Uporabili bomo-r”Zastavica za branje naše že zajete datoteke test_capture.pcap shranjeno v / tmp mapo. Izhod bomo usmerili v awk ukaz za izhod samo izvornega naslova IP in vrat ter ga pripelje ukazu glavo za prikaz samo prvih 5 vnosov.

ubuntu $ ubuntu: ~ $ sudo tcpdump -r / tmp / test_capture1.pcap | awk -F “” 'print $ 3' | glava -5
branje iz datoteke / tmp / test_capture.pcap, povezava EN10MB (Ethernet)
IP ubuntu.53298
IP ubuntu.53298
IP ubuntu.53298
IP ubuntu.53298
IP ubuntu.53298

Priporočljivo je, da za reševanje težav z omrežjem uporabite naslove IP in vrata v številkah. Ločljivost imena IP bomo onemogočili s-n"Imena zastav in vrat z"-št“.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -n
tcpdump: zatiran podroben izhod, za popolno dekodiranje protokola uporabite -v ali -vv
poslušanje na enp0s3, tip povezave EN10MB (Ethernet), velikost zajema 262144 bajtov
20:08:22.146354 IP 10.0.2.15.54080> 172.67.39.148.443: Zastave [str.], seq 1276027591: 1276027630, ack 544039114, win 63900, dolžina 39
20:08:22.146745 IP 10.0.2.15.43456> 54.204.39.132.443: Zastave [str.], seq 3381018839: 3381018885, ack 543136109, win 65535, dolžina 46
20:08:22.147506 IP 172.67.39.148.443> 10.0.2.15.54080: Zastave [.], ack 39, zmaga 65535, dolžina 0
20:08:22.147510 IP 54.204.39.132.443> 10.0.2.15.43456: Zastave [.], ack 46, win 65535, dolžina 0
20:08:22.202346 IP 216.58.209.142.443> 10.0.2.15.41050: Zastave [str.], seq 502925703: 502925826, ack 1203118935, win 65535, dolžina 123
20:08:22.202868 IP 10.0.2.15.41050> 216.58.209.142.443: Zastave [str.], seq 1:40, ack 123, win 65535, dolžina 39

Razumevanje zajetih rezultatov

Tcpdump zajema številne protokole, vključno z UDP, TCP, ICMP itd. Tu jih ni lahko zajeti vseh. Vendar je pomembno razumeti, kako so informacije prikazane in katere parametre vključujejo.

Tcpdump prikaže vsak paket v vrstici s časovnim žigom in informacijami glede na protokol. Na splošno je oblika protokola TCP naslednja:

. > .: , , , , ,

Pojasnimo eno od zajetih paketnih polj po poljih:

20:08:22.146354 IP 10.0.2.15.54080> 172.67.39.148.443: Zastave [str.], seq 1276027591: 1276027630, ack 544039114, win 63900, dolžina 39
  • 20:08:22.146354: Časovni žig zajetega paketa
  • IP: protokol omrežne plasti.
  • 10.0.2.15.54080: To polje vsebuje izvorni naslov IP in izvorna vrata.
  • 172.67.39.148.443: To polje predstavlja ciljni naslov IP in številko vrat.
  • Zastave [str.] /: Zastavice predstavljajo stanje povezave. V tem primeru [P.] označuje paket potrditve PUSH. Polje zastave vključuje tudi nekatere druge vrednosti, kot so:
    1. S: SINH
    2. P: PUSH
    3. [.]: POTRDI
    4. F: FIN
    5. [S.]: SYN_ACK
    6. R: RST
  • seq 1276027591: 1276027630: Zaporedna številka v prvem: zadnja oblika označuje število podatkov v paketu. Brez prvega paketa, pri katerem so številke absolutne, imajo naslednji paketi relativna števila. V tem primeru številke tukaj pomenijo, da paket vsebuje bajte podatkov od 1276027591 do 1276027630.
  • ack 544039114: Številka potrditve prikazuje naslednjo pričakovano zaporedno številko podatkov.
  • win 63900: Velikost okna prikazuje število razpoložljivih bajtov v prejetem medpomnilniku.
  • dolžina 39: Dolžina podatkov o koristnem tovoru, v bajtih.

Napredni filtri

Zdaj lahko za prikaz in analizo samo podatkovnih paketov uporabimo nekatere napredne možnosti filtra naslovov. V katerem koli paketu TCP se zastavice TCP začnejo od 14. bajta, tako da sta PSH in ACK predstavljena s 4. in 5. bitom.

Te podatke lahko uporabimo z vklopom teh bitov 00011000 ali 24 za prikaz podatkovnih paketov samo z zastavicami PSH in ACK. To številko posredujemo tcpdump s filtrom "tcp [13] = 24“, Upoštevajte, da se indeks matrike v TCP začne na nič.

Ta paket bomo izločili iz našega zajem besedila.pcap in uporabite datoteko -A možnost, da za vas prikaže vse podrobnosti o paketu.

Podobno lahko z uporabo filtrirate nekatere druge pakete zastavic "Tcp [13] = 8" in "tcp [13] = 2" samo za zastavice PSH in SYN itd.

ubuntu $ ubuntu: ~ $ sudo tcpdump -A 'tcp [13] = 24' -r / tmp / test_capture.pcap
branje iz datoteke / tmp / test_capture.pcap, povezava EN10MB (Ethernet)
19:26:17.827902 IP ubuntu.53298> 32.121.122.34.pr.googleusercontent.com.http: Zastave [str.], seq 4286571276: 4286571363, ack 252096002, win 64240, dolžina 87: HTTP: GET / HTTP / 1.1
E…:?@[email protected].
... "zy .2.P… P… GET / HTTP / 1.1
Gostitelj: preverjanje povezljivosti.ubuntu.com
Sprejmi: * / *
Povezava: tesno

Zaključek

V tem članku smo vam predstavili nekaj najpomembnejših tem tcpdump. Tcpdump je v kombinaciji z močjo CLI lahko v veliko pomoč pri odpravljanju težav z omrežjem, avtomatizaciji in upravljanju varnosti. Ko so filtri in možnosti ukazne vrstice enkrat preučeni in združeni, lahko veliko prispevajo k vašim vsakodnevnim nalogam za odpravljanje težav in avtomatizaciji ter k splošnemu razumevanju omrežja.

Vadnica za OpenTTD
OpenTTD je ena izmed najbolj priljubljenih poslovnih simulacijskih iger. V tej igri morate ustvariti čudovit prevozniški posel. Vendar boste začeli na...
SuperTuxKart za Linux
SuperTuxKart je odličen naslov, zasnovan tako, da vam brezplačno ponuja izkušnjo Mario Kart v vašem sistemu Linux. Igrati je precej zahtevno in zabavn...
Vadnica za bitko za Wesnoth
Bitka za Wesnoth je ena izmed najbolj priljubljenih odprtokodnih strateških iger, ki jih lahko trenutno igrate. Ne samo, da se ta igra razvija že zelo...