Če morate v Linuxu analizirati ali prejeti omrežne pakete, je najbolje, da uporabite konzolo utility tcpdump . Toda problem se pojavi v precej zapletenem vodenju. Običajni uporabnik bo ugotovil, da je delo z orodjem neprijetno, vendar je le na prvi pogled. Članek vam bo povedal, kako je strukturiran tcpdump, kakšna sintaksa ima, kako jo uporabljati, in tudi navaja številne primere njegove uporabe.

Preberite tudi: Priročniki za nastavitev internetne povezave v Ubuntu , Debian , Ubuntu strežnik

Namestitev

Večina razvijalcev operacijskih sistemov, ki temeljijo na Linuxu, vključujejo pripomoček tcpdump na vnaprej nameščen seznam, vendar če iz neznanega razloga ni v vaši distribuciji, ga lahko vedno prenesete in namestite prek »Terminal« . Če vaš OS temelji na Debianu, in to je Ubuntu, Linux Mint, Kali Linux in podobno, morate zagnati ta ukaz:

sudo apt install tcpdump

Pri nameščanju morate vnesti geslo. Upoštevajte, da med tipkanjem ni prikazana in morate vnesti znak "D" in pritisnite Enter, da potrdite namestitev.

Če imate Red Hat, Fedora ali CentOS, bo ukaz za namestitev izgledal takole:

sudo yam install tcpdump

Ko je pripomoček nameščen, ga lahko takoj uporabite. V zvezi s tem in še veliko več bomo podrobneje obravnavali v besedilu.

Preberite tudi: PHP Navodila za namestitev za Ubuntu Server

Sintaksa

Kakršen koli drug ukaz ima tcpdump svojo sintakso. Če poznate to možnost, lahko nastavite vse potrebne parametre, ki bodo upoštevani pri izvedbi ukaza. Sintaksa je naslednja:

tcpdump опции -i интерфейс фильтры

Pri uporabi ukaza morate določiti vmesnik za sledenje. Filtri in možnosti niso obvezne spremenljivke, vendar omogočajo bolj prilagodljivo prilagajanje.

Možnosti

Čeprav vam ni treba določiti možnosti, morate navesti razpoložljive možnosti. Tabela ne prikazuje vseh svojih seznamov, ampak le najbolj priljubljenih, vendar so več kot dovolj za reševanje večine nalog.

Možnost Opredelitev
-A Omogoča, da razvrščate pakete v formatu ASCII
-l Doda funkcijo za pomikanje
-i Po vnosu morate določiti omrežni vmesnik, ki ga boste nadzorovali. Če želite začeti slediti vsem vmesnikom, vnesite besedo "katera koli" po možnosti
-c Izključi postopek sledenja po preverjanju določenega števila paketov
-w Ustvari besedilno datoteko s poročilom o preverjanju
-e Označuje raven internetne povezave podatkovnega paketa
-L Ustvari samo tiste protokole, ki podpirajo določen omrežni vmesnik
-C Ustvari drugo datoteko, medtem ko je paket napisan, če je njegova velikost večja od določene
-r Odpre bralno datoteko, ki je bila ustvarjena z možnostjo -w
-j Za snemanje paketov bo uporabljen format TimeStamp
-J Omogoča ogled vseh razpoložljivih formatov TimeStamp
-G Služi za ustvarjanje datoteke z dnevniki. Možnost zahteva tudi začasno vrednost, po kateri bo ustvarjen nov dnevnik
-v, -vv, -vvv Odvisno od števila znakov v možnosti, bo izhod ukaza bolj natančen (povečanje je neposredno sorazmerno s številom znakov)
-f Izhod prikazuje ime domene IP naslova
-F Omogoča branje informacij, ki niso iz omrežnega vmesnika, ampak iz navedene datoteke
-D Prikazuje vse omrežne vmesnike, ki jih lahko uporabite
-n Izključi prikaz domenskih imen
-Z Določi uporabnika, katerega račun bo ustvaril vse datoteke
-K Manjka analiza preskusa
-q Prikaz kratkih informacij
-H Odkriva glave 802.11s
-I Uporablja se pri zajemanju paketov v načinu monitorja

Po razstavitvi možnosti, tik pod, bomo šli neposredno v njihove aplikacije. V tem času bodo upoštevani filtri.

Filtri

Kot je že omenjeno na samem začetku članka, lahko v sintakso tcpdump dodate filtre. Zdaj bodo najpogostejši med njimi:

Filter Opredelitev
gostitelj Določa ime gostitelja
neto Podaja IP-podmnožico in omrežje
ip Služi za naslov protokola
src Prikaže pakete, ki so bili poslani z navedenega naslova
dst Prikaže pakete, ki jih je prejela določen naslov
arp, udp, tcp Filtriranje po enem od protokolov
pristanišče Prikaže informacije o določenem pristanišču
in, ali Uporablja se za združitev več filtrov v ukaz
manj, večje Proizvodnja paketov, manjših ali večjih od določene velikosti

Vsi zgornji filtri se lahko kombinirajo med seboj, zato boste pri izdaji ukaza videli samo podatke, ki jih želite videti. Za boljše razumevanje uporabe zgoraj navedenih filtrov je smiselno dati primere.

Preberite tudi: Pogosto uporabljeni ukazi v "Terminal" Linuxu

Primeri uporabe

Najpogosteje uporabljene možnosti sintakse za ukaz tcpdump so zdaj navedene. Vse jih ni mogoče navesti, saj so njihove različice lahko neskončno število.

Oglejte si seznam vmesnikov

Priporočljivo je, da vsak uporabnik najprej preveri seznam vseh svojih omrežnih vmesnikov, ki jih je mogoče spremljati. V zgornji tabeli vemo, da morate uporabiti možnost -D , zato v terminalu izvedite naslednji ukaz:

sudo tcpdump -D

Primer:

Zaženite ukaz tcpdump z možnostjo d v linuxu

Kot vidite, v tem primeru je na voljo osem vmesnikov, ki jih lahko pregledate s pomočjo ukaza tcpdump. V članku bodo navedeni primeri s ppp0 , lahko uporabite katero koli drugo.

Normalni prometni zajem

Če želite slediti enemu omrežnemu vmesniku, lahko to storite z možnostjo -i . Ne pozabite vnesti imena vmesnika po vnosu. Tu je primer izvedbe takega ukaza:

sudo tcpdump -i ppp0

Opomba: pred samim ukazom morate vnesti »sudo«, ker zahteva nadrejeno pravico.

Primer:

primer preslikave omrežnega vmesnika z ukazom tcpdump brez uporabe možnosti in filtrov

Opomba: po pritisku na Enter v "Terminal" se bodo prestrezani paketi stalno prikazovali. Če želite ustaviti njihov pretok, morate pritisniti kombinacijo tipk Ctrl + C.

Če zaženete ukaz brez dodatnih možnosti in filtrov, boste videli prikaz za sledilne pakete:

22:18:52.597573 IP vrrp-topf2.p.mail.ru.https > 10.0.6.67.35482 : Flags [P.], seq 1:595, ack 1118, win 6494, options [nop,nop,TS val 257060077 ecr 697597623], length 594

Kjer je označena barva:

  • modra - čas prejema paketa;
  • oranžna - protokolna različica;
  • zelena - naslov pošiljatelja;
  • vijolična - naslov prejemnika;
  • siva - dodatne informacije o tcp;
  • rdeča - velikost paketa (prikazana v bajtih).

Ta sintaksa ima možnost izpisa v oknu "Terminal" brez dodatnih možnosti.

Zajemajte promet z možnostjo -v

Kot veste iz tabele, možnost -v omogoča povečanje količine informacij. Na primer bomo analizirali. Preverimo isti vmesnik:

sudo tcpdump -v -i ppp0

Primer:

primer preslikave omrežnega vmesnika s pomočjo ukaza tcpdump z uporabo možnosti -v v linuxu

Tukaj lahko vidite, da se je na izhodu pojavila naslednja vrstica:

