tcpdump

En guide til netværkstrafikanalyseværktøj TCPDUMP

En guide til netværkstrafikanalyseværktøj TCPDUMP

Tcpdump er et netværkspakke, der snuser kommandolinjeværktøjet. Det bruges mest til fejlfinding af netværk og test af sikkerhedsproblemer. På trods af fraværet af en grafisk brugergrænseflade er det det mest populære, kraftfulde og alsidige kommandolinjeprogram.

Det er hjemmehørende i Linux, således at de fleste Linux-distributioner installerer det som en del af standard OS. Tcpdump er et libpcap-interface-program, som er et bibliotek til netværksdatagramfangst.

Denne artikel afmystificerer tcpdump ved at vise, hvordan man fanger, læser og analyserer fanget netværkstrafik i dette værktøj. Vi vil senere bruge vores forståelse til at inspicere datapakker med de avancerede TCP-flagfiltre.

Installation af Tcpdump

Tcpdump-standardinstallation i din distro afhænger af de valg, der er valgt under installationsprocessen. I tilfælde af brugerdefineret installation er det muligt, at pakken ikke er tilgængelig. Du kan kontrollere tcpdump-installationen ved hjælp af dpkg kommando med “-s" mulighed.

ubuntu $ ubuntu: ~ $ dpkg -s tcpdump

Eller brug kommandoen "sudo apt-get install tcpdump" til at installere tcpdump i Ubuntu Linux.

Indfangning af pakker i Tcpdump:

For at starte fangstprocessen skal vi først finde vores arbejdsgrænseflade ved hjælp af “ifconfig”Kommando. Eller vi kan liste alle tilgængelige grænseflader ved hjælp af tcpdump kommando med “-D" mulighed.

ubuntu $ ubuntu: ~ $ tcpdump -D

For at starte fangstprocessen kan du bruge syntaksen;

tcpdump [-optioner] [udtryk]

I kommandoen nedenfor bruger vi f.eks-jeg”Mulighed for at fange trafik på“enp0s3”Interface, med en“-c”Flag for at begrænse de fangede pakker og skrive“-w”Det til en test_fangst.pcap fil.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -c 20 -w / tmp / test_capture.pcap

På samme måde kan du bruge forskellige filterkombinationer til at isolere trafik efter dine krav. Et sådant eksempel inkluderer registrering af netværksdata, der forlader og ankommer til værten ved hjælp af vært kommando til en bestemt Havn. Desuden har jeg brugt “-n”Flag for at forhindre tcpdump i at opfange DNS-opslag. Dette flag er meget nyttigt til at mætte trafik under fejlfinding af netværket.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -c 20 vært 10.0.2.15 og dst-port 80 -w / tmp / test_capture1.pcap
tcpdump: lytter på enp0s3, link-type EN10MB (Ethernet), capture størrelse 262144 bytes
20 pakker fanget
21 pakker modtaget med filter
0 pakker droppet af kernen

Vi bruger “og”Kommando til kun at fange pakker, der indeholder vært 10.0.2.15 og destinationsport 80. Tilsvarende kan forskellige andre filtre anvendes for at lette fejlfindingsopgaver.

Hvis du ikke ønsker at bruge “-c”Flag for at begrænse fangsttrafik, kan du bruge et interrupt signal, dvs.e., Ctrl + C, for at stoppe isolationsprocessen.

Læsning af Tcpdump-filer

Læsning af tcpdump-fangede filer kan være meget overvældende. Som standard tildeler tcp navne til IP-adresser og porte. Vi bruger “-r”Flag for at læse vores allerede erobrede fil test_fangst.pcap gemt i / tmp folder. Vi sender produktionen til akavet kommando til kun at udsende kildens IP-adresse og porte og føre den til kommandoen hoved for kun at vise de første 5 poster.

ubuntu $ ubuntu: ~ $ sudo tcpdump -r / tmp / test_capture1.pcap | awk -F “” 'udskriv $ 3' | hoved -5
læsning fra fil / tmp / test_capture.pcap, link-type EN10MB (Ethernet)
IP ubuntu.53298
IP ubuntu.53298
IP ubuntu.53298
IP ubuntu.53298
IP ubuntu.53298

Det anbefales dog at bruge IP-adresser og porte i tal for at løse netværksproblemer. Vi deaktiverer opløsning af IP-navn med “-n”Flag og portnavne med“-nn“.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -n
tcpdump: detaljeret output undertrykt, brug -v eller -vv til fuld protokol afkodning
lytter på enp0s3, link-type EN10MB (Ethernet), capture størrelse 262144 bytes
20:08:22.146354 IP 10.0.2.15.54080> 172.67.39.148.443: Flag [s.], sek. 1276027591: 1276027630, ack 544039114, win 63900, længde 39
20:08:22.146745 IP 10.0.2.15.43456> 54.204.39.132.443: Flag [s.], seq 3381018839: 3381018885, ack 543136109, win 65535, længde 46
20:08:22.147506 IP 172.67.39.148.443> 10.0.2.15.54080: Flag [.], ack 39, vind 65535, længde 0
20:08:22.147510 IP 54.204.39.132.443> 10.0.2.15.43456: Flag [.], ack 46, vind 65535, længde 0
20:08:22.202346 IP 216.58.209.142.443> 10.0.2.15.41050: Flag [s.], seq 502925703: 502925826, ack 1203118935, win 65535, længde 123
20:08:22.202868 IP 10.0.2.15.41050> 216.58.209.142.443: Flag [s.], se 1:40, ack 123, win 65535, længde 39

Forståelse af fanget output

Tcpdump registrerer mange protokoller, herunder UDP, TCP, ICMP osv. Det er ikke let at dække dem alle her. Det er dog vigtigt at forstå, hvordan oplysningerne vises, og hvilke parametre de inkluderer.

Tcpdump viser hver pakke i en linje med et tidsstempel og information med hensyn til protokollen. Generelt er formatet for en TCP-protokol som følger:

. > .: , , , , ,

Lad os forklare et af de fangede pakkefelter efter felt:

20:08:22.146354 IP 10.0.2.15.54080> 172.67.39.148.443: Flag [s.], sek. 1276027591: 1276027630, ack 544039114, win 63900, længde 39
  • 20:08:22.146354: Tidsstempel for den fangede pakke
  • IP: Netværkslagsprotokol.
  • 10.0.2.15.54080: Dette felt indeholder kilde-IP-adressen og kildeporten.
  • 172.67.39.148.443: Dette felt repræsenterer destinations-IP-adressen og portnummeret.
  • Flag [s.] /: Flagene repræsenterer forbindelsestilstanden. I dette tilfælde [P.] angiver PUSH-kvitteringspakke. Flagfeltet indeholder også nogle andre værdier som:
    1. S: SYN
    2. P: TRYK
    3. [.]: ACK
    4. F: FIN
    5. [S.]: SYN_ACK
    6. R: RST
  • seq 1276027591: 1276027630: Sekvensnummeret i det første: det sidste format angiver antallet af data i pakken. Bortset fra den første pakke, hvor tallene er i absolutte, har de efterfølgende pakker relative tal. I dette tilfælde betyder tallene her, at pakken indeholder databytes fra 1276027591 til 1276027630.
  • ack 544039114: Bekræftelsesnummeret viser det næste forventede datasekvensnummer.
  • vind 63900: Vinduesstørrelsen viser antallet af tilgængelige bytes i den modtagne buffer.
  • længde 39: Længden af ​​nyttelastdata i byte.

Avancerede filtre

Nu kan vi bruge nogle avancerede overskriftsfilterindstillinger til kun at vise og analysere datapakker. I en hvilken som helst TCP-pakke begynder TCP-flagene fra den 14. byte, således at PSH og ACK er repræsenteret af 4. og 5. bit.

Vi kan bruge disse oplysninger ved at slå disse bits til 00011000 eller 24 for at få vist datapakker med kun PSH- og ACK-flag. Vi videregiver dette tal til tcpdump med filteret “tcp [13] = 24“, Bemærk, at matrixindekset i TCP begynder med nul.

Vi filtrerer denne pakke fra vores tekst_fangst.pcap fil og brug -EN mulighed for at vise alle pakkeoplysningerne for dig.

På samme måde kan du filtrere nogle andre flagpakker ud ved hjælp af “Tcp [13] = 8” og “tcp [13] = 2” kun til PSH- og SYN-flag osv.

ubuntu $ ubuntu: ~ $ sudo tcpdump -A 'tcp [13] = 24' -r / tmp / test_capture.pcap
læsning fra fil / tmp / test_capture.pcap, link-type EN10MB (Ethernet)
19:26:17.827902 IP ubuntu.53298> 32.121.122.34.bc.googlebrugerindhold.com.http: Flag [P.], seq 4286571276: 4286571363, ack 252096002, win 64240, længde 87: HTTP: GET / HTTP / 1.1
E…:?@[email protected].
... "zy .2.P… P… GET / HTTP / 1.1
Vært: tilslutningskontrol.ubuntu.com
Acceptere: */*
Forbindelse: luk

Konklusion

I denne artikel har vi introduceret dig til nogle af de vigtigste emner i tcpdump. Tcpdump kombineret med kraften i CLI kan være til stor hjælp i netværksfejlfinding, automatisering og sikkerhedsstyring. Når de er undersøgt og kombineret, kan dens filtre og kommandolinjemuligheder bidrage meget til dine daglige fejlfindings- og automatiseringsopgaver og den overordnede forståelse af netværket.

Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...
5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...