Cum se utilizează tcpdump pentru a ne monitoriza rețeaua

Cuprins

În acest tutorial vom vedea cum se lucrează cu tcpdump. Este un instrument open source pentru linia de comandă, cu care este obișnuit monitorizează rețeaua, îl putem înțelege ca un analizor de pachete care trec prin rețeaua în care executați programul. Este folosit în mediile Unix, deși există o variantă pentru Windows numită WinDump. Un tutorial despre EtherApe poate fi de interes pentru dvs., care este un instrument pentru a vedea grafic starea rețelei noastre.

În tutorial vom lucra de la Linux, în special în Ubuntu 16.04, pentru ca instrumentul să funcționeze, trebuie să-l rulăm cu privilegii ridicate, cu excepția anumitor opțiuni, care vor fi necesare.

Putem folosi tcpdump pentru diverse sarcini, cum ar fi depanarea aplicațiilor noastre de rețea, citirea datelor care sunt trimise între utilizatori prin rețeaua în care ne aflăm etc. Vom pune sintaxa sa mai jos:

 tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX #] [-B size] [-c count] [-C file_size] [-E ceva: secret] [-F file] [-G seconds] [-i interface] [-j tstamptype] [- M secret] [--număr] [-Q în | out | inout] [-r fișier] [-s snaplen] [--time-stamp-precision precision] [--immediate-mode] [-T type] [ --versiune] [-V fișier] [-f fișier] [-W fișier cont] [-y tip date] [comandă -z] [-Z utilizator] [expresie]
Acest instrument are un număr mare de parametri pe care îi putem folosi, aici vom vedea câțiva.

Unii parametri tcpdump

  • -LA: Imprimați pachetele în cod ASCII.
  • -X: Imprimați pachetele în hexazecimal.
  • -D: Afișează interfețele disponibile.
  • -c number: Va închide programul atunci când numărul de pachete indicat a fost capturat.
  • -i interfață: programul ascultă pe interfața specificată.
  • -Eu: Pune interfața în modul monitor.
  • -p: Nu pune interfața în modul promiscuu.
  • -f fișier: Ieșirea este stocată în fișierul pe care îl indicăm.
  • -h: Afișează ajutor pentru utilizarea acestuia.

Dacă vrem să vedem toți parametrii disponibili, în Linux folosim:

 man tcpdump
Utilizarea acestei comenzi este mai completă decât ajutorul oferit de parametru -h sau --Ajutor, care ne-ar arăta doar următoarele:

Vom vedea 10 exemple pentru a începe acest instrument puternic.

NotăÎn aproape toate exemplele veți vedea că sudo este utilizat înainte de tcpdump, așa cum am spus mai înainte, este necesar să îl lansați cu privilegii mari, dacă utilizați terminalul ca root, atunci nu este necesar să puneți nimic în fața tcpdump. Dacă doriți să opriți captura, puteți combina tastele:

CTRL + C

Exemplul 1
Cel mai simplu exemplu care utilizează parametrul -LA. Pentru aceasta executăm:

 tcpdump -A

Să vedem un exemplu cu mai mult conținut.

Exemplul 2
Acum vom filtra după gazdă și vom adăuga modul detaliat cu parametrul -v:

 sudo tcpdump host 192.168.66.130 -v
Mai jos este o imagine folosind comanda de mai sus:

Pentru imagine am făcut un ping de la o altă mașină, astfel încât să putem vedea ICMP. Să trecem la al treilea exemplu.

Exemplul 3
În acest exemplu vom analiza pachetele de la aceeași gazdă, doar că de data aceasta pachetele care au legătură cu portul 80:

 sudo tcpdump host 192.168.66.130 și portul 80 -v
Dacă ne uităm la captură, vom vedea ceva similar cu următoarele:

Puteți vedea cât de ușor este de manevrat acest instrument, să mergem mai departe.

Exemplul 4
Vom folosi exemplul 3 și îl vom modifica, vrem să filtrăm pachetele cu originea 192.168.66.130 care merg la portul 80:

 sudo tcpdump src host 192.168.66.130 și dst port 80 -v
Vedem că am folosit condiționalul și, pentru ca cele două condiții să fie îndeplinite, putem folosi, de asemenea, sau, dacă dorim să fie îndeplinite doar una dintre ele. Dacă ne uităm la capturile de ecran, vom vedea o cerere POST.

Trecem la al cincilea exemplu.

Exemplul 5
Vom captura pachete care indică o interfață:

 sudo tcpdump -i ens33
NotăInterfața dvs. este probabil eth0, o puteți vedea cu comanda ifconfig, dar și cu parametrul -D al tcpdump va funcționa pentru noi, o vom vedea în următorul exemplu.

Mai jos puteți vedea o imagine a capturii.

Să mergem pentru următoarea.

Exemplul 6
În acest exemplu, singurul lucru pe care îl vom face este să arătăm interfețele disponibile, pentru aceasta executăm:

 tcpdump -D
În acest caz nu este necesar să fie root.

Hai sa continuăm.

Exemplul 7
Vrem să capturăm 3 pachete care sunt destinate portului 1987 și când se întâmplă acest lucru, opriți programul:

 sudo tcpdump -c 3 dst port 1987
Putem vedea în următoarea imagine că sunt capturate doar 3 pachete:

Să vedem încă câteva exemple.

Exemplul 8
Când suntem interesați să obținem toate pachetele de trafic tcp care nu merg la un anumit port, de exemplu portul 80, vom executa următoarele:

 sudo tcpdump nu portul 80 și tcp
Rezultatul este similar, deci în acest exemplu nu este setată nicio captură. Să mergem după penultimul exemplu.

Exemplul 9
Vom captura 2 pachete ale unei interfețe specifice și le vom arăta în format hexazecimal, pentru aceasta trebuie să executăm:

 sudo tcpdump -i ens33 -x -c 2
Mai jos puteți vedea rezultatul:

Ei bine, să trecem la ultimul exemplu al tutorialului.

Exemplul 10
În acest exemplu, vom salva captura într-un fișier pentru a o privi mai târziu. Captura este limitată la 3 pachete și este specificată o interfață, așa că vom executa:

 sudo tcpdump -w test.pcap -i ens33 -c 3
Să vedem o captură de ecran:

Dacă dorim să citim fișierul acum, trebuie să executăm:

 tcpdump -r test.pcap
O putem vedea în următoarea imagine:

Tutorialul despre tcpdump a ajuns până aici, are multe posibilități și multe opțiuni, așa că pentru a învăța cum să gestionați bine acest instrument, cel mai bine este să practicați și să descoperiți toate caracteristicile sale încetul cu încetul. Ați putea fi, de asemenea, interesat să citiți ceva despre instrumentul netcat, așa că iată un link către un tutorial cu exemple:

Cum se folosește netcat

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave