Tcpdump: hvordan man bruger det til at fange netværkstrafik på din server

Hvis du skal lave en diagnose af al netværkstrafikken på din forbindelse, uanset om den er lokal eller vendt mod internettet, er det vigtigt at bruge programmer til at fange al trafikken og analysere den senere. Et af de mest populære programmer er Wireshark, dette program er på tværs af platforme, kompatibelt med Windows, Linux, macOS og mange andre, men vi har brug for en grafisk brugergrænseflade for at få det til at fungere. I dag skal vi lære dig, hvordan du bruger tcpdump, det bedste værktøj til at fange al trafik gennem kommandolinjen i en terminal.

Hvad er tcpdump, og hvad bruges det til

tcpdump

tcpdump er et helt gratis værktøj, der giver os mulighed for at fange al netværkstrafikken fra en eller flere grænseflader, uanset om de er Ethernet, WiFi, PPPoE-grænseflader, som vi har bygget, og endda virtuelle grænseflader som dem, vi opretter, når vi bruger virtuelle private netværk. Dette program er ikke kun ansvarlig for at fange al trafikken, men vi kan også analysere den i realtid, efterhånden som den fanges, alt gennem kommandolinjen.

tcpdump er understøttet på alle Unix-baserede operativsystemer, inklusive Linux, BSD, macOS og mange andre. Selvfølgelig gør dette program brug af libpcap-biblioteket til at fange alle de pakker, der flyder gennem en pågældende grænseflade, det være sig fysisk eller virtuel. For at køre dette program på systemet er det nødvendigt at have superbrugertilladelser, da vi fanger og ser netværkstrafik, der kan være "følsom", derfor er det nødvendigt at have administratorrettigheder.

Det bedste, tcpdump har, er filtrene, vi vil være i stand til at filtrere al trafikken for kun at se, hvad der interesserer os. Filtre er udtryk, der går bag om optagelsesmulighederne og tillader os kun at vise det, vi leder efter, og ikke alt. Hvis vi ikke sætter noget filter, vil vi se al netværkstrafikken på den valgte netværksadapter.

De vigtigste anvendelser, som vi kan give til et værktøj som tcpdump, er følgende:

  • Fang alle oplysningerne og gem dem til senere undersøgelse.
  • Debug realtidsapplikationer, der bruger netværket til at kommunikere.
  • Tjek, at netværkstrafikken er som forventet under hensyntagen til dens brug.
  • Fang og læs data fra andre computere på netværket, selvom vi i dette tilfælde skulle bruge teknikker som ARP Spoofing eller lignende, hvis vi er i et switchet miljø, og vi ikke bruger tcpdump på routeren.

Når vi har set, hvad tcpdump er, og hvad det kan bruges til, skal vi installere det på vores Linux-operativsystem for at vise dig, hvordan det fungerer.

Installation i Debian og hovedindstillinger

Dette program er meget udbredt i alle Linux-baserede operativsystemer, derfor vil vi være i stand til at installere det direkte fra de officielle arkiver for hver distribution. I tilfælde af Debian skal vi sætte følgende kommando i terminalen:

sudo apt install tcpdump

Vi får noget som dette:

Når vi har det installeret, kan vi udføre følgende kommando i terminalen for at vise os hjælpen:

tcpdump -h

Hvis du har brug for meget mere information om værktøjet, se eksempler på brug og al dokumentation, så kan du få adgang til man-siderne som følger:

man tcpdump

På disse man-sider vil du være i stand til at se en omfattende beskrivelse af værktøjet, hvilken syntaks vi skal bruge, hvilke muligheder vi har til rådighed for at fange alle data og også for at filtrere den information, vi ønsker.

brugseksempler

Dette program har en lang række muligheder for at fange dataene og også vise dem, derudover har vi mulighed for at tilføje et stort antal avancerede filtre, så det kun viser os, hvad vi ønsker. Dernæst vil vi forklare nogle grundlæggende kommandoer, så du kun fanger det, der interesserer dig.

grundlæggende brug

Følgende kommando giver os mulighed for at starte programmet, hvis vi ikke angiver nogen netværksgrænseflade, vil værktøjet selv vælge en af ​​dem, der er tilgængelige i operativsystemet.

tcpdump

Hvis vi ønsker at angive en netværksgrænseflade, skal du indtaste følgende kommando:

tcpdump -i NOMBRE_INTERFAZ

Hvis vi ønsker at specificere alle netværksgrænseflader for at fange al trafik fra dem alle på én gang, så skal du sætte følgende kommando:

tcpdump -i any

Når vi fanger netværkstrafik med tcpdump, er vi måske ikke interesserede i at løse værtsnavne, men viser os snarere direkte IP-adresser. For at gøre dette kan vi sætte:

tcpdump -n

Hvis du kun vil fange et bestemt antal pakker, skal du indsætte følgende kommando:

tcpdump -c NUMERO_PAQUETES

Hvis vi ønsker at øge informationen, som den viser os gennem kommandolinjen, skal vi øge "verbose" på følgende måde:

tcpdump -i NOMBRE_INTERFAZ -v

Hvis vi vil øge det mere, tilføjer vi mere "v" efter det, som følger:

tcpdump -i NOMBRE_INTERFAZ -vvv

Denne sidste kommando giver os mulighed for at se så meget detaljeret som muligt.

Hvis vi vil gemme optagelsen i en fil, for senere at åbne den med en pakkeanalysator såsom WireShark, eller til senere analyse, skal vi sætte følgende kommando:

tcpdump -i NOMBRE_INTERFAZ -w NOMBRE_ARCHIVO

Selvfølgelig, hvis vi vil gemme alt med den maksimale verbose, vil vi sætte:

tcpdump -i NOMBRE_INTERFAZ -w NOMBRE_ARCHIVO

Opsamling af trafik via IP eller subnet

tcpdump giver os mulighed for at filtrere efter IP-adresser og endda undernet, til dette kan vi sætte følgende kommando:

tcpdump -i NOMBRE_INTERFAZ host IP

For eksempel kunne vi se trafikken fra lokalhostens IP:

tcpdump -i NOMBRE_INTERFAZ host 127.0.0.1

Vi kan også filtrere efter undernet som følger:

tcpdump -i NOMBRE_INTERFAZ net SUBRED/X

Nedenfor kan du se et eksempel på undernet:

tcpdump -i NOMBRE_INTERFAZ net 192.168.1.0/24

Vi kunne også filtrere efter oprindelse og destination, nedenfor kan du se to eksempler:

tcpdump -i NOMBRE_INTERFAZ src IP tcpdump -i NOMBRE_INTERFAZ dst IP

Med disse muligheder kan vi nemt filtrere den trafik, som vi kun ønsker at fange og vise.

Opfanger trafik efter havn og områder

Hvis du vil filtrere efter porte, enten en enkelt port eller en række porte, kan du gøre det på følgende måde:

tcpdump -i NOMBRE_INTERFAZ port NUMERO_PUERTO tcpdump -i NOMBRE_INTERFAZ portrange PUERTOINICIO PUERTOFIN

Alle disse kommandoer kan også tilføjes til tcpdump for at filtrere efter IP og porte og endda gemme hele trafikregistreringen til en pcap-fil. På denne måde kan vi sammenkæde de forskellige tilgængelige muligheder med de filtre, vi har defineret.

konklusioner

tcpdump er det essentielle værktøj til at fange pakker fra det lokale netværk med de grænseflader, vi ønsker, takket være dette program vil vi være i stand til at se al netværkstrafik på et lavt niveau gennem konsollen, og vi kan også gemme optagelser af trafik på vores harddisk eller SSD når vi vil. Takket være det store antal konfigurationsmuligheder og filtre vil vi kun kunne fange det, der interesserer os, til senere analyse med programmer som Wireshark eller direkte på lavt niveau med tshark eller lignende.

Hvis du har problemer på netværksniveau i dit lokale netværk eller server, hjælper tcpdump dig med at vide, hvilken trafik der går gennem hele netværket eller den pågældende server, og senere studere i detaljer, hvad der sker, og hvordan vi kan løse det. At fange netværkstrafik er det første skridt for at løse et problem på netværksniveau, og i dette tilfælde vil tcpdump være din bedste allierede til at løse alle problemer.