IP (tos 0x0, ttl 58 , id 30675, offset 0, flags [DF] , proto TCP (6) , length 52

Kjer je označena barva:

  • oranžna - protokolna različica;
  • modro - življenjska doba protokola;
  • zelena - dolžina glave polja;
  • vijolična - različica paketa tcp;
  • rdeča - velikost paketa.

Tudi v sintaksi ukaza lahko določite možnost -vv ali -vvv , ki bo dodatno povečala količino informacij, prikazanih na zaslonu.

Možnost -w in -r

Tabela možnosti omenja možnost shranjevanja vseh izhodnih podatkov v ločeni datoteki, tako da jih je mogoče ogledati pozneje. Za to je odgovorna možnost -w . Če ga uporabljate, je precej preprosto, samo pokažite na ukaz, nato pa vnesite ime prihodnje datoteke z razširitvijo ».pcap« . Vzemimo vse na primer:

sudo tcpdump -i ppp0 -w file.pcap

Primer:

primer možnosti -w v ukazu tcpdump v linuxu

Opomba: med snemanjem dnevnikov v datoteki na zaslonu »Terminal« se ne prikaže nobeno besedilo.

Ko si želite ogledati posneti izhod, morate uporabiti možnost -r , nato pa napišite ime prej zapisane datoteke. Uporablja se brez drugih možnosti in filtrov:

sudo tcpdump -r file.pcap

Primer:

primer ogleda predhodno shranjene ukazne datoteke tcpdump z možnostjo w

Obe možnosti sta odlični, ko morate za kasnejši razčlenitev shraniti veliko količino besedila.

Filtriranje IP

V tabeli filtrov vemo, da dst vam omogoča prikazovanje samo tistih paketov, ki jih je naslov prejel na konzoli, kot je določeno v sintaksi ukaza. Tako je zelo primerno, da si ogledate pakete, ki jih prejme vaš računalnik. Če želite to narediti, morate samo v svojem računu navesti svoj naslov IP:

sudo tcpdump -i ppp0 ip dst 10.0.6.67

Primer:

primer uporabe dst in ip filtra v ukazu tcpdump v linuxu

Kot lahko vidite, smo poleg ekipe dst v ekipi napisali ip filter. Z drugimi besedami, računalniku smo povedali, da bi pri izbiri paketov upošteval njihov IP-naslov in ne druge parametre.

Z IP lahko filtrirate in pošiljate pakete. V primeru vrnemo naš IP. To je zdaj, bomo spremljali, kateri paketi so poslani iz našega računalnika na druge naslove. Če želite to narediti, izvedite naslednji ukaz:

sudo tcpdump -i ppp0 ip src 10.0.6.67

Primer:

primer uporabe src in ip filtra v ukazu tcpdump v linuxu

Kot lahko vidite v sintaksi ukaza, smo spremenili dst filter v src , kar pomeni, da je naprava iskala pošiljatelja po IP-ju.

Filtriranje po HOST-u

Po analogiji z IP-jem v ukazu lahko navedemo gostiteljski filter, s katerim odložimo pakete z veliko zanimanjem. To pomeni, da je v sintaksi namesto IP naslov pošiljatelja / sprejemnika potrebno določiti gostitelja. Izgleda takole:

sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com

Primer:

primer uporabe dst in gostiteljskega filtra v ukazu tcpdump v linuxu

Na sliki si lahko ogledate, da so v "Terminalu" prikazani le tisti paketi, ki so bili poslani iz našega IP-ja za gostovanje google.com. Kot lahko vidite, namesto gostitelja Google lahko vnesete katerokoli drugo.

Kot pri filtriranju IP lahko sintakso dst zamenjate z srcom in si ogledate pakete, ki so poslani v računalnik:

sudo tcpdump -i ppp0 src host google-public-dns-a.google.com

Opomba: filter gostitelja mora biti nastavljen po dst ali src, sicer bo ukaz ustvaril napako. V primeru filtriranja IP, nasprotno, dst in src sta pred ip filterom.

Uporabite filter in filter

Če morate v istem ukazu naenkrat uporabiti več filtrov, morate uporabiti filter in ali ali (odvisno od primera). Z določitvijo filtrov v sintaksi in ločevanjem s tem operaterjem, jih »prisilite«, da delajo kot ena. Na primer, izgleda tako:

sudo tcpdump -i ppp0 ip dst 95.47.144.254 or ip src 95.47.144.254

Primer:

primer uporabe in in filtra v ukazu tcpdump v linuxu

Iz sintakse ukaza je jasno, da na zaslonu "Terminal" želimo prikazati vse pakete, ki so bili poslani na naslov 95.47.144.254 in pakete, ki jih prejme isti naslov. V tem izrazu lahko spremenite tudi nekatere spremenljivke. Na primer, namesto IP navedite HOST ali sami naslove zamenjajte.

Pristanišče in portportign filter

Filter vrat je popoln, ko potrebujete informacije o paketih s specifičnim pristaniščem. Torej, če potrebujete samo odgovore ali poizvedbe DNS, morate določiti vrata 53:

sudo tcpdump -vv -i ppp0 port 53

Primer:

primer uporabe filtra pristanišča v ukazu tcpdump v linuxu

Če želite ogledati http pakete, morate vnesti vrata 80:

sudo tcpdump -vv -i ppp0 port 80

Primer:

primer uporabe filtra pristanišča v ukazu tcpdump v linuxu

Med drugim je mogoče slediti razponu pristanišč hkrati. Za to se uporablja filter portranžiranja :

sudo tcpdump portrange 50-80

primer uporabe filtra portranžiranja v sintaksi ukaza tcpdump v linuxu

Kot lahko vidite, ni treba določiti dodatnih možnosti v povezavi s filtrom portpoint . Dovolj je samo nastaviti obseg.

Filtriranje po protokolih

Prav tako lahko prikažete samo promet, ki ustreza kateremukoli protokolu. Če želite to narediti, morate uporabiti ime tega protokola kot filter. Oglejmo si primer udp :

sudo tcpdump -vvv -i ppp0 udp

Primer:

primer filtriranja ukaza tcpdump po protokolu v linuxu

Kot je prikazano na sliki, po izvedbi ukaza so bili v "Terminal" prikazani samo paketi z udp protokolom. V skladu s tem lahko filtrirate na druge, na primer arp :

sudo tcpdump -vvv -i ppp0 arp

ali tcp :

sudo tcpdump -vvv -i ppp0 tcp

Filter net

Omrežni operater pomaga filtrirati pakete, pri čemer kot osnovo označuje njihovo omrežje. Če ga želite uporabiti enako kot ostale, morate v sintaksi podati neto atribut in nato vnesti omrežni naslov. Tukaj je primer takega ukaza:

sudo tcpdump -i ppp0 net 192.168.1.1

Primer:

primer filtriranja ukaza tcpdump z oznako omrežja v Linuxu

Filtrirajte po velikosti paketa

Nismo upoštevali še dveh zanimivih filtrov: manj in več . V tabeli s filtri vemo, da služijo za izpis podatkovnih paketov, ki so večji ( manj ) ali manjši ( večji ) velikosti, določeni po vnosu atributa.

Denimo, da želimo spremljati samo pakete, ki ne presegajo oznake 50 bitov, potem bo ukaz izgledal takole:

sudo tcpdump -i ppp0 less 50

Primer:

filtrirajo pakete po svojih velikostnih filtrih manj v ukazu tcpdump v linuxu

Zdaj bomo prikazali v paketih »Terminal«, ki so večji od 50 bitov:

sudo tcpdump -i ppp0 greater 50

Primer:

filtriranje paketov po velikosti filtra velikosti v ukazu tcpdump v linuxu

Kot lahko vidite, se uporabljajo enako, razlika pa je le v imenu filtra.

Zaključek

Na koncu članka lahko ugotovite, da je ukaz tcpdump odlično orodje, s katerim lahko sledite vsem paketom podatkov, poslanim prek interneta. Toda za to ni dovolj samo vstopiti v ekipo v "Terminal" . Če želite doseči želeni rezultat, boste dobili le, če uporabljate vse vrste možnosti in filtre ter njihove kombinacije.