Pokoušíte se zachytit datové pakety za účelem analýzy provozu ve vaší síti? Možná jste správcem serveru, který narazil na problém a chce sledovat přenášená data v síti. Ať už je situace jakákoli, linuxový nástroj tcpdump je to, co potřebujete.

V tomto článku se budeme podrobně věnovat příkazu tcpdump spolu s několika průvodci, jak nainstalovat a používat tcpdump ve vašem systému Linux.

Co je příkaz tcpdump?

Tcpdump je výkonný nástroj pro monitorování sítě, který umožňuje uživateli efektivně filtrovat pakety a provoz v síti. Můžete získat podrobné informace týkající se TCP / IP a paketů přenášených v síti. Tcpdump je nástroj příkazového řádku, což znamená, že jej můžete spustit na serverech Linux bez displeje.

Správci systému mohou také integrovat nástroj tcpdump cron za účelem automatizace různých úkolů, jako je protokolování. Vzhledem k četným funkcím je tcpdump poměrně univerzální, funguje jako nástroj pro odstraňování problémů i jako bezpečnostní nástroj.

Jak nainstalovat tcpdump na Linuxu

instagram viewer

I když většinu času najdete tcpdump předinstalovaný ve vašem systému, některé distribuce Linuxu se s balíčkem nedodávají. Proto bude pravděpodobně nutné ručně nainstalovat nástroj do vašeho systému.

Můžete zkontrolovat, zda je ve vašem systému nainstalován tcpdump, pomocí který příkaz.

který tcpdump

Pokud výstup zobrazuje cestu k adresáři (/usr/bin/tcpdump), pak má váš systém nainstalovaný balíček. Pokud tomu tak není, můžete to snadno provést pomocí výchozího správce balíčků ve vašem systému.

Instalace tcpdump na distribucích založených na Debianu, jako je Ubuntu:

sudo apt-get install tcpdump

Instalace tcpdump na CentOS je také snadná.

sudo yum nainstalovat tcpdump

Na distribucích založených na oblouku:

sudo pacman -S tcpdump

Instalace na Fedoru:

sudo dnf install tcpdump

Upozorňujeme, že balíček tcpdump vyžaduje libcap jako závislost, takže se ujistěte, že ji nainstalujete také do svého systému.

Příklady Tcpdump k zachycení síťových paketů v systému Linux

Nyní, když jste úspěšně nainstalovali tcpdump na svůj stroj Linux, je čas sledovat některé pakety. Protože tcpdump vyžaduje oprávnění superuživatele k provádění většiny operací, budete muset přidat sudo podle vašich příkazů.

1. Seznam všech síťových rozhraní

Chcete-li zkontrolovat, která síťová rozhraní jsou k dispozici k zachycení, použijte -D příznak pomocí příkazu tcpdump.

tcpdump -D

Předávání --list-interfaces flag jako argument vrátí stejný výstup.

tcpdump --list-interfaces

Výstupem bude seznam všech síťových rozhraní, která jsou ve vašem systému k dispozici.

Po získání seznamu síťových rozhraní je čas monitorovat vaši síť zachycením paketů v systému. Ačkoli můžete určit, které rozhraní chcete použít, žádný argument příkazy tcpdump k zachycení síťových paketů pomocí libovolného aktivního rozhraní.

tcpdump - rozhraní libovolné

Systém zobrazí následující výstup.

Příbuzný: Co je model propojení otevřených systémů?

2. Výstupní formát tcpdump

Počínaje třetím řádkem označuje každý řádek výstupu konkrétní paket zachycený tcpdump. Tady vypadá výstup jednoho paketu.

17: 00: 25.369138 wlp0s20f3 Out IP localsystem.40310> kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196: 568, ack 1, win 309, options [nop, nop, TS val 117964079 ecr 816509256], délka 33

Mějte na paměti, že ne všechny pakety jsou zachyceny tímto způsobem, ale toto je obecný formát, který následuje většina z nich.

Výstup obsahuje následující informace.

  1. Časové razítko přijatého paketu
  2. Název rozhraní
  3. Tok paketů
  4. Název síťového protokolu
  5. IP adresa a podrobnosti o portu
  6. Příznaky TCP
  7. Pořadové číslo dat v paketu
  8. Ack data
  9. Velikost okna
  10. Délka paketu

První pole (17:00:25.369138) zobrazuje časové razítko, když váš systém odeslal nebo přijal paket. Zaznamenaný čas se odečte z místního času vašeho systému.

Druhé a třetí pole označuje použité rozhraní a tok paketu. Ve fragmentu výše wlp0s20f3 je název bezdrátového rozhraní a Ven je tok paketů.

Čtvrté pole obsahuje informace týkající se názvu síťového protokolu. Obecně najdete dva protokoly - IP a IP6, kde IP označuje IPV4 a IP6 je pro IPV6.

Další pole obsahuje IP adresy nebo název zdrojového a cílového systému. Za IP adresami následuje číslo portu.

Šesté pole na výstupu se skládá z příznaků TCP. Ve výstupu tcpdump se používají různé příznaky.

Název vlajky Hodnota Popis
SYN S Připojení zahájeno
PLOUTEV F Připojení dokončeno
TAM P Data jsou tlačena
RST R Připojení je resetováno
ACK . Potvrzení

Výstup může také obsahovat kombinaci několika příznaků TCP. Například, VLAJKA [f.] znamená paket FIN-ACK.

V dalším úryvku výstupního fragmentu obsahuje další pole pořadové číslo (seq 196: 568) dat v paketu. První paket má vždy kladnou celočíselnou hodnotu a následující pakety používají ke zlepšení toku dat relativní pořadové číslo.

Další pole obsahuje číslo potvrzení (ack 1), nebo jednoduché Ack číslo. Paket zachycený v zařízení odesílatele má 1 jako číslo potvrzení. Na konci přijímače je Ack číslo hodnotou dalšího paketu.

Deváté pole výstupu odpovídá velikosti okna (vyhrajte 309), což je počet bytů dostupných v přijímací vyrovnávací paměti. Existuje několik dalších polí, která sledují velikost okna, včetně maximální velikosti segmentu (MSS).

Poslední pole (délka 33) obsahuje délku celkového paketu zachyceného tcpdump.

3. Omezte počet zachycených paketů

Při prvním spuštění příkazu tcpdump si můžete všimnout, že systém pokračuje v zachycování síťových paketů, dokud nepředáte signál přerušení. Toto výchozí chování můžete přepsat zadáním počtu paketů, které chcete předem zachytit, pomocí -C vlajka.

tcpdump - rozhraní libovolné -c 10

Výše uvedený příkaz zachytí deset paketů z libovolného aktivního síťového rozhraní.

4. Filtrování paketů na základě polí

Když řešíte problém, získání velkého bloku textového výstupu na vašem terminálu to neusnadňuje. To je místo, kde vstupuje do hry funkce filtrování v tcpdump. Pakety můžete filtrovat podle různých polí, včetně hostitele, protokolu, čísla portu a dalších.

Chcete-li zachytit pouze pakety TCP, zadejte:

tcpdump - rozhraní libovolné -c 5 tcp

Podobně, pokud chcete filtrovat výstup pomocí čísla portu:

tcpdump - rozhraní libovolný -c 5 port 50

Výše uvedený příkaz načte pouze pakety přenášené přes zadaný port.

Chcete-li získat podrobnosti o paketu pro konkrétního hostitele:

tcpdump - rozhraní libovolný -c 5 hostitel 112.123.13.145

Pokud chcete filtrovat pakety odeslané nebo přijaté konkrétním hostitelem, použijte src nebo dst argument s příkazem.

tcpdump - interface any -c 5 src 112.123.13.145
tcpdump - interface any -c 5 dst 112.123.13.145

Můžete také použít logické operátory a a nebo spojit dva nebo více výrazů dohromady. Například k získání paketů, které patří ke zdrojové IP 112.123.13.145 a použít port 80:

tcpdump - interface any -c 10 src 112.123.13.145 a port 80

Složité výrazy lze seskupit pomocí závorky jak následuje:

tcpdump - interface any -c 10 "(src 112.123.13.145 nebo src 234.231.23.234) a (port 45 nebo port 80)"

5. Zobrazit obsah balíčku

Můžete použít -A a -X příznaky pomocí příkazu tcpdump k analýze obsahu síťového paketu. The -A vlajka znamená ASCII formát a -X označuje hexadecimální formát.

Chcete-li zobrazit obsah dalšího síťového paketu zachyceného systémem:

tcpdump - rozhraní libovolné -c 1 -A
tcpdump - rozhraní libovolné -c 1 -x

Příbuzný: Co je ztráta paketů a jak opravit její příčinu?

6. Uložit data pro zachycení do souboru

Chcete-li ukládat data zachycení pro referenční účely, je tu tcpdump, který vám pomůže. Prostě projděte -w příznak s výchozím příkazem k zápisu výstupu do souboru namísto jeho zobrazení na obrazovce.

tcpdump - interface any -c 10 -w data.pcap

The .pcap přípona souboru znamená zachytávání paketů data. Výše uvedený příkaz můžete také vydat v podrobném režimu pomocí -proti vlajka.

tcpdump - interface any -c 10 -w data.pcap -v

Číst .pcap soubor pomocí tcpdump, použijte -r příznak následovaný cestou k souboru. The -r znamená Číst.

tcpdump -r data.pcap

Síťové pakety můžete také filtrovat z dat paketů uložených v souboru.

tcpdump -r data.pcap port 80

Monitorování síťového provozu v systému Linux

Pokud vám byl přidělen úkol spravovat server Linux, pak je příkaz tcpdump skvělým nástrojem, který můžete zahrnout do svého arzenálu. Problémy související se sítí můžete snadno vyřešit zachycením paketů přenášených v síti v reálném čase.

Před tím ale musí být vaše zařízení připojeno k internetu. Pro začátečníky s Linuxem může být i připojení k Wi-Fi prostřednictvím příkazového řádku trochu náročné. Ale pokud používáte správné nástroje, je to hračka.

E-mailem
Jak se připojit k Wi-Fi prostřednictvím terminálu Linux pomocí Nmcli

Chcete se připojit k síti Wi-Fi prostřednictvím příkazového řádku systému Linux? Zde je to, co potřebujete vědět o příkazu nmcli.

Přečtěte si další

Související témata
  • Linux
  • Bezpečnostní
  • Network Forensics
O autorovi
Deepesh Sharma (Publikováno 37 článků)

Deepesh je Junior Editor pro Linux na MUO. Píše informační obsah na internetu již více než 3 roky. Ve volném čase rád píše, poslouchá hudbu a hraje na kytaru.

Více od Deepesh Sharma

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.