Hoe tcpdump te gebruiken en 6 voorbeelden

Hoe tcpdump te gebruiken en 6 voorbeelden

Probeert u datapakketten vast te leggen om het verkeer op uw netwerk te analyseren? Misschien bent u een serverbeheerder die een probleem is tegengekomen en de verzonden gegevens op het netwerk wil controleren. Wat de situatie ook is, het tcpdump Linux-hulpprogramma is wat je nodig hebt.





In dit artikel zullen we het tcpdump-commando in detail bespreken, samen met enkele handleidingen voor het installeren en gebruiken van tcpdump op uw Linux-systeem.





Wat is het tcpdump-commando?

Tcpdump is een krachtige tool voor netwerkbewaking waarmee een gebruiker pakketten en verkeer op een netwerk efficiënt kan filteren. U kunt gedetailleerde informatie krijgen met betrekking tot TCP/IP en de pakketten die op uw netwerk worden verzonden. Tcpdump is een opdrachtregelprogramma, wat betekent dat u het op Linux-servers kunt uitvoeren zonder beeldscherm.





Systeembeheerders kunnen het hulpprogramma tcpdump ook integreren met: cron om verschillende taken zoals loggen te automatiseren. Omdat de talrijke functies het behoorlijk veelzijdig maken, werkt tcpdump zowel als een probleemoplossing als een beveiligingstool.

Hoe tcpdump op Linux te installeren

Hoewel tcpdump meestal vooraf op uw systeem is geïnstalleerd, worden sommige Linux-distributies niet met het pakket meegeleverd. Daarom moet u het hulpprogramma mogelijk handmatig op uw systeem installeren.



U kunt controleren of tcpdump op uw systeem is geïnstalleerd met behulp van de die opdracht.

which tcpdump

Als de uitvoer een mappad weergeeft ( /usr/bin/tcpdump ), dan heeft uw systeem het pakket geïnstalleerd. Als dit echter niet het geval is, kunt u dit eenvoudig doen met de standaardpakketbeheerder op uw systeem.





Om tcpdump te installeren op op Debian gebaseerde distributies zoals Ubuntu:

sudo apt-get install tcpdump

Het installeren van tcpdump op CentOS is ook eenvoudig.





sudo yum install tcpdump

Op Arch-gebaseerde distributies:

sudo pacman -S tcpdump

Om op Fedora te installeren:

sudo dnf install tcpdump

Merk op dat het tcpdump-pakket vereist: libcap als een afhankelijkheid, dus zorg ervoor dat u het ook op uw systeem installeert.

Tcpdump-voorbeelden om netwerkpakketten op Linux vast te leggen

Nu je tcpdump met succes op je Linux-machine hebt geïnstalleerd, is het tijd om enkele pakketten te controleren. Aangezien tcpdump superuser-machtigingen vereist om de meeste bewerkingen uit te voeren, moet u toevoegen: sudo naar uw commando's.

1. Lijst met alle netwerkinterfaces

Om te controleren welke netwerkinterfaces beschikbaar zijn om vast te leggen, gebruikt u de -NS vlag met de opdracht tcpdump.

tcpdump -D

passeren van de --lijst-interfaces flag als argument zal dezelfde output teruggeven.

tcpdump --list-interfaces

De uitvoer is een lijst met alle netwerkinterfaces die op uw systeem aanwezig zijn.

Nadat u de lijst met netwerkinterfaces hebt gekregen, is het tijd om uw netwerk te bewaken door pakketten op uw systeem vast te leggen. Hoewel u kunt specificeren welke interface u wilt gebruiken, ieder argument geeft tcpdump de opdracht om netwerkpakketten vast te leggen met behulp van een actieve interface.

tcpdump --interface any

Het systeem geeft de volgende uitvoer weer.

hoe gif als achtergrond te gebruiken

Verwant: Wat is het Open Systems Interconnection Model?

2. Het tcpdump-uitvoerformaat

