Sådan bruges tcpdump og 6 eksempler

Sådan bruges tcpdump og 6 eksempler

Prøver du at fange datapakker for at analysere trafik på dit netværk? Måske er du en serveradministrator, der er stødt på et problem og ønsker at overvåge overførte data på netværket. Uanset situationen er tcpdump Linux -værktøjet, hvad du har brug for.





I denne artikel vil vi diskutere tcpdump -kommandoen i detaljer sammen med nogle guider til, hvordan du installerer og bruger tcpdump på dit Linux -system.





Hvad er tcpdump -kommandoen?

Tcpdump er et kraftfuldt værktøj til netværksovervågning, der giver en bruger mulighed for effektivt at filtrere pakker og trafik på et netværk. Du kan få detaljerede oplysninger om TCP/IP og de pakker, der transmitteres på dit netværk. Tcpdump er et kommandolinjeværktøj, hvilket betyder, at du kan køre det på Linux-servere uden skærm.





Systemadministratorer kan også integrere tcpdump -værktøjet med cron for at automatisere forskellige opgaver såsom logning. Da dens mange funktioner gør det ret alsidigt, fungerer tcpdump både som en fejlfinding og et sikkerhedsværktøj.

Sådan installeres tcpdump på Linux

Mens du for det meste finder tcpdump forudinstalleret på dit system, leveres nogle Linux -distributioner ikke med pakken. Derfor skal du muligvis installere værktøjet manuelt på dit system.



Du kan kontrollere, om tcpdump er installeret på dit system ved hjælp af hvilken kommando.

which tcpdump

Hvis output viser en bibliotekssti ( /usr/bin/tcpdump ), så har systemet installeret pakken. Men hvis ikke, kan du nemt gøre det ved hjælp af standardpakkehåndteringen på dit system.





Sådan installeres tcpdump på Debian-baserede distributioner såsom Ubuntu:

sudo apt-get install tcpdump

Det er også let at installere tcpdump på CentOS.





sudo yum install tcpdump

På Arch-baserede distributioner:

sudo pacman -S tcpdump

Sådan installeres på Fedora:

sudo dnf install tcpdump

Bemærk, at tcpdump -pakken kræver libcap som en afhængighed, så sørg for at du også installerer det på dit system.

Tcpdump Eksempler til at fange netværkspakker på Linux

Nu hvor du har installeret tcpdump på din Linux -maskine, er det tid til at overvåge nogle pakker. Da tcpdump kræver superbruger tilladelser til at udføre de fleste operationer, skal du tilføje sudo til dine kommandoer.

1. Liste over alle netværksgrænseflader

For at kontrollere, hvilke netværksgrænseflader der er tilgængelige til at fange, skal du bruge -D flag med kommandoen tcpdump.

tcpdump -D

Passerer --list-grænseflader flag som et argument returnerer det samme output.

tcpdump --list-interfaces

Outputtet vil være en liste over alle de netværksgrænseflader, der findes på dit system.

Efter at have fået listen over netværksgrænseflader, er det tid til at overvåge dit netværk ved at fange pakker på dit system. Selvom du kan angive, hvilken grænseflade du vil bruge, vil nogen argument kommandoer tcpdump til at fange netværkspakker ved hjælp af en hvilken som helst aktiv grænseflade.

tcpdump --interface any

Systemet viser følgende output.

hvordan opretter du en PayPal -konto til at modtage betalinger?

Relaterede: Hvad er Open Systems Interconnection Model?

2. Outputformatet tcpdump

Fra den tredje linje angiver hver linje i output en bestemt pakke fanget af tcpdump. Sådan ser output fra en enkelt pakke ud.

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

Husk, at ikke alle pakker fanges på denne måde, men dette er det generelle format efterfulgt af de fleste af dem.

Outputtet indeholder følgende oplysninger.

  1. Tidsstempel for den modtagne pakke
  2. Grænseflade navn
  3. Pakkestrøm
  4. Navn på netværksprotokollen
  5. IP -adresse og portoplysninger
  6. TCP -flag
  7. Sekvensnummeret af data i pakken
  8. Tak for data
  9. Vinduesstørrelse
  10. Pakkelængde

Det første felt ( 17.00: 25.369138 ) viser tidsstemplet, da dit system sendte eller modtog pakken. Den registrerede tid udtrækkes fra dit systems lokale tid.

siger jeg er tilsluttet, men intet internet

Det andet og tredje felt angiver den anvendte grænseflade og pakkens flow. I uddraget ovenfor, wlp0s20f3 er navnet på den trådløse grænseflade og Ud er pakkestrømmen.

Det fjerde felt indeholder oplysninger om netværksprotokolnavnet. Generelt finder du to protokoller- IP og IP6 , hvor IP betegner IPV4 og IP6 er for IPV6.

Det næste felt indeholder IP -adresserne eller navnet på kilde- og destinationssystemet. IP -adresserne efterfølges af portnummeret.

Det sjette felt i output består af TCP -flag. Der er forskellige flag, der bruges i tcpdump -output.

FlagnavnVærdiBeskrivelse
SYNSForbindelsen startede
ENDEFForbindelsen er afsluttet
SKUBBEPData skubbes
RSTRForbindelsen nulstilles
ALAS.Anerkendelse

Outputtet kan også indeholde en kombination af flere TCP -flag. For eksempel, FLAG [f.] står for en FIN-ACK-pakke.

Når vi bevæger os længere i output -kodestykket, indeholder det næste felt sekvensnummeret ( seq 196: 568 ) af dataene i pakken. Den første pakke har altid en positiv heltalværdi, og de efterfølgende pakker bruger det relative sekvensnummer til at forbedre datastrømmen.

Det næste felt indeholder kvitteringsnummeret ( akk 1 ) eller simpelt Ack -nummer. Pakken fanget i afsenderens maskine har 1 som bekræftelsesnummer. På modtagerens ende er Ack -nummeret værdien af ​​den næste pakke.

Det niende felt i udgangen rummer vinduesstørrelsen ( vinde 309 ), som er antallet af bytes, der er tilgængelige i den modtagende buffer. Der er flere andre felter, der følger vinduesstørrelsen, herunder den maksimale segmentstørrelse (MSS).

Det sidste felt ( længde 33 ) indeholder længden af ​​den samlede pakke fanget af tcpdump.

3. Begræns antallet af fangede pakker

Mens du kører tcpdump -kommandoen for første gang, vil du muligvis bemærke, at systemet fortsætter med at fange netværkspakker, indtil du sender et afbrydelsessignal. Du kan tilsidesætte denne standardadfærd ved at angive antallet af pakker, du vil fange på forhånd ved hjælp af -c flag.

tcpdump --interface any -c 10

Den førnævnte kommando vil fange ti pakker fra enhver aktiv netværksgrænseflade.

4. Filtrer pakker baseret på felter

Når du fejlfinder et problem, gør det ikke lettere at få en stor blok tekstoutput på din terminal. Det er her, filtreringsfunktionen i tcpdump spiller ind. Du kan filtrere pakkerne efter forskellige felter, herunder vært, protokol, portnummer og mere.

For kun at fange TCP -pakker skal du skrive:

tcpdump --interface any -c 5 tcp

På samme måde, hvis du vil filtrere output ved hjælp af portnummeret:

tcpdump --interface any -c 5 port 50

Den ovennævnte kommando vil kun hente pakker, der sendes via den angivne port.

Sådan får du pakkedetaljerne for en bestemt vært:

tcpdump --interface any -c 5 host 112.123.13.145

Hvis du vil filtrere pakker, der er sendt eller modtaget af en bestemt vært, skal du bruge src eller etc argument med kommandoen.

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

Du kan også bruge de logiske operatorer og og eller at kombinere to eller flere udtryk sammen. For eksempel at få pakker, der tilhører kilde -IP'en 112.123.13.145 og brug porten 80 :

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

Komplekse udtryk kan grupperes sammen ved hjælp af parenteser som følger:

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

5. Se pakkens indhold

Du kan bruge -TIL og -x markerer med kommandoen tcpdump for at analysere netværkspakkens indhold. Det -TIL flag står for ASCII format og -x betegner hexadecimal format.

Sådan får du vist indholdet af den næste netværkspakke, der er taget af systemet:

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

Relateret: Hvad er tab af pakker, og hvordan løses årsagen?

6. Gem Capture Data i en fil

Hvis du vil gemme indsamlingsdataene til referenceformål, er tcpdump der for at hjælpe dig. Bare passér -i flag med standardkommandoen til at skrive output til en fil i stedet for at vise det på skærmen.

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

Det .pcap filtypenavn står for pakkeopsamling data. Du kan også udstede den førnævnte kommando i detaljeret tilstand ved hjælp af -v flag.

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

At læse a .pcap fil ved hjælp af tcpdump, brug -r flag efterfulgt af filstien. Det -r står for Læs .

wifi har ikke en gyldig ip -konfigurationsrettelse
tcpdump -r data.pcap

Du kan også filtrere netværkspakker fra de pakkedata, der er gemt i filen.

tcpdump -r data.pcap port 80

Overvågning af netværkstrafik på Linux

Hvis du har fået tildelt opgaven at administrere en Linux -server, så er tcpdump -kommandoen et godt værktøj til at inkludere i dit arsenal. Du kan let løse netværksrelaterede problemer ved at fange pakker, der sendes på dit netværk i realtid.

Men før alt det skal din enhed være forbundet til internettet. For Linux-begyndere kan selv forbindelse til Wi-Fi via kommandolinjen være lidt udfordrende. Men hvis du bruger de rigtige værktøjer, er det et øjeblik.

Del Del Tweet E -mail Sådan opretter du forbindelse til Wi-Fi via Linux-terminalen med Nmcli

Vil du oprette forbindelse til et Wi-Fi-netværk via Linux-kommandolinjen? Her er hvad du behøver at vide om kommandoen nmcli.

Læs Næste
Relaterede emner
  • Linux
  • Sikkerhed
  • Network Forensics
Om forfatteren Deepesh Sharma(79 artikler udgivet)

Deepesh er Junior Editor for Linux på MUO. Han skriver informationsguider om Linux med det formål at give alle tilflyttere en salig oplevelse. Ikke sikker på film, men hvis du vil tale om teknologi, er han din fyr. I fritiden kan du finde ham læse bøger, lytte til forskellige musikgenrer eller spille sin guitar.

Mere fra Deepesh Sharma

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere