Rulează o captura de la distanță cu Wireshark și tcpdump

Captura la distanță de Wireshark tcpdump

Wireshark este un instrument puternic, dar are limitele sale. Dacă nu aveți echipamente profesionale de rețea, este greu să analizați traficul care nu implică computerul. Uneori, cea mai ușoară soluție este să folosiți tcpdump pentru a captura trafic pe serverul de la distanță, apoi să executați Wireshark pentru a arunca o privire asupra acestuia.

Ce sunt Wireshark și tcpdump?

Wireshark este un analizator de protocoale, un software care captează și prezintă datele care curg prin rețeaua dvs. într-un mod lizibil. Folosind Wireshark, puteți analiza intrarea și ieșirea din serviciile de rețea și aplicațiile web.

În timp ce Wireshark face o treabă excelentă în captarea fiecărui pachet care trece prin el, în anumite cazuri va trebui să analizați o sesiune de pe un server de la distanță. Dacă nu aveți echipamente speciale de rețea, acest lucru poate fi dificil. Uneori este mai ușor să captezi trafic pe serverul de la distanță, apoi să îl analizezi pe desktop.

tcpdump este un analizator de pachete de linie de comandă. Nu este la fel de ușor de utilizat ca Wireshark, dar este la fel de capabil să capteze trafic. Deoarece tcpdump rulează într-un mod terminal, este posibil să îl lansăm printr-o sesiune SSH. Cu opțiunile corespunzătoare ale liniei de comandă, puteți exporta o sesiune tcpdump compatibilă cu Wireshark.

SolarWinds duce Wireshark la nivelul următor

Wireshark și tcpdump sunt utilități puternice, dar au niște puncte slabe. În special, este foarte dificil să depistați problemele cu latența din rețeaua dvs. folosind Wireshark din casă. De exemplu, este posibil să suferiți de timpuri de ping-uri mari pe LAN și nu puteți ajuta prea mult Wireshark pentru a vă ajuta.

SolarWinds Timp de răspuns pentru Wireshark (INSTRUMENT GRATUIT)

În acest caz, vă recomand SolarWinds Time Viewer Viewer pentru Wireshark. Acest plugin extinde Wireshark, permițându-vă să diagnosticați cauza vârfurilor ping și viteza generală lentă a rețelei.

Vizualizatorul timpului de răspuns SolarWinds pentru Wireshark

SolarWinds Time Viewer Viewer pentru WiresharkDownload 100% Instrument GRATUIT

Monitorul de performanță al rețelei SolarWinds (TRIAL GRATUIT)

SolarWinds oferă, de asemenea, o soluție excelentă pentru toate rețelele dvs. Se numește Monitorizarea performanței rețelei (NPM) și facilitează administrarea unei rețele. De exemplu, utilizând SolarWinds Network Performance Monitor, puteți să monitorizați și să gestionați LAN-ul wireless, să generați o bază de referință pentru performanțe și să primiți alerte de securitate în timp real.

Imaginea de monitorizare a performanței rețelei SolarWinds

Monitorul de performanță al rețelei SolarWinds este disponibil pentru a încerca fără riscuri timp de 30 de zile. Înscrieți-vă gratuit aici.

SolarWinds Monitor Performance Performance Network Descărcați încercarea GRATUITĂ de 30 de zile

Înainte de a începe

Pentru a urma instrucțiunile din acest ghid, va trebui să aveți următoarele:

  • A fost instalat un computer la distanță cu un server SSH și tcpdump
  • Acces rădăcină
  • Servicii care generează trafic de rețea, cum ar fi Apache sau node.js, care rulează pe computerul de la distanță
  • Un computer local cu un client SSH și Wireshark instalat

Scopul este utilizarea tcpdump pe computerul de la distanță, prin SSH, pentru a capta traficul de rețea. Apoi, traficul capturat poate fi copiat pe computerul local pentru analiză cu Wireshark.

Acest lucru este util atunci când nu aveți acces fizic la computerul de la distanță sau dacă îl executați „fără cap”, adică fără tastatură și monitor.

Captarea pachetelor cu tcpdump

Pentru a captura trafic cu tcpdump, va trebui să vă conectați la computerul de la distanță prin SSH. De asemenea, veți avea nevoie de acces root, altfel tcpdump nu va putea captura trafic și veți vedea o eroare care va indica Nu aveți permisiunea de a captura pe dispozitivul respectiv.

tcpdump - Captura 1

