Tcpdump: cum să îl utilizați pentru a capta traficul de rețea pe serverul dvs

Dacă trebuie să faceți o diagnoză a întregului trafic de rețea al conexiunii dvs., fie că este local sau care se confruntă cu internetul, este esențial să utilizați programe pentru a capta tot traficul și a-l analiza ulterior. Unul dintre cele mai populare programe este Wireshark, acest program este multi-platformă, compatibil cu ferestre din, Linux, macOS și multe altele, totuși, avem nevoie de o interfață grafică de utilizator pentru a o face să funcționeze. Astăzi vă vom învăța cum să utilizați tcpdump, cel mai bun instrument pentru a capta tot traficul prin linia de comandă dintr-un terminal.

Ce este tcpdump și pentru ce se folosește

tcpdump

tcpdump este un instrument complet gratuit care ne va permite să captăm tot traficul de rețea de la una sau mai multe interfețe, indiferent dacă acestea sunt Ethernet, WiFi, interfețe PPPoE pe care le-am construit și chiar interfețe virtuale precum cele pe care le creăm atunci când folosim rețele private virtuale. Acest program nu este responsabil doar de captarea întregului trafic, dar îl putem analiza și în timp real pe măsură ce este capturat, tot prin linia de comandă.

tcpdump este acceptat pe toate sistemele de operare bazate pe Unix, inclusiv Linux, BSD, macOS și multe altele. Desigur, acest program folosește biblioteca libpcap pentru a captura toate pachetele care circulă printr-o interfață în cauză, fie ea fizică sau virtuală. Pentru a rula acest program pe sistem, este necesar să avem permisiuni de superutilizator, deoarece capturăm și vizualizăm trafic de rețea care ar putea fi „sensibil”, prin urmare, este necesar să avem privilegii de administrator.

Cel mai bun lucru pe care il are tcpdump sunt filtrele, vom putea filtra tot traficul pentru a vedea doar ce ne intereseaza. Filtrele sunt expresii care merg în spatele opțiunilor de captură și ne permit să arătăm doar ceea ce căutăm și nu totul. Dacă nu punem niciun filtru, vom vedea tot traficul de rețea al adaptorului de rețea selectat.

Principalele utilizări pe care le putem oferi unui instrument precum tcpdump sunt următoarele:

  • Capturați toate informațiile și stocați-le pentru studiu ulterior.
  • Depanați aplicațiile în timp real care folosesc rețeaua pentru a comunica.
  • Verificați dacă traficul în rețea este conform așteptărilor ținând cont de utilizarea acestuia.
  • Capturați și citiți datele de pe alte computere din rețea, deși în acest caz ar trebui să folosim tehnici precum ARP Spoofing sau similar dacă ne aflăm într-un mediu comutat și nu folosim tcpdump pe router.

Odată ce am văzut ce este tcpdump și pentru ce poate fi folosit, îl vom instala pe sistemul nostru de operare Linux pentru a vă arăta cum funcționează.

Instalare în Debian și opțiuni principale

Acest program este utilizat pe scară largă în toate sistemele de operare bazate pe Linux, prin urmare, îl vom putea instala direct din depozitele oficiale ale fiecărei distribuții. În cazul Debian, trebuie să punem următoarea comandă în terminal:

sudo apt install tcpdump

Vom obține ceva de genul acesta:

Odată ce îl avem instalat, putem executa următoarea comandă în terminal pentru a ne arăta ajutorul:

tcpdump -h

În cazul în care aveți nevoie de mult mai multe informații despre instrument, consultați exemple de utilizare și toată documentația, atunci puteți accesa paginile de manual după cum urmează:

man tcpdump

În aceste pagini de manual veți putea vedea o descriere extinsă a instrumentului, ce sintaxă trebuie să folosim, ce opțiuni avem disponibile pentru a captura toate datele și, de asemenea, pentru a filtra informațiile pe care le dorim.

exemple de utilizare

Acest program are un număr mare de opțiuni pentru a capta datele și, de asemenea, pentru a le afișa, în plus, avem posibilitatea de a adăuga un număr mare de filtre avansate astfel încât să ne arate doar ceea ce ne dorim. În continuare, vom explica câteva comenzi de bază, astfel încât să captați doar ceea ce vă interesează.

utilizare de bază

Următoarea comandă ne permite să pornim programul, dacă nu specificăm nicio interfață de rețea, instrumentul în sine va alege una dintre cele disponibile în sistemul de operare.

tcpdump

Dacă vrem să specificăm o interfață de rețea, trebuie să puneți următoarea comandă:

tcpdump -i NOMBRE_INTERFAZ

Dacă vrem să specificăm toate interfețele de rețea, să captăm tot traficul de la toate deodată, atunci trebuie să puneți următoarea comandă:

tcpdump -i any

Când capturăm trafic de rețea cu tcpdump, este posibil să nu fim interesați de rezolvarea numelor de gazdă, ci mai degrabă să ne arătăm direct adresele IP. Pentru a face acest lucru, putem pune:

tcpdump -n

Dacă doriți să capturați doar un anumit număr de pachete, atunci ar trebui să puneți următoarea comandă:

tcpdump -c NUMERO_PAQUETES

Dacă dorim să creștem informațiile pe care ni le arată prin linia de comandă, trebuie să creștem „verboza” în felul următor:

tcpdump -i NOMBRE_INTERFAZ -v

Dacă vrem să o creștem mai mult, vom adăuga mai mult „v” după el, după cum urmează:

tcpdump -i NOMBRE_INTERFAZ -vvv

Această ultimă comandă ne permite să vedem cât mai mult posibil.

Daca dorim sa salvam captura intr-un fisier, pentru a o deschide ulterior cu un analizor de pachete precum WireShark, sau pentru analiza ulterioara, trebuie sa punem urmatoarea comanda:

tcpdump -i NOMBRE_INTERFAZ -w NOMBRE_ARCHIVO

Bineînțeles, dacă vrem să salvăm totul cu maximum de verbositate, vom pune:

tcpdump -i NOMBRE_INTERFAZ -w NOMBRE_ARCHIVO

Captarea traficului prin IP sau subrețea

tcpdump ne permite să filtram după adrese IP și chiar subrețele, pentru aceasta, putem pune următoarea comandă:

tcpdump -i NOMBRE_INTERFAZ host IP

De exemplu, am putea vedea traficul de la IP-ul localhost:

tcpdump -i NOMBRE_INTERFAZ host 127.0.0.1

De asemenea, putem filtra după subrețele după cum urmează:

tcpdump -i NOMBRE_INTERFAZ net SUBRED/X

Mai jos puteți vedea un exemplu de subrețea:

tcpdump -i NOMBRE_INTERFAZ net 192.168.1.0/24

De asemenea, am putea filtra după origine și destinație, mai jos, puteți vedea două exemple:

tcpdump -i NOMBRE_INTERFAZ src IP tcpdump -i NOMBRE_INTERFAZ dst IP

Cu aceste opțiuni, putem filtra cu ușurință traficul pe care dorim doar să îl captăm și să îl afișăm.

Captarea traficului pe port și zone

În cazul în care doriți să filtrați după porturi, fie un singur port, fie o serie de porturi, puteți face acest lucru în felul următor:

tcpdump -i NOMBRE_INTERFAZ port NUMERO_PUERTO tcpdump -i NOMBRE_INTERFAZ portrange PUERTOINICIO PUERTOFIN

Toate aceste comenzi pot fi adăugate și la tcpdump pentru a filtra după IP și porturi și chiar pentru a salva întreaga captură de trafic într-un fișier pcap. În acest fel, putem concatena diferitele opțiuni disponibile cu filtrele pe care le-am definit.

Concluzii

tcpdump este instrumentul prin excelență pentru captarea pachetelor din rețeaua locală cu interfețele pe care ni le dorim, datorită acestui program vom putea vizualiza tot traficul din rețea la un nivel scăzut prin consolă și putem salva și capturile de trafic. pe hard disk-ul nostru sau SSD oricând vrem noi. Datorită numărului mare de opțiuni de configurare și filtre, vom putea surprinde doar ceea ce ne interesează, pentru analiză ulterioară cu programe precum Wireshark sau direct la nivel scăzut cu tshark sau similar.

Daca ai probleme la nivel de retea in reteaua sau serverul tau local, tcpdump te va ajuta sa stii ce trafic trece prin intreaga retea sau prin serverul in cauza, iar ulterior sa studiezi in detaliu ce se intampla si cum il putem rezolva. Captarea traficului de rețea este primul pas pentru a rezolva o problemă la nivel de rețea, iar în acest caz, tcpdump va fi cel mai bun aliat al tău pentru a rezolva toate problemele.