Hur man fångar och analyserar paketen genom exempel med Tcpdump

Hur Man Fangar Och Analyserar Paketen Genom Exempel Med Tcpdump



Tcpdump är ett kraftfullt nätverksanalysverktyg som används för nätverkstrafikanalys i Linux-system och macOS. Nätverksadministratörer använder tcpdump för nätverkssniffning, fånga och analysera TCP/IP-paketen. Den använder ett 'libpcap'-bibliotek som hjälper till att fånga nätverkstrafiken effektivt. Dessutom hjälper tcpdump med nätverksfelsökning och övervakning av nätverksaktiviteter med jämna mellanrum. Det här verktyget lagrar infångade data i en 'pcap'-fil. Dessa filer analyseras vidare med ett TCP/IP-paketanalysverktyg som Wireshark eller via ett annat kommandoradsverktyg.

I den här guiden kommer vi att demonstrera hur man installerar tcpdump på ett Linux-system och hur man fångar och analyserar TCP/IP-paketen med tcpdump.

Hur man installerar Tcpdump

Tcpdump är förinstallerat på många Linux-distributioner. Men om det inte redan är installerat på ditt system kan du installera tcpdump på ditt Linux-system. För att installera tcpdump på Ubuntu 22.04-systemet, använd följande kommando:







$ sudo apt installera tcpdump

För att installera tcpdump på Fedora/CentOS, använd följande kommando:



$ sudo dnf installera tcpdump

Hur man fångar paketen med kommandot Tcpdump

För att fånga paketen med tcpdump, starta terminalen med sudo-privilegier med 'Ctrl+Alt+t'. Det här verktyget innehåller olika alternativ och filter för att fånga TCP/IP-paketen. Om du vill fånga alla flödande paket i det nuvarande eller standardnätverksgränssnittet, använd kommandot 'tcpdump' utan något alternativ.



$ sudo tcpdump

Det givna kommandot fångar paketen i ditt systems standardnätverksgränssnitt.





I slutet av exekveringen av detta kommando visas alla fångade och filtrerade paketräkningar på terminalen.



Låt oss förstå resultatet.

Tcpdump möjliggör analys av TCP/IP-pakethuvuden. Det visar en enda rad för varje paket, och kommandot fortsätter att köras tills du trycker på 'Ctrl+C' för att stoppa det.

Varje rad som tillhandahålls av tcpdump innehåller följande detaljer:

  • Unix tidsstämpel (t.ex. 02:28:57.839523)
  • Protokoll (IP)
  • Källvärdnamn eller IP och portnummer
  • Destinationsvärdnamn eller IP och portnummer
  • TCP-flaggor (t.ex. flaggor [F.]) som indikerar anslutningstillståndet med värden som S (SYN), F (FIN). (ACK), P (PUSH), R (RST)
  • Sekvensnummer för data i paketet (t.ex. seq 5829:6820)
  • Bekräftelsenummer (t.ex. ack 1016)
  • Fönsterstorlek (t.ex. win 65535) som representerar tillgängliga byte i mottagningsbufferten följt av TCP-alternativ
  • Längden på datanyttolasten (t.ex. längd 991)

För att lista alla nätverksgränssnitt i ditt system, använd kommandot 'tcpdump' med alternativet '-D'.

$ sudo tcpdump -D

eller

$ tcpdump --list-gränssnitt

Detta kommando listar alla nätverksgränssnitt som är anslutna eller körs på ditt Linux-system.

Fånga paketen med specificerat nätverksgränssnitt

Om du vill fånga TCP/IP-paketen som passerar genom ett specifikt gränssnitt, använd '-i'-flaggan med kommandot 'tcpdump' och ange nätverksgränssnittets namn.

$ sudo tcpdump -i lo

Det givna kommandot fångar trafiken vid 'lo'-gränssnittet. Om du vill visa en utförlig eller detaljerad information om paketet, använd '-v'-flaggan. För att skriva ut mer omfattande detaljer, använd '-vv'-flaggan med kommandot 'tcpdump'. Regelbunden användning och analys bidrar till att upprätthålla en robust och säker nätverksmiljö.

På samma sätt kan du fånga trafiken i vilket gränssnitt som helst med följande kommando:

$ sudo tcpdump -i any

Fånga paketen med en specifik port

Du kan fånga och filtrera paketen genom att ange gränssnittsnamn och portnummer. Till exempel, för att fånga nätverkspaketen som passerar genom 'enp0s3'-gränssnittet med port 22, använd följande kommando:

$ tcpdump -i enp0s3 port 22

Det föregående kommandot fångar alla flödande paket från 'enp0s3'-gränssnittet.

Fånga de begränsade paketen med Tcpdump

Du kan använda flaggan '-c' med kommandot 'tcpdump' för att fånga ett visst antal paket. Till exempel, för att fånga fyra paket vid 'enp0s3'-gränssnittet, använd följande kommando:

$ tcpdump -i enp0s3 -c 4

Byt ut gränssnittsnamnet med ditt system.

Användbara Tcpdump-kommandon för att fånga nätverkstrafiken

I det följande listade vi några användbara 'tcpdump'-kommandon som hjälper dig att fånga och filtrera nätverkstrafiken eller paketen effektivt:

Med kommandot 'tcpdump' kan du fånga paketen i ett gränssnitt med en definierad destinations-IP eller käll-IP.

$ tcpdump -i {interface-name} dst {destination-ip}

Du kan fånga paketen med en ögonblicksbildstorlek på 65535 byte, vilket skiljer sig från standardstorleken på 262144 byte. I de äldre versionerna av tcpdump var fångststorleken begränsad till 68 eller 96 byte.

$ tcpdump -i enp0s3 -s 65535

Hur man sparar de fångade paketen i en fil

Om du vill spara infångad data i en fil för vidare analys kan du göra det. Den fångar upp trafiken vid ett specificerat gränssnitt och sparar den sedan i en '.pcap'-fil. Använd följande kommando för att lagra inhämtade data i en fil:

$ tcpdump -i -s 65535 -w .pcap

Till exempel har vi gränssnittet 'enps03'. Spara denna infångade data i följande fil:

$ sudo tcpdump -i enps03 -w dump.pcap

I framtiden kan du läsa den här fångade filen med Wireshark eller andra nätverksanalysverktyg. Så, om du vill använda Wireshark för att analysera paketen, använd argumentet '-w' och spara det i en '.pcap'-fil.

Slutsats

I den här handledningen demonstrerade vi hur man fångar och analyserar paketen med hjälp av tcpdump med hjälp av olika exempel. Vi lärde oss också hur man sparar den fångade trafiken i en '.pcap'-fil som du kan se och analysera med hjälp av Wireshark och andra nätverksanalysverktyg.