Forsøger 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 transmitterede data på netværket. Uanset situationen er, er tcpdump Linux-værktøjet det, du har brug for.

I denne artikel vil vi diskutere tcpdump-kommandoen detaljeret sammen med nogle vejledninger om, hvordan du installerer og bruger tcpdump på dit Linux-system.

Hvad er tcpdump-kommandoen?

Tcpdump er et kraftfuldt netværksovervågningsværktøj, der giver brugeren mulighed for effektivt at filtrere pakker og trafik på et netværk. Du kan få detaljerede oplysninger relateret til TCP / IP og de pakker, der sendes 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 de mange funktioner gør det ret alsidigt, fungerer tcpdump som en fejlfinding såvel som et sikkerhedsværktøj.

instagram viewer

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 hjælpeprogrammet manuelt på dit system.

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

hvilken tcpdump

Hvis output viser en biblioteksti (/usr/bin/tcpdump), så har dit system pakken installeret. Men hvis ikke, kan du gøre det let 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

Installation af tcpdump på CentOS er også let.

sudo yum installer tcpdump

På Arch-baserede distributioner:

sudo pacman -S tcpdump

Sådan installeres på Fedora:

sudo dnf installerer tcpdump

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

Tcpdump-eksempler til registrering af netværkspakker på Linux

Nu hvor du har installeret tcpdump med succes på din Linux-maskine, er det tid til at overvåge nogle pakker. Da tcpdump kræver superbrugertilladelser for at udføre de fleste af operationerne, 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 - liste-grænseflader flag som argument returnerer den samme output.

tcpdump - liste-grænseflader

Outputtet vil være en liste over alle 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, er nogen argument kommandoer tcpdump til at fange netværkspakker ved hjælp af en hvilken som helst aktiv grænseflade.

tcpdump - interface nogen

Systemet viser følgende output.

Relaterede: Hvad er modellen for åbne systemer samtrafik?

2. Tcpdump-outputformat

Startende fra den tredje linje angiver hver linje i outputen en bestemt pakke fanget af tcpdump. Her er hvordan output fra en enkelt pakke ser ud.

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

Husk, at ikke alle pakker er fanget 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. Interface navn
  3. Pakke flow
  4. Netværksprotokollens navn
  5. IP-adresse og portoplysninger
  6. TCP-flag
  7. Sekvensnummeret på data i pakken
  8. Ack-data
  9. Vinduesstørrelse
  10. Pakke længde

Det første felt (17:00:25.369138) viser tidsstemplet, når dit system sendte eller modtog pakken. Den registrerede tid hentes fra dit systems lokale tid.

Det andet og tredje felt angiver den anvendte grænseflade og strømmen af ​​pakken. I uddraget ovenfor wlp0s20f3 er navnet på den trådløse grænseflade og Ud er pakkeflowet.

Det fjerde felt indeholder information relateret til 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-adresser eller navnet på kilden og destinationssystemet. IP-adresserne efterfølges af portnummeret.

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

Flagnavn Værdi Beskrivelse
SYN S Forbindelsen startede
FIN F Forbindelsen afsluttet
SKUBBE P Data skubbes
RST R Forbindelsen nulstilles
ACK . 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 outputuddraget, indeholder det næste felt sekvensnummeret (seq 196: 568) af dataene i pakken. Den første pakke har altid en positiv heltal, og de efterfølgende pakker bruger det relative sekvensnummer til at forbedre datastrømmen.

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

Det niende felt i udgangen rummer vinduesstørrelsen (vind 309), som er antallet af tilgængelige bytes i den modtagende buffer. Der er flere andre felter, der følger vinduesstørrelsen, inklusive 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, bemærker du muligvis, at systemet fortsætter med at fange netværkspakker, indtil du sender et afbrydesignal. 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 enhver -c 10

Den førnævnte kommando fanger ti pakker fra en hvilken som helst aktiv netværksgrænseflade.

4. Filtrer pakker baseret på felter

Når du fejler et problem, bliver det ikke lettere at få en stor blok tekstoutput på din terminal. Det er her filtreringsfunktionen i tcpdump kommer i spil. Du kan filtrere pakkerne efter forskellige felter, herunder værten, protokollen, portnummeret og mere.

For kun at fange TCP-pakker, skriv:

tcpdump - grænseflade enhver -c 5 tcp

Tilsvarende, hvis du vil filtrere output ved hjælp af portnummeret:

tcpdump - interface enhver -c 5 port 50

Ovennævnte kommando henter kun pakker transmitteret gennem den angivne port.

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

tcpdump --interface enhver -c 5 vært 112.123.13.145

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

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

Du kan også bruge de logiske operatorer og og eller for at kombinere to eller flere udtryk sammen. For eksempel for at hente pakker, der hører til kildens IP 112.123.13.145 og brug porten 80:

tcpdump - interface enhver -c 10 src 112.123.13.145 og port 80

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

tcpdump - interface enhver -c 10 "(src 112.123.13.145 eller src 234.231.23.234) og (port 45 eller port 80)"

5. Se indholdet af pakken

Du kan bruge -EN og -x flag med kommandoen tcpdump for at analysere indholdet af netværkspakken. Det -EN 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 fanget af systemet:

tcpdump --interface enhver -c 1 -A
tcpdump - grænseflade enhver -c 1 -x

Relaterede: Hvad er tab af pakke, og hvordan fikser man årsagen?

6. Gem fangstdata i en fil

Hvis du vil gemme fangstdataene til referenceformål, er tcpdump der for at hjælpe dig. Bare passere -w flag med standardkommandoen for at skrive output til en fil i stedet for at vise den på skærmen.

tcpdump - grænseflade enhver -c 10 -w data.pcap

Det .pcap filtypenavn står for pakkefangst data. Du kan også udstede ovennævnte kommando i detaljeret tilstand ved hjælp af -v flag.

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

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

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 med at administrere en Linux-server, så er kommandoen tcpdump et godt værktøj at inkludere i dit arsenal. Du kan nemt løse netværksrelaterede problemer ved at opfange pakker, der transmitteres på dit netværk i realtid.

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

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 har brug for at vide om nmcli-kommandoen.

Læs Næste

Relaterede emner
  • Linux
  • Sikkerhed
  • Netværk Forensics
Om forfatteren
Deepesh Sharma (37 artikler offentliggjort)

Deepesh er Junior Editor til Linux på MUO. Han har skrevet informativt indhold på internettet i over 3 år. I sin fritid nyder han at skrive, lytte til musik og spille sin guitar.

Mere fra Deepesh Sharma

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.