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.
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.
- Tidsstempel for den modtagne pakke
- Interface navn
- Pakke flow
- Netværksprotokollens navn
- IP-adresse og portoplysninger
- TCP-flag
- Sekvensnummeret på data i pakken
- Ack-data
- Vinduesstørrelse
- 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.
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
- Linux
- Sikkerhed
- Netværk Forensics
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.
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.