Jak zachytit a analyzovat pakety na příkladu pomocí Tcpdump

Jak Zachytit A Analyzovat Pakety Na Prikladu Pomoci Tcpdump



Tcpdump je výkonný nástroj pro analýzu sítě, který se používá pro analýzu síťového provozu v systémech Linux a macOS. Správci sítě používají tcpdump pro síťové sniffing, zachycování a analýzu paketů TCP/IP. Používá knihovnu „libpcap“, která pomáhá efektivně zachycovat síťový provoz. Kromě toho tcpdump pomáhá při odstraňování problémů se sítí a pravidelně monitoruje síťové aktivity. Tento nástroj ukládá zachycená data do souboru „pcap“. Tyto soubory jsou dále analyzovány pomocí nástroje pro analýzu paketů TCP/IP, jako je Wireshark, nebo pomocí jiného nástroje příkazového řádku.

V této příručce si ukážeme, jak nainstalovat tcpdump na systém Linux a jak zachytit a analyzovat pakety TCP/IP pomocí tcpdump.

Jak nainstalovat Tcpdump

Tcpdump je předinstalovaný na mnoha distribucích Linuxu. Ale pokud ještě není na vašem systému nainstalován, můžete si nainstalovat tcpdump na váš systém Linux. Chcete-li nainstalovat tcpdump na systém Ubuntu 22.04, použijte následující příkaz:







$ sudo apt install tcpdump

Chcete-li nainstalovat tcpdump na Fedora/CentOS, použijte následující příkaz:



$ sudo dnf nainstalovat tcpdump

Jak zachytit pakety pomocí příkazu Tcpdump

Chcete-li zachytit pakety pomocí tcpdump, spusťte terminál s právy sudo pomocí „Ctrl+Alt+t“. Tento nástroj obsahuje různé možnosti a filtry pro zachycení paketů TCP/IP. Pokud chcete zachytit všechny proudící pakety aktuálního nebo výchozího síťového rozhraní, použijte příkaz „tcpdump“ bez možnosti.



$ sudo tcpdump

Daný příkaz zachytí pakety výchozího síťového rozhraní vašeho systému.





Na konci provádění tohoto příkazu se na terminálu zobrazí všechny zachycené a vyfiltrované počty paketů.



Pojďme pochopit výstup.

Tcpdump umožňuje analýzu hlaviček paketů TCP/IP. Pro každý paket zobrazuje jeden řádek a příkaz pokračuje, dokud jej nezastavíte stisknutím kláves „Ctrl+C“.

Každý řádek poskytovaný tcpdump obsahuje následující podrobnosti:

  • Unixové časové razítko (např. 02:28:57.839523)
  • protokol (IP)
  • Zdrojový název hostitele nebo IP a číslo portu
  • Název cílového hostitele nebo IP a číslo portu
  • TCP Flags (např. Flags [F.]) označující stav připojení s hodnotami jako S (SYN), F (FIN),. (ACK), P (PUSH), R (RST)
  • Pořadové číslo dat v paketu (např. seq 5829:6820)
  • Číslo potvrzení (např. ack 1016)
  • Velikost okna (např. win 65535) představující dostupné bajty v přijímací vyrovnávací paměti následované možnostmi TCP
  • Délka užitečného zatížení dat (např. délka 991)

Chcete-li zobrazit seznam všech síťových rozhraní vašeho systému, použijte příkaz „tcpdump“ s volbou „-D“.

$ sudo tcpdump -D

nebo

$ tcpdump --list-interfaces

Tento příkaz uvádí všechna síťová rozhraní, která jsou připojena nebo běží na vašem systému Linux.

Zachyťte pakety určeného síťového rozhraní

Pokud chcete zachytit pakety TCP/IP, které procházejí konkrétním rozhraním, použijte příznak „-i“ s příkazem „tcpdump“ a zadejte název síťového rozhraní.

$ sudo tcpdump -i lo

Daný příkaz zachycuje provoz na rozhraní „lo“. Pokud chcete zobrazit podrobné nebo podrobné informace o paketu, použijte příznak „-v“. Chcete-li vytisknout obsáhlejší podrobnosti, použijte parametr „-vv“ s příkazem „tcpdump“. Pravidelné používání a analýza přispívají k udržení robustního a bezpečného síťového prostředí.

Podobně můžete zachytit provoz na jakémkoli rozhraní pomocí následujícího příkazu:

$ sudo tcpdump -i any

Zachyťte pakety pomocí specifického portu

Pakety můžete zachytit a filtrovat zadáním názvu rozhraní a čísla portu. Chcete-li například zachytit síťové pakety, které procházejí rozhraním „enp0s3“ pomocí portu 22, použijte následující příkaz:

$ tcpdump -i enp0s3 port 22

Předchozí příkaz zachytí všechny proudící pakety z rozhraní „enp0s3“.

Zachyťte omezené pakety pomocí Tcpdump

K zachycení určitého počtu paketů můžete použít příznak „-c“ s příkazem „tcpdump“. Chcete-li například zachytit čtyři pakety na rozhraní „enp0s3“, použijte následující příkaz:

$ tcpdump -i enp0s3 -c 4

Nahraďte název rozhraní pomocí svého systému.

Užitečné příkazy Tcpdump pro zachycení síťového provozu

V následujícím textu uvádíme některé užitečné příkazy „tcpdump“, které vám pomohou efektivně zachytit a filtrovat síťový provoz nebo pakety:

Pomocí příkazu „tcpdump“ můžete zachytit pakety rozhraní s definovanou cílovou IP nebo zdrojovou IP.

$ tcpdump -i {název-rozhraní} dst {cílová-ip}

Pakety můžete zachytit s velikostí snímku 65535 bajtů, což se liší od výchozí velikosti 262144 bajtů. Ve starších verzích tcpdump byla velikost zachycení omezena na 68 nebo 96 bajtů.

$ tcpdump -i enp0s3 -s 65535

Jak uložit zachycené pakety do souboru

Pokud chcete uložená data uložit do souboru pro další analýzu, můžete to udělat. Zachycuje provoz na určeném rozhraní a poté jej ukládá do souboru „.pcap“. K uložení zachycených dat do souboru použijte následující příkaz:

$ tcpdump -i -s 65535 -w .pcap

Máme například rozhraní „enps03“. Uložte tato zachycená data do následujícího souboru:

$ sudo tcpdump -i enps03 -w dump.pcap

V budoucnu můžete tento zachycený soubor číst pomocí Wireshark nebo jiných nástrojů pro analýzu sítě. Pokud tedy chcete k analýze paketů použít Wireshark, použijte argument „-w“ a uložte jej do souboru „.pcap“.

Závěr

V tomto tutoriálu jsme na různých příkladech ukázali, jak zachytit a analyzovat pakety pomocí tcpdump. Také jsme se naučili, jak uložit zachycený provoz do souboru „.pcap“, který můžete prohlížet a analyzovat pomocí Wireshark a dalších nástrojů pro analýzu sítě.