Ako trebate analizirati ili presresti mrežne pakete u Linuxu, onda je najbolje koristiti konzolu tcpdump . Ali problem nastaje u njegovu prilično složenom upravljanju. Obični korisnik će ustanoviti da je rad s uslužnim programom nezgodno, ali to je samo na prvi pogled. U članku će vam reći kako je tcpdump strukturiran, što ima sintaksu, kako ga koristiti, a također daje brojne primjere njegove uporabe.

Također pročitajte: Priručnici za postavljanje internetske veze u sustavu Windows Vista Ubuntu , Debian , Ubuntu poslužitelj

instalacija

Većina programera Linux operacijskih sustava uključuje tcpdump program na unaprijed instaliranom popisu, ali ako iz nekog razloga nije u vašoj distribuciji, uvijek ga možete preuzeti i instalirati putem "Terminal" . Ako se vaš OS temelji na Debianu, a to je Ubuntu, Linux Mint, Kali Linux i slično, morate pokrenuti ovu naredbu:

sudo apt install tcpdump

Prilikom instalacije morate unijeti lozinku. Imajte na umu da se prilikom upisivanja ne prikazuje, i morate unijeti znak "D" i pritisnite Enter za potvrdu instalacije.

Ako imate Red Hat, Fedora ili CentOS, tada će naredba za instalaciju izgledati ovako:

sudo yam install tcpdump

Nakon što je uslužni program instaliran, može se odmah koristiti. O ovom i još mnogo toga razgovarat ćemo dalje u tekstu.

Pročitajte također: Vodič za instalaciju PHP za Ubuntu poslužitelj

sintaksa

Kao i svaka druga naredba, tcpdump ima svoju sintaksu. Znajući to, možete postaviti sve potrebne parametre koji će se uzeti u obzir pri izvršenju naredbe. Sintaksa je sljedeća:

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

Kada koristite naredbu, morate odrediti sučelje za praćenje. Filteri i opcije nisu obvezne varijable, ali omogućuju fleksibilnije prilagodbe.

opcije

Iako ne morate navesti opciju, trebate navesti dostupne opcije. Tablica ne prikazuje sve svoje popise, već samo najpopularnije, ali je više nego dovoljno za rješavanje većine zadataka.

opcija definicija
-A Omogućuje sortiranje paketa s ASCII formatu
-l Dodaje funkciju pomicanja
-i Nakon ulaska morate odrediti mrežno sučelje koje će se pratiti. Za početak praćenja svih sučelja unesite riječ "bilo koji" nakon opcije
c Završava postupak praćenja nakon provjere određenog broja paketa
-w Generira tekstualnu datoteku s izvješćem o potvrdi
-e Označava razinu internetske veze podatkovnog paketa
-L Izlazi samo oni protokoli koji podržavaju navedeno mrežno sučelje
-C Izrađuje drugu datoteku tijekom pakiranja, ako je veličina veća od navedenog
-r Otvara pročitanu datoteku koja je stvorena pomoću opcije -w
-j Za snimanje paketa bit će upotrijebljen TimeStamp format
-J Omogućuje vam pregled svih dostupnih formata TimeStamp
-G Služi za stvaranje datoteke s zapisnicima. Opcija također zahtijeva privremenu vrijednost, nakon čega će se stvoriti novi dnevnik
-v, -vv, -vvv Ovisno o broju znakova u opciji, izlaz naredbe će postati detaljniji (povećanje je izravno proporcionalno broju znakova)
f Izlaz prikazuje naziv domene IP adrese
-F Omogućuje vam čitanje informacija ne iz mrežnog sučelja, već iz navedene datoteke
-D Pokazuje sve mrežna sučelja koja možete koristiti
-n Deaktivira prikaz imena domena
-Z Određuje korisnika čiji će račun izraditi sve datoteke
-K Nedostaje analiza čekova
Q Demonstracija kratkih informacija
H Otkriva zaglavlja 802.11s
-I Koristi se prilikom snimanja paketa u načinu rada za praćenje

Nakon rastavljanja opcija, odmah ispod idemo izravno na njihove aplikacije. U međuvremenu će se razmotriti filteri.

filteri

Kao što je spomenuto na samom početku članka, možete dodati filtre u tcpdump sintaksu. Sada će se smatrati najpopularnija od njih:

filter definicija
domaćin Određuje naziv glavnog računala
neto Određuje IP subnet i mrežu
IP Poslužuje se za adresu protokola
src Prikazuje pakete koji su poslani s navedene adrese
DST Prikazuje pakete koji su primljeni navedenom adresom
arp, udp, tcp Filtriranje pomoću jednog od protokola
luka Prikazuje informacije povezane s određenim priključkom
i, ili Koristi se za spajanje više filtara u naredbu
manje, veće Izlaz paketa manji ili veći od navedene veličine

Svi gore navedeni filtri mogu se međusobno kombinirati, tako da kod izdavanja naredbe vidjet ćete samo one informacije koje želite vidjeti. Da bismo detaljnije razumjeli upotrebu gore navedenih filtara, vrijedi dati primjere.

Pročitajte također: Često korištene naredbe u "Terminal" Linuxu

Primjeri upotrebe

Najčešće korištene opcije sintakse za naredbu tcpdump sada su navedene. Nisu sve navedene, jer njihove varijacije mogu biti beskonačni broj.

Pregledajte popis sučelja

Preporuča se da svaki korisnik u početku provjerava popis svih svojih mrežnih sučelja koja se mogu pratiti. Iz gornje tablice znamo da morate koristiti opciju -D , stoga pokrenite sljedeću naredbu na terminalu:

sudo tcpdump -D

primjer:

Pokretanje tcpdump naredbe s opcijom d u Linuxu

Kao što vidite, u primjeru postoji osam sučelja koja možete vidjeti s tcpdump naredbom. U članku će se dati primjeri s ppp0 , možete koristiti bilo koji drugi.

Uobičajeno snimanje prometa

Ako trebate pratiti jedno mrežno sučelje, to možete učiniti s opcijom -i . Nemojte zaboraviti unijeti naziv sučelja nakon što ste ga unijeli. Evo primjera izvršavanja takve naredbe:

sudo tcpdump -i ppp0

Napomena: prije same naredbe, morate unijeti "sudo", jer to zahtijeva superuserovo pravo.

primjer:

primjer kartiranja mrežnog sučelja pomoću tcpdump naredbe bez korištenja opcija i filtara

Napomena: nakon što pritisnete Enter u "Terminalu", neprekidno će se prikazati presretni paketi. Da biste zaustavili njihov protok, trebate pritisnuti kombinaciju tipki Ctrl + C.

Ako pokrenete naredbu bez dodatnih opcija i filtara, vidjet ćete sljedeći format prikaza praćenih paketa:

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

Gdje je istaknuta boja:

  • plava - vrijeme primitka paketa;
  • naranča - verzija protokola;
  • zelena - adresa pošiljatelja;
  • ljubičasta - adresa primatelja;
  • siva - dodatne informacije o tcp;
  • crvena - veličina paketa (prikazana u bajtovima).

Ova sintaksa ima mogućnost izlaziti u prozoru "Terminal" bez upotrebe dodatnih opcija.

Snimite promet pomoću opcije -v

Kao što znate iz tablice, opcija -v omogućuje povećanje količine podataka. Analizirat ćemo na primjeru. Provjerimo isto sučelje:

sudo tcpdump -v -i ppp0

primjer:

primjer kartiranja mrežnog sučelja pomoću tcpdump naredbe pomoću opcije -v u Linuxu

Ovdje možete vidjeti da se sljedeća retka pojavila u izlazu:

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

Gdje je istaknuta boja:

  • naranča - verzija protokola;
  • plavo - proteklo životni vijek;
  • zelena - dužina polja zaglavlja;
  • ljubičasta - verzija paketa tcp;
  • crvena - veličina paketa.

Također, u sintaksi naredbe možete odrediti opciju -vv ili -vvv koja će dodatno povećati količinu informacija prikazanih na zaslonu.

Opcija -w i -r

Tablica opcija spomenula je mogućnost spremanja svih izlaznih podataka u zasebnu datoteku kako bi ih se kasnije moglo vidjeti. Za to je odgovorna opcija -w . Da biste ga koristili, jednostavno je uputite u naredbu, a zatim unesite naziv buduće datoteke s nastavkom ".pcap" . Razmotrimo sve na primjeru:

sudo tcpdump -i ppp0 -w file.pcap

primjer:

primjer opcije -w u naredbi tcpdump u Linuxu

Imajte na umu: tijekom snimanja zapisa ne postoji tekst u datoteci na zaslonu "Terminal".

Kada želite vidjeti snimljeni izlaz, morate koristiti opciju -r , nakon čega napišite ime prethodno snimljene datoteke. Koristi se bez drugih opcija i filtara:

sudo tcpdump -r file.pcap

primjer:

primjer gledanja prethodno spremljene tcpdump naredbene datoteke s w opcijom

Obje ove opcije su savršene kada trebate spremiti velike količine teksta za kasniju analizu.

Filtriranje IP-a

Iz tablice filtra znamo da dst omogućuje prikazivanje samo onih paketa koje je primljena po adresi na zaslonu konzole, kako je navedeno u sintaksi naredbi. Stoga je vrlo prikladno gledati pakete koje je primio vaše računalo. Da biste to učinili, samo trebate navesti svoju IP adresu u timu:

sudo tcpdump -i ppp0 ip dst 10.0.6.67

primjer:

primjer korištenja dst i ip filtera u naredbi tcpdump u Linuxu

Kao što možete vidjeti, pored dst , u timu smo također napisali ip filter. Drugim riječima, rekli smo računalu da pri odabiru paketa obratiti pozornost na njihovu IP adresu, a ne na druge parametre.

IP-om možete filtrirati i slati pakete. U primjeru vratimo IP. To je sada ćemo pratiti koji paketi se šalju s našeg računala na druge adrese. Da biste to učinili, izvršite sljedeću naredbu:

sudo tcpdump -i ppp0 ip src 10.0.6.67

primjer:

primjer upotrebe src i ip filtera u naredbi tcpdump u Linuxu

Kao što vidite, u sintaksi naredbe promijenili smo filtar dst na src , tako da se stroj upozorava na pošiljatelja IP-om.

Filtriranje po HOST-u

Analogno IP-u u naredbi možemo odrediti filtar domaćina kako bismo uklonili pakete s domaćinom interesa. To jest, u sintaksi, umjesto IP adrese pošiljatelja / prijemnika, bit će potrebno odrediti svoj host. Izgleda ovako:

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

primjer:

primjer korištenja filtra dst i glavnog računala u naredbi tcpdump u Linuxu

Na slici možete vidjeti da su u "Terminalu" prikazani samo one pakete koji su poslani iz naše IP adrese za host google.com. Kao što možete vidjeti, umjesto google host-a možete unijeti bilo koji drugi.

Kao i kod IP filtriranja, sintaksu dst može se zamijeniti srcom kako bi vidjeli pakete koji se šalju na vaše računalo:

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

Napomena: filtar glavnog računala mora biti postavljen nakon dst ili src, inače će naredba generirati pogrešku. U slučaju IP filtriranja, naprotiv, dst i src nalaze se ispred IP filtar.

Primijeni filtar i i filtar

Ako trebate istodobno koristiti više filtara u istoj naredbi, trebate primijeniti i i ili ili filtar (ovisno o slučaju). Navodeći filtre u sintaksa i razdvajajući ih s ovim operatorom, "prisiljavate" ih da rade kao jedan. Na primjer, izgleda ovako:

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

primjer:

primjer korištenja i i filtera u tcpdump naredbi u Linuxu

Iz sintakse naredbe jasno je da na zaslonu "Terminal" želimo prikazati sve pakete koji su poslani na adresu 95.47.144.254 i pakete primljene na istoj adresi. Također možete promijeniti neke varijable u ovom izrazu. Na primjer, umjesto IP, navedite HOST ili sami zamijenite adrese.

Port i poravnati filtar

Port filter je savršen kada trebate dobiti informacije o paketima s određenim priključkom. Dakle, ako samo trebate vidjeti odgovore ili DNS upite, morate odrediti priključak 53:

sudo tcpdump -vv -i ppp0 port 53

primjer:

primjer korištenja filtra ulaza u tcpdump naredbi u Linuxu

Ako želite pregledati http pakete, morate unijeti priključak 80:

sudo tcpdump -vv -i ppp0 port 80

primjer:

primjer primjene filtra ulaza u naredbu tcpdump u Linuxu

Između ostalog, moguće je istodobno pratiti raspon luka. Za to se koristi filtar s rasporedom :

sudo tcpdump portrange 50-80

primjer upotrebe filtra za rasporedom u sintaksi tcpdump naredbe u Linuxu

Kao što vidite, nije potrebno odrediti dodatne opcije u kombinaciji s filtrom za rasporedom . Dovoljno je samo postaviti raspon.

Filtriranje po protokolu

Također možete prikazati samo promet koji odgovara bilo kojem protokolu. Da biste to učinili, morate upotrijebiti naziv ovog protokola kao filtar. Pogledajmo primjer udpa :

sudo tcpdump -vvv -i ppp0 udp

primjer:

primjer filtriranja naredbe tcpdump protokola u Linuxu

Kao što se vidi na slici, nakon izvršenja naredbe, samo su paketi s udp protokolom bili prikazani u "Terminalu" . Prema tome, filtriranje možete izvršiti na drugom, na primjer, arp :

sudo tcpdump -vvv -i ppp0 arp

ili tcp :

sudo tcpdump -vvv -i ppp0 tcp

Filtar filtra

Net operator pomaže filtrirati pakete, uzimajući kao temelj oznaku njihove mreže. Da biste ga koristili jednostavno kao ostatak - morate navesti neto atribut u sintaksi, a zatim unesite mrežnu adresu. Evo primjera takve naredbe:

sudo tcpdump -i ppp0 net 192.168.1.1

primjer:

primjer filtriranja tcpdump naredbe za naziv mreže u Linuxu

Filtriranje po veličini paketa

Nismo uzeli u obzir još dva zanimljiva filtra: sve manje i više . Iz tablice s filtrima znamo da služe za izlaz paketa podataka veći ( manji ) ili manji ( veći ) veličina određena nakon ulaska u atribut.

Pretpostavimo da želimo slijediti samo pakete koji ne prelaze 50-bitnu oznaku, a zatim će naredba izgledati ovako:

sudo tcpdump -i ppp0 less 50

primjer:

filtriranje paketa po veličini filtra manje u naredbi tcpdump u Linuxu

Sada ćemo se prikazati u paketima "Terminal" koji su veći od 50 bitova:

sudo tcpdump -i ppp0 greater 50

primjer:

filtriranje paketa njihovim filtrom veličine veći u naredbi tcpdump u Linuxu

Kao što vidite, primjenjuju se jednako, razlika je samo u nazivu filtra.

zaključak

Na kraju članka možete zaključiti da je tcpdump naredba izvrstan alat pomoću kojeg možete pratiti bilo koji paket podataka poslan preko Interneta. Ali za to nije dovoljno samo ulazak tima u "Terminal" . Za postizanje željenog rezultata dobit ćete samo ako koristite sve vrste opcija i filtara, kao i njihove kombinacije.