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 -Dnebo
$ tcpdump --list-interfacesTento 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 22Př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 -iMáme například rozhraní „enps03“. Uložte tato zachycená data do následujícího souboru:
$ sudo tcpdump -i enps03 -w dump.pcapV 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ě.