După ce v-ați conectat, executați următoarea comandă pentru a începe să capturați trafic cu tcpdump:

sudo tcpdump -s 0 -i eth0 -w tcpdump.pcap

Opțiunile de linie de comandă pe care le-am folosit pentru a surprinde această sesiune vor fi explicate mai jos. Pe scurt, comanda de mai sus va captura tot traficul pe dispozitivul Ethernet și îl va scrie într-un fișier numit tcpdump.pcap într-un format compatibil cu Wireshark.

tcpdump - Captura 2

După ce ai terminat de captat traficul, încheie sesiunea tcpdump cu Ctrl + C. Veți vedea o scurtă citire care afișează câteva informații despre sesiunea de captare.

tcpdump - Captura 3

Înainte de a putea copia traficul de la computerul dvs. de la distanță în cel local pentru analiză cu Wireshark, va trebui să schimbați permisiunile. În mod implicit, sesiunile tcpdump capturate de rădăcina folosită nu pot fi copiate. Folosiți această comandă:

sudo chmod 644 tcpdump.pcap

Acest lucru vă va permite să copiați fișierul pe computerul dvs. local folosind scp, așa cum este prezentat în pasul următor.

Copierea unei sesiuni tcpdump pentru analiză

După ce ați terminat o sesiune de captare cu tcpdump, ați rămas cu o problemă. Cum îl copiați pe mașina care rulează Wireshark pentru analiză? Există o mulțime de moduri, dar cred că cel mai ușor este cu scp. Deoarece ați capturat deja pachete pe o mașină fără cap folosind SSH, tot ce trebuie să utilizați scp este deja instalat și rulat.

tcpdump - Captura 4

Utilizatorii Windows vor trebui să descarce pscp, apoi să copieze fișierul în C: \ Windows \ System32. Majoritatea utilizatorilor de Mac și Linux au deja tot ce le trebuie.

tcpdump - Captura 5

În Mac sau Linux, deschideți o fereastră de terminal și executați următoarea comandă pentru a copia fișierul de captare a sesiunii:

scp [email protected]: / path / to / file ./

Sau în Windows, deschideți PowerShell și executați această comandă:

pscp.exe [email protected]: / path / to / file. \

Înlocuiți-vă informațiile, dacă este cazul. Vi se va solicita să introduceți parola. Comenzile pe care le-am folosit sunt în imaginea de mai sus pentru referință.

tcpdump - Captura 6

Verificați dacă fișierul a fost copiat așa cum era de așteptat și sunteți gata să analizați sesiunea tcpdump cu Wireshark.

Analizând o sesiune de tcpdump capturată cu Wireshark

Analiza funcționează la fel ca în cazul oricărei capturi tradiționale Wireshark; singurul lucru pe care trebuie să-l știți este cum să importați fișierul.

tcpdump - Captura 7

Porniți Wireshark, apoi importați sesiunea tcpdump capturată folosind Fişier -> Deschis și căutați fișierul dvs. Poti de asemenea dublu click fișierul de captare pentru a-l deschide în Wireshark, atâta timp cât are extensia de fișier * .pcap. Dacă ați folosit -w opțiune când ați executat tcpdump, fișierul se va încărca normal și va afișa traficul.

tcpdump - Captura 7

În cazul meu, conduc un server Apache pe gazda de la distanță și sunt interesat să mă uit la datele HTTP. Am setat filtrul de vizualizare Wireshark corespunzător și pot răsfoi cadrele capturate ca de obicei.

Ca test, am încorporat un element în codul HTML care nu este afișat pe pagină. Ar trebui să pot să-l localizez în fluxul de date și să îl vizualizez cu Wireshark.

tcpdump - Captura 8

După cum puteți vedea, Wireshark este capabil să analizeze fiecare cadru și să afișeze datele foarte bine. Elementul pe care l-am ascuns apare în exemplul de mai sus. Procesul de captare este un pic mai implicat atunci când utilizați tcpdump, dar totul în Wireshark funcționează ca de obicei.

Utilizarea opțiunilor liniei de comandă pentru tcpdump

De cele mai multe ori, atunci când lansați tcpdump, veți dori un anumit control asupra modului în care capturați pachetele și unde depozitați sesiunea. Puteți controla astfel de lucruri folosind opțiuni de linie de comandă. Acestea sunt unele dintre cele mai utile opțiuni ale liniei de comandă pentru tcpdump.

tcpdump -w

-w opțiunea de linie de comandă permite ieșirea compatibilă Wireshark. Este nevoie de o singură variabilă, care este numele fișierului de ieșire. Capturile de jurnal salvate folosind această opțiune nu vor putea fi citite de oameni în afara Wireshark, deoarece sunt stocate în mod binar în loc de ASCII.

tcpdump -C

-C opțiunea de linie de comandă vă permite să setați o dimensiune maximă de fișier în octeți. Această opțiune funcționează doar alături -w. De exemplu, comanda tcpdump -C 1048576 -w capture.pcap specifică o dimensiune maximă de captare de 1MB (1.048.576 bytes) de ieșire în fișier capture.pcap.

Dacă sesiunea generează o cantitate mai mare de ieșire, va crea noi fișiere pentru a o stoca. Deci o captura de 3 MB ar genera capture.pcap, capture1.pcap, și capture2.pcap fiecare cu dimensiunea fișierului de 1 MB.

tcpdump -s

-s opțiunea de linie de comandă stabilește o lungime maximă pentru fiecare pachet în octeți și trunchizează pachetul atunci când este atins maximul. Comanda tcpdump -s 0 stabilește o lungime nelimitată pentru a vă asigura că întregul pachet este capturat.

tcpdump -i

-eu opțiunea de linie de comandă specifică dispozitivul de rețea pe care doriți să îl monitorizați tcpdump. Dacă nu este specificată nicio interfață, aceasta este implicită la interfața cu cele mai mici numere care se execută în prezent.

tcpdump -list-interfaces

Opțiunea de linie de comandă tcpdump -list-interfaces va tipări o listă cu toate interfețele disponibile pentru tcpdump de atașat. Rețineți că aceasta nu începe o sesiune de captare, dar vă va oferi o listă de interfețe pe care să le utilizați cu -eu opțiunea de mai sus.

tcpdump -c

-c opțiunea de linie de comandă spune tcpdump să părăsească sesiunea după capturarea unui număr specificat de pachete.

tcpdump -n

-n opțiunea de linie de comandă indică tcpdump nu pentru a rezolva adresele IP la numele de gazdă. Acest lucru este util atunci când depanați site-urile web din spatele unui server de echilibrare a încărcăturii și într-o mână de alte cazuri atunci când utilizați un nume de gazdă ar oferi rezultate ambigue.

tcpdump -v | -vv | -vvv

Cele trei opțiuni ale liniei de comandă, -v, -vv, și -VVV îți permite să crești verositatea sesiunii de captare. -v va salva valorile TTL pentru fiecare pachet, împreună cu informațiile ToS. -vv va emite TTL și ToS împreună cu informații suplimentare în pachetele NFS. Și -VVV va înregistra tot ceea ce fac primele două opțiuni, împreună cu informații suplimentare din sesiunile telnet.

tcpdump -F

-F opțiunea de linie de comandă instruiește tcpdump să folosească filtrele de captură din fișierul specificat. Mai multe informații despre scrierea unui fișier de captare pot fi găsite în secțiunea următoare.

Utilizarea filtrelor de captare pentru tcpdump

Filtrele de captură vă permit să restrângeți datele stocate de tcpdump într-o sesiune. Sunt o metodă utilă de a face analiza un pic mai ușoară și de a păstra fișierele de captare mici. Iată câteva dintre cele mai utile filtre de captare pentru tcpdump.

gazdă

Acest filtru specifică faptul că numai traficul către și de la gazda vizată trebuie capturat. Este luată ca adresă o adresă IP sau un nume de gazdă.

net

Filtrul net va spune computerului dvs. să capteze trafic doar pe o subrețea dată și să ia o adresă IP ca argument. De exemplu, 192.168.1.0/24 specifică faptul că traficul către sau de la toate gazdele de pe subrețea va fi capturat. Rețineți că este necesară o mască de subrețea în notare.

gazda dst

Similar cu gazdă, acest filtru de captare specifică faptul că numai traficul cu destinația gazdei date va fi capturat. Poate fi folosit și cu net.

gazdă src

Ca mai sus, dar acest filtru captează doar traficul provenit de la adresa gazdă sau adresa IP specificate. Poate fi folosit și cu net.

port

Acest filtru spune tcpdump să capteze trafic către și de la un număr de port dat. De exemplu, port 443 va capta traficul TLS.

portrange

Similar cu filtrul de port, portrange stabilește o serie de porturi pe care este capturat traficul. Pentru a utiliza filtrul portrange, specificați portul de pornire și portul de încheiere, separat printr-o liniuță. De exemplu, portrange 21-23.