Vanaf de derde regel geeft elke regel van de uitvoer een specifiek pakket aan dat is vastgelegd door tcpdump. Zo ziet de uitvoer van een enkel pakket eruit.

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

Houd er rekening mee dat niet alle pakketten op deze manier worden vastgelegd, maar dit is het algemene formaat dat door de meeste wordt gevolgd.

De uitvoer bevat de volgende informatie.

  1. Tijdstempel van het ontvangen pakket
  2. Interfacenaam
  3. Pakketstroom
  4. Naam van het netwerkprotocol
  5. IP-adres en poortgegevens
  6. TCP-vlaggen
  7. Het volgnummer van de gegevens in het pakket
  8. Ack-gegevens
  9. Venstergrootte
  10. Pakketlengte:

Het eerste veld ( 17: 00: 25.369138 ) geeft het tijdstempel weer wanneer uw systeem het pakket heeft verzonden of ontvangen. De geregistreerde tijd wordt geëxtraheerd uit de lokale tijd van uw systeem.

hoe i/o-apparaatfout op te lossen

Het tweede en derde veld geven de gebruikte interface en de stroom van het pakket aan. In het bovenstaande fragment, wlp0s20f3 is de naam van de draadloze interface en Uit is de pakketstroom.

Het vierde veld bevat informatie met betrekking tot de naam van het netwerkprotocol. Over het algemeen vindt u twee protocollen: IK P en IP6 , waarbij IP staat voor IPV4 en IP6 voor IPV6.

Het volgende veld bevat de IP-adressen of de naam van het bron- en bestemmingssysteem. De IP-adressen worden gevolgd door het poortnummer.

Het zesde veld in de uitvoer bestaat uit TCP-vlaggen. Er zijn verschillende vlaggen die worden gebruikt in de tcpdump-uitvoer.

Vlagnaam:WaardeBeschrijving
ZICHTSVerbinding gestart
EINDEFVerbinding voltooid
DUWPGegevens worden gepusht
RSTRVerbinding is gereset
HELAAS.Erkenning

De uitvoer kan ook een combinatie van meerdere TCP-vlaggen bevatten. Bijvoorbeeld, VLAG [v.] staat voor een FIN-ACK-pakket.

Als we verder gaan in het uitvoerfragment, bevat het volgende veld het volgnummer ( vervolg 196:568 ) van de gegevens in het pakket. Het eerste pakket heeft altijd een positief geheel getal en de volgende pakketten gebruiken het relatieve volgnummer om de gegevensstroom te verbeteren.

Het volgende veld bevat het bevestigingsnummer ( ack 1 ), of eenvoudig Ack-nummer. Het pakket dat in de machine van de afzender is vastgelegd, heeft 1 als bevestigingsnummer. Aan de kant van de ontvanger is het Ack-nummer de waarde van het volgende pakket.

Het negende veld in de uitvoer herbergt de venstergrootte ( win 309 ), wat het aantal bytes is dat beschikbaar is in de ontvangende buffer. Er zijn verschillende andere velden die de venstergrootte volgen, waaronder de maximale segmentgrootte (MSS).

Het laatste veld ( lengte 33 ) bevat de lengte van het totale pakket dat is vastgelegd door tcpdump.

3. Beperk het aantal vastgelegde pakketten

Wanneer u de opdracht tcpdump voor de eerste keer uitvoert, merkt u misschien dat het systeem netwerkpakketten blijft vastleggen totdat u een onderbrekingssignaal doorgeeft. U kunt dit standaardgedrag overschrijven door vooraf het aantal pakketten op te geven dat u wilt vastleggen met behulp van de -C vlag.

tcpdump --interface any -c 10

De bovengenoemde opdracht zal tien pakketten van elke actieve netwerkinterface vastleggen.

4. Pakketten filteren op basis van velden

Wanneer u een probleem oplost, maakt het niet eenvoudiger om een ​​groot blok tekstuitvoer op uw terminal te krijgen. Dat is waar de filterfunctie in tcpdump in het spel komt. U kunt de pakketten filteren op verschillende velden, waaronder de host, het protocol, het poortnummer en meer.

Om alleen TCP-pakketten vast te leggen, typt u:

tcpdump --interface any -c 5 tcp

Evenzo, als u de uitvoer wilt filteren met behulp van het poortnummer:

tcpdump --interface any -c 5 port 50

De bovengenoemde opdracht haalt alleen pakketten op die via de opgegeven poort zijn verzonden.

Om de pakketdetails voor een bepaalde host te krijgen:

tcpdump --interface any -c 5 host 112.123.13.145

Als u pakketten wilt filteren die door een specifieke host zijn verzonden of ontvangen, gebruikt u de src of enzovoort argument met het commando.

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

U kunt ook de logische operatoren gebruiken en en of om twee of meer uitdrukkingen te combineren. Om bijvoorbeeld pakketten te krijgen die bij het bron-IP horen 112.123.13.145 en gebruik de poort 80 :

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

Complexe uitdrukkingen kunnen worden gegroepeerd met behulp van haakjes als volgt:

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

5. Bekijk de inhoud van het pakket

U kunt de -TOT en -x vlaggen met de opdracht tcpdump om de inhoud van het netwerkpakket te analyseren. De -TOT vlag staat voor ASCII formaat en -x geeft aan hexadecimaal formaat.

De inhoud van het volgende netwerkpakket bekijken dat door het systeem is vastgelegd:

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

Gerelateerd: Wat is pakketverlies en hoe kan de oorzaak worden verholpen?

6. Opnamegegevens opslaan in een bestand

Als u de vastgelegde gegevens voor referentiedoeleinden wilt opslaan, is tcpdump er om u te helpen. Geef gewoon door -in vlag met de standaardopdracht om de uitvoer naar een bestand te schrijven in plaats van deze op het scherm weer te geven.

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

De .pcap bestandsextensie staat voor pakketopname gegevens. U kunt de bovengenoemde opdracht ook in uitgebreide modus geven met behulp van de -v vlag.

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

om te lezen .pcap bestand met tcpdump, gebruik de -R vlag gevolgd door het bestandspad. De -R betekent Lezen .

windows 10 update-assistent blijft opnieuw opstarten
tcpdump -r data.pcap

U kunt ook netwerkpakketten filteren op basis van de pakketgegevens die in het bestand zijn opgeslagen.

tcpdump -r data.pcap port 80

Netwerkverkeer controleren op Linux

Als je de taak hebt gekregen om een ​​Linux-server te beheren, dan is de opdracht tcpdump een geweldig hulpmiddel om in je arsenaal op te nemen. U kunt netwerkgerelateerde problemen eenvoudig oplossen door pakketten die op uw netwerk worden verzonden in realtime vast te leggen.

Maar voor dat alles moet uw apparaat verbonden zijn met internet. Voor Linux-beginners kan zelfs verbinding maken met wifi via de opdrachtregel een beetje uitdagend zijn. Maar als u de juiste tools gebruikt, is het een fluitje van een cent.

Deel Deel Tweeten E-mail Verbinding maken met wifi via de Linux-terminal met Nmcli

Wilt u verbinding maken met een Wi-Fi-netwerk via de Linux-opdrachtregel? Dit is wat u moet weten over de opdracht nmcli.

Lees volgende
Gerelateerde onderwerpen
  • Linux
  • Veiligheid
  • Forensisch netwerk
Over de auteur Deepesh Sharma(79 artikelen gepubliceerd)

Deepesh is de Junior Editor voor Linux bij MUO. Hij schrijft informatieve handleidingen over Linux, met als doel een zalige ervaring te bieden aan alle nieuwkomers. Ik weet niet zeker van films, maar als je over technologie wilt praten, is hij jouw man. In zijn vrije tijd kun je hem boeken zien lezen, naar verschillende muziekgenres luisteren of zijn gitaar spelen.

Meer van Deepesh Sharma

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren