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 -Deller
$ tcpdump --list-gränssnittDetta 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 22Det 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 -iTill exempel har vi gränssnittet 'enps03'. Spara denna infångade data i följande fil:
$ sudo tcpdump -i enps03 -w dump.pcapI 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.