portal

Filtrul gateway specifică faptul că computerul dvs. ar trebui să capteze doar traficul care a folosit un nume de gazdă dat ca gateway. Numele gazdei trebuie găsit în / etc / hosts.

difuzare

Filtrul de difuzare specifică faptul că tcpdump ar trebui să capteze doar traficul care este difuzat tuturor gazdelor dintr-o subrețea.

IP multicast

Acest filtru spune tcpdump să capteze doar trafic multicast pe subnetul mașinii gazdă.

și / sau / nu operatori

Filtrele pot fi înlănțuite împreună folosind butonul și, sau, sau nu operatori. De exemplu, pentru a captura tot traficul web pe o anumită gazdă, puteți utiliza filtrul port 80 sau port 443. Sau puteți captura tot traficul dintr-o subrețea dată, cu excepția pachetelor de difuzare folosind filtrul net 192.168.1.0/24 și nu este difuzat.

Este foarte obișnuit să folosești operatori de filtre în practică, deoarece oferă un strat suplimentar de granularitate capturilor tale. Puteți capta exact traficul de care aveți nevoie, fără o mulțime de conversații în rețea.

Expresii complexe cu mai mulți operatori

Expresii chiar mai complexe pot fi construite înconjurând mai multe operații în apostrofe și paranteze unice. De exemplu, puteți monitoriza tot traficul de poștă, inclusiv SMTP, IMAP, IMAP prin TLS, POP3 și POP3 peste TLS, pe mai multe gazde și subrețele, folosind o comandă de acest fel:

tcpdump "(gazda 10.0.0.1 și net 192.168.1.0/24) și ((port 25 sau port 143 sau port 443 sau port 993 sau port 995))"

Expresiile complexe cu mai mulți operatori pot fi foarte utile, dar, de obicei, sunt salvate într-un fișier de filtrare pentru a fi refolosite, deoarece o singură dactilografie va duce la eșecul capturii. Frecvent, acestea trebuie să fie pregătite înainte de timp și depanate.

Utilizarea fișierelor de filtru pentru tcpdump

Filtrele de mai sus pot fi rulate pe linia de comandă la lansarea tcpdump, dar de multe ori este util să creăm un fișier de filtru. Un fișier de filtrare facilitează reproducerea setărilor filtrului între capturi, deoarece este reutilizabil. Iată pașii pentru scrierea și utilizarea unui fișier de filtrare.

Scrieți fișierul de filtru

Fișierele de filtrare utilizează exact aceeași notare ca și linia de comandă. Nu au nevoie de caractere speciale sau numere magice în partea de sus a fișierului.

tcpdump - Captura 9

De exemplu, iată un fișier de filtru pe care l-am scris, care va capta tot traficul de ieșire de pe serverul meu Apache către o gazdă dată. În acest caz, Chromebookul pe care îl scriu.

Atâta timp cât fișierul poate fi citit de către utilizatorul care rulează tcpdump, programul va încerca să analizeze totul din fișierul de filtrare și să-l folosească ca filtru valid. Când un fișierul de filtru este utilizat împreună cu filtrarea liniei de comandă, toate filtrarea liniei de comandă va fi ignorată.

tcpdump - Captura 10

Instruiți tcpdump să folosească orice fișier de filtru dat folosind -F opțiune linie de comandă, urmată de calea către fișier. În exemplul de mai sus, fișierul de filtru este situat în același director în care execut tcpdump.

tcpdump - Captura 11

Iată rezultatul brut din sesiunea filtrată. Puteți vedea că singurele pachete înregistrate sunt originare port 80 sau 443, și sunt în ieșire la gazdă la 192.168.1.181.

tcpdump - Captura 12

După ce vedeți că filtrul dvs. funcționează așa cum intenționează, capturați o sesiune pentru a fi analizată cu Wireshark folosind o comandă similară cu aceasta:

sudo tcpdump -i eth0 -s 0 -w wireshark.pcap -F filter-file

Wireshark și tcpdump

Cu excepția cazului în care executați un comutator gestionat cu un port de administrare, mai devreme sau mai târziu, va trebui să capturați trafic pe un server de la distanță. Când Wireshark nu va face treaba, Wireshark cu tcpdump este o alegere populară. Cele două funcționează foarte bine împreună și, cu câteva opțiuni simple de linie de comandă, tcpdump va exporta sesiuni de captare care pot fi ușor analizate în Wireshark.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *

70 − 60 =

Adblock
detector