Hvordan bruke tcpdump til å overvåke nettverket vårt

Innholdsfortegnelse

I denne opplæringen skal vi se hvordan du jobber med tcpdump. Det er et opensource -verktøy for kommandolinje, det er vant til overvåke nettverket, kan vi forstå det som en analysator av pakker som passerer gjennom nettverket der du kjører programmet. Den brukes i Unix -miljøer, selv om det er en variant for Windows som heter WinDump. En opplæring om EtherApe kan være av interesse for deg, som er et verktøy for å se statusen til nettverket vårt grafisk.

I opplæringen vil vi jobbe fra Linux, spesielt i Ubuntu 16.04, for at verktøyet skal fungere, trenger vi det for å kjøre det med høye privilegier, bortsett fra visse alternativer, som vil være nødvendige.

Vi kan bruke tcpdump for forskjellige oppgaver, for eksempel feilsøking av nettverksapplikasjonene våre, lesing av dataene som sendes mellom brukere over nettverket vi er i, etc. Vi skal sette syntaksen nedenfor:

 tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX #] [-B størrelse] [-c count] [-C file_size] [-E noe: hemmelig] [-F fil] [-G sekunder] [-i grensesnitt] [-j tstamptype] [- M hemmelig] [--nummer] [-Q inn | ut | inn] [-r fil] [-s snaplen] [-presisjon med tidsstempel-presisjon] [-umiddelbar modus] [-T type] [ --versjon] [-V fil] [-w fil] [-W filnummer] [-y datalinktype] [-z kommando] [-Z bruker] [uttrykk]
Dette verktøyet har et stort antall parametere som vi kan bruke, her vil vi se noen.

Noen tcpdump -parametere

  • -TIL: Skriv ut pakkene i ASCII -kode.
  • -x: Skriv ut pakkene i heksadesimal.
  • -D: Viser tilgjengelige grensesnitt.
  • -c nummer: Det vil lukke programmet når det angitte antallet pakker er fanget opp.
  • -Jeg grensesnitt: Programmet lytter på det angitte grensesnittet.
  • -JEG: Setter grensesnittet i skjermmodus.
  • -s: Det setter ikke grensesnittet i promiskuøs modus.
  • -f fil: Utgangen er lagret i filen som vi angir.
  • -h: Viser hjelp til bruk.

Hvis vi vil se alle tilgjengelige parametere, bruker vi i Linux:

 mann tcpdump
Å bruke denne kommandoen er mer fullstendig enn hjelpen som tilbys av parameteren -h eller --hjelp, som bare ville vise oss følgende:

Vi kommer til å se 10 eksempler for å komme i gang med dette kraftige verktøyet.

MerkI nesten alle eksemplene vil du se at sudo brukes før tcpdump, som sagt før, det er nødvendig å starte det med høye privilegier, hvis du bruker terminalen som root, er det ikke nødvendig å sette noe foran tcpdump. Hvis du vil stoppe opptaket, kan du kombinere tastene:

CTRL + C

Eksempel 1
Det enkleste eksempelet ved bruk av parameteren -TIL. For dette utfører vi:

 tcpdump -A

La oss se et eksempel med litt mer innhold.

Eksempel 2
Nå skal vi filtrere etter vert, og legge til den verbose modusen med parameteren -v:

 sudo tcpdump vert 192.168.66.130 -v
Nedenfor er et bilde med kommandoen ovenfor:

For bildet har jeg laget en ping fra en annen maskin, så vi kan se ICMP. La oss gå videre til det tredje eksemplet.

Eksempel 3
I dette eksemplet skal vi se på pakkene fra samme vert, bare denne gangen pakkene som har å gjøre med port 80:

 sudo tcpdump vert 192.168.66.130 og port 80 -v
Hvis vi ser på fangsten, vil vi se noe som ligner på følgende:

Du kan se hvor enkelt dette verktøyet er å håndtere, la oss gå videre.

Eksempel 4
Vi skal bruke eksempel 3, og vi skal endre det, vi vil filtrere pakkene med opprinnelse 192.168.66.130 som går til port 80:

 sudo tcpdump src vert 192.168.66.130 og dst port 80 -v
Vi ser at vi har brukt betinget, og slik at de to betingelsene er oppfylt, kan vi også bruke eller, hvis vi vil at bare ett av dem skal være oppfylt. Hvis vi ser på skjermbildene, ser vi en POST -forespørsel.

Vi går videre til det femte eksemplet.

Eksempel 5
Vi skal fange pakker som indikerer et grensesnitt:

 sudo tcpdump -i ens33
MerkGrensesnittet ditt er sannsynligvis eth0, du kan se det med ifconfig -kommandoen, men også med -D -parameteren til tcpdump vil det fungere for oss, vi vil se det i følgende eksempel.

Nedenfor kan du se et bilde av fangsten.

La oss gå for den neste.

Eksempel 6
I dette eksemplet er det eneste vi skal gjøre å vise de tilgjengelige grensesnittene, for dette utfører vi:

 tcpdump -D
I dette tilfellet er det ikke nødvendig å være root.

La oss fortsette.

Eksempel 7
Vi ønsker å fange 3 pakker som er bestemt for port 1987, og når dette skjer, stopper du programmet:

 sudo tcpdump -c 3 dst port 1987
Vi kan se på følgende bilde at bare 3 pakker blir fanget:

La oss se noen flere eksempler.

Eksempel 8
Når vi er interessert i å skaffe alle tcp -trafikkpakker som ikke går til en bestemt port, for eksempel port 80, vil vi utføre følgende:

 sudo tcpdump ikke port 80 og tcp
Utgangen er lik, så i dette eksemplet er det ikke angitt noen fangst. La oss gå for det nest siste eksemplet.

Eksempel 9
Vi skal fange to pakker med et bestemt grensesnitt, og vi vil vise dem i heksadesimalt format, for dette må vi utføre:

 sudo tcpdump -i ens33 -x -c 2
Nedenfor ser du utgangen:

La oss gå videre til det siste eksemplet på opplæringen.

Eksempel 10
I dette eksemplet skal vi lagre fangsten i en fil for å se på den senere. Capture er begrenset til 3 pakker og et grensesnitt er spesifisert, så vi vil utføre:

 sudo tcpdump -w test.pcap -i ens33 -c 3
La oss se et skjermbilde:

Hvis vi vil lese den filen nå, må vi utføre:

 tcpdump -r test.pcap
Vi kan se det på følgende bilde:

Opplæringen om tcpdump har kommet så langt, den har mange muligheter og mange alternativer, så for å lære hvordan du håndterer dette verktøyet godt, er det best å øve på og oppdage alle funksjonene litt etter litt. Du kan også være interessert i å lese noe om netcat -verktøyet, så her er en lenke til en opplæring med eksempler:

Hvordan bruke netcat

Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave