Cum se folosește tcpdump și 6 exemple

Cum se folosește tcpdump și 6 exemple

Încercați să capturați pachete de date pentru a analiza traficul din rețeaua dvs.? Poate sunteți un administrator de server care s-a confruntat cu o problemă și dorește să monitorizeze datele transmise în rețea. Oricare ar fi situația, utilitarul tcpdump Linux este ceea ce aveți nevoie.





În acest articol, vom discuta în detaliu comanda tcpdump, împreună cu câteva ghiduri despre cum să instalați și să utilizați tcpdump pe sistemul dvs. Linux.





Ce este comanda tcpdump?

Tcpdump este un instrument puternic de monitorizare a rețelei care permite unui utilizator să filtreze pachetele și traficul într-o rețea în mod eficient. Puteți obține informații detaliate legate de TCP / IP și pachetele transmise în rețeaua dvs. Tcpdump este un utilitar de linie de comandă, ceea ce înseamnă că îl puteți rula pe servere Linux fără afișaj.





Administratorii de sistem pot, de asemenea, să integreze utilitarul tcpdump cu cron pentru a automatiza diverse sarcini precum jurnalizarea. Deoarece numeroasele sale caracteristici îl fac destul de versatil, tcpdump funcționează atât ca soluție de depanare, cât și ca instrument de securitate.

Cum se instalează tcpdump pe Linux

În timp ce de cele mai multe ori veți găsi tcpdump preinstalat pe sistemul dvs., unele distribuții Linux nu sunt livrate împreună cu pachetul. Prin urmare, poate fi necesar să instalați manual utilitarul pe sistemul dvs.



Puteți verifica dacă tcpdump este instalat pe sistemul dvs. utilizând care comanda.

which tcpdump

Dacă ieșirea afișează o cale de director ( / usr / bin / tcpdump ), atunci sistemul dvs. are pachetul instalat. Cu toate acestea, dacă nu, puteți face acest lucru cu ușurință utilizând managerul de pachete implicit din sistemul dvs.





Pentru a instala tcpdump pe distribuții bazate pe Debian, cum ar fi Ubuntu:

sudo apt-get install tcpdump

Instalarea tcpdump pe CentOS este de asemenea ușoară.





sudo yum install tcpdump

Pe distribuțiile bazate pe Arch:

sudo pacman -S tcpdump

Pentru a instala pe Fedora:

sudo dnf install tcpdump

Rețineți că pachetul tcpdump necesită libcap ca dependență, deci asigurați-vă că îl instalați și pe sistemul dvs.

Exemple Tcpdump pentru a captura pachete de rețea pe Linux

Acum că ați instalat cu succes tcpdump pe mașina dvs. Linux, este timpul să monitorizați unele pachete. Deoarece tcpdump necesită permisiuni pentru superutilizator pentru a executa majoritatea operațiunilor, va trebui să adăugați sudo la comenzile tale.

1. Enumerați toate interfețele de rețea

Pentru a verifica ce interfețe de rețea sunt disponibile pentru a captura, utilizați -D semnalizați cu comanda tcpdump.

tcpdump -D

Trecând de --list-interfaces flag ca argument va returna aceeași ieșire.

tcpdump --list-interfaces

Ieșirea va fi o listă a tuturor interfețelor de rețea care sunt prezente în sistemul dvs.

După ce ați obținut lista interfețelor de rețea, este timpul să vă monitorizați rețeaua captând pachete pe sistemul dvs. Deși puteți specifica ce interfață doriți să utilizați, fișierul orice argument comandă tcpdump pentru a captura pachete de rețea utilizând orice interfață activă.

tcpdump --interface any

Sistemul va afișa următoarea ieșire.

cele mai bune jocuri vr gratuite pentru Android

Legate de: Ce este modelul de interconectare a sistemelor deschise?

2. Formatul de ieșire tcpdump

Începând de la a treia linie, fiecare linie a ieșirii denotă un pachet specific capturat de tcpdump. Iată cum arată ieșirea unui singur pachet.

17:00:25.369138 wlp0s20f3 Out IP localsystem.40310 > kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 117964079 ecr 816509256], length 33

Rețineți că nu toate pachetele sunt capturate în acest fel, dar acesta este formatul general urmat de majoritatea acestora.

Ieșirea conține următoarele informații.

  1. Marcaj de timp al pachetului primit
  2. Numele interfeței
  3. Flux de pachete
  4. Numele protocolului de rețea
  5. Adresa IP și detaliile portului
  6. Steaguri TCP
  7. Numărul secvenței de date din pachet
  8. Ack date
  9. Dimensiunea ferestrei
  10. Lungimea pachetului

Primul câmp ( 17: 00: 25.369138 ) afișează marca de timp când sistemul dvs. a trimis sau a primit pachetul. Ora înregistrată este extrasă din ora locală a sistemului.

cum să nu mai utilizați rețelele sociale

Al doilea și al treilea câmp indică interfața utilizată și fluxul pachetului. În fragmentul de mai sus, wlp0s20f3 este numele interfeței fără fir și Afară este fluxul de pachete.

Al patrulea câmp include informații legate de numele protocolului de rețea. În general, veți găsi două protocoale- IP și IP6 , unde IP denotă IPV4 și IP6 este pentru IPV6.

Următorul câmp conține adresele IP sau numele sistemului sursă și destinație. Adresele IP sunt urmate de numărul portului.

Al șaselea câmp din ieșire este format din semnalizatoare TCP. Există diferite semnalizatoare care sunt utilizate în ieșirea tcpdump.

Numele steaguluiValoareDescriere
VEDERESConexiunea a început
SFÂRȘITFConexiunea sa încheiat
APĂSAȚIPDatele sunt împinse
RSTRConexiunea este resetată
VAI.Confirmare

Ieșirea poate conține, de asemenea, o combinație de mai multe semnalizatoare TCP. De exemplu, FLAG [f.] înseamnă un pachet FIN-ACK.

Mergând mai departe în fragmentul de ieșire, câmpul următor conține numărul de ordine ( sec 196: 568 ) a datelor din pachet. Primul pachet are întotdeauna o valoare întreagă pozitivă, iar pachetele următoare folosesc numărul de ordine relativ pentru a îmbunătăți fluxul de date.

Următorul câmp deține numărul de confirmare ( ack 1 ), sau un număr Ack simplu. Pachetul capturat în mașina expeditorului are 1 ca număr de confirmare. La capătul receptorului, numărul Ack este valoarea pachetului următor.

Al nouălea câmp din ieșire găzduiește dimensiunea ferestrei ( câștigă 309 ), care este numărul de octeți disponibili în bufferul de recepție. Există mai multe alte câmpuri care urmează dimensiunea ferestrei, inclusiv dimensiunea maximă a segmentului (MSS).

Ultimul câmp ( lungimea 33 ) conține lungimea pachetului total capturat de tcpdump.

3. Limitați numărul de pachete capturate

În timp ce executați comanda tcpdump pentru prima dată, este posibil să observați că sistemul continuă să capteze pachete de rețea până când treceți un semnal de întrerupere. Puteți suprascrie acest comportament implicit specificând numărul de pachete pe care doriți să le capturați în prealabil folosind -c steag.

tcpdump --interface any -c 10

Comanda menționată mai sus va captura zece pachete de pe orice interfață de rețea activă.

4. Filtrarea pachetelor pe baza câmpurilor

Când depanați o problemă, obținerea unui bloc mare de ieșire de text pe terminal nu o face mai ușoară. Acolo intră în joc funcția de filtrare din tcpdump. Puteți filtra pachetele în funcție de diferite câmpuri, inclusiv gazdă, protocol, număr de port și multe altele.

Pentru a captura numai pachete TCP, tastați:

tcpdump --interface any -c 5 tcp

În mod similar, dacă doriți să filtrați ieșirea folosind numărul portului:

tcpdump --interface any -c 5 port 50

Comanda menționată mai sus va prelua numai pachetele transmise prin portul specificat.

Pentru a obține detaliile pachetului pentru o anumită gazdă:

tcpdump --interface any -c 5 host 112.123.13.145

Dacă doriți să filtrați pachetele trimise sau primite de o anumită gazdă, utilizați src sau etc. argument cu comanda.

tcpdump --interface any -c 5 src 112.123.13.145
tcpdump --interface any -c 5 dst 112.123.13.145

De asemenea, puteți utiliza operatorii logici și și sau pentru a combina două sau mai multe expresii împreună. De exemplu, pentru a obține pachete care aparțin IP-ului sursă 112.123.13.145 și utilizați portul 80 :

tcpdump --interface any -c 10 src 112.123.13.145 and port 80

Expresiile complexe pot fi grupate împreună folosind paranteze după cum urmează:

tcpdump --interface any -c 10 '(src 112.123.13.145 or src 234.231.23.234) and (port 45 or port 80)'

5. Vizualizați conținutul pachetului

Puteți utiliza -LA și -X semnalizează cu comanda tcpdump pentru a analiza conținutul pachetului de rețea. The -LA steag înseamnă ASCII format și -X denotă hexazecimal format.

Pentru a vizualiza conținutul următorului pachet de rețea capturat de sistem:

tcpdump --interface any -c 1 -A
tcpdump --interface any -c 1 -x

În legătură cu: Ce este pierderea pachetelor și cum să-i remedi cauza?

6. Salvați datele de captură într-un fișier

Dacă doriți să salvați datele de captare în scopuri de referință, tcpdump este acolo pentru a vă ajuta. Treci doar -în semnalizați cu comanda implicită pentru a scrie ieșirea într-un fișier în loc să o afișați pe ecran.

tcpdump --interface any -c 10 -w data.pcap

The .pcap extensia de fișier înseamnă captarea pachetelor date. De asemenea, puteți emite comanda menționată mai sus în modul detaliat folosind -v steag.

tcpdump --interface any -c 10 -w data.pcap -v

Pentru a citi un .pcap utilizând tcpdump, utilizați fișierul -r steag urmat de calea fișierului. The -r înseamnă Citit .

cum să transferați automat datele de la Excel la Word
tcpdump -r data.pcap

De asemenea, puteți filtra pachetele de rețea din pachetele de date salvate în fișier.

tcpdump -r data.pcap port 80

Monitorizarea traficului de rețea pe Linux

Dacă vi s-a atribuit sarcina de a administra un server Linux, atunci comanda tcpdump este un instrument excelent de inclus în arsenalul dvs. Puteți remedia cu ușurință problemele legate de rețea prin captarea pachetelor transmise în rețea în timp real.

Dar înainte de toate acestea, dispozitivul dvs. trebuie să fie conectat la internet. Pentru începătorii Linux, chiar conectarea cu Wi-Fi prin linia de comandă poate fi un pic provocatoare. Dar dacă utilizați instrumentele potrivite, este foarte rapid.

Acțiune Acțiune Tweet E-mail Cum să vă conectați la Wi-Fi prin terminalul Linux cu Nmcli

Doriți să vă conectați la o rețea Wi-Fi prin linia de comandă Linux? Iată ce trebuie să știți despre comanda nmcli.

Citiți în continuare
Subiecte asemănătoare
  • Linux
  • Securitate
  • Rețea criminalistică
Despre autor Deepesh Sharma(79 articole publicate)

Deepesh este Junior Editor pentru Linux la MUO. El scrie ghiduri informaționale pe Linux, cu scopul de a oferi o experiență fericită tuturor noilor veniți. Nu sunt sigur de filme, dar dacă vrei să vorbești despre tehnologie, el este tipul tău. În timpul liber, îl poți găsi citind cărți, ascultând diferite genuri muzicale sau cântând la chitară.

Mai multe de la Deepesh Sharma

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona