Jak používat tcpdump a 6 příkladů

Jak používat tcpdump a 6 příkladů

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





V tomto článku budeme podrobně diskutovat o 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 ve vaší 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 s cron za účelem automatizace různých úkolů, jako je protokolování. Vzhledem k tomu, že je jeho mnoho funkcí poměrně univerzální, funguje tcpdump jako nástroj pro odstraňování problémů i jako bezpečnostní nástroj.

Jak nainstalovat tcpdump na Linux

Zatímco většinu času najdete ve vašem systému předinstalovaný tcpdump, některé distribuce Linuxu se s balíčkem nedodávají. Proto možná budete muset nástroj do svého systému nainstalovat ručně.



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

which 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.





Chcete-li nainstalovat tcpdump na distribuce založené na Debianu, jako je Ubuntu:

sudo apt-get install tcpdump

Instalace tcpdump na CentOS je také snadná.





sudo yum install tcpdump

Distribuce založené na Arch:

sudo pacman -S tcpdump

Instalace na Fedoru:

sudo dnf install tcpdump

Balíček tcpdump vyžaduje libcap jako závislost, proto si jej nainstalujte také do svého systému.

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

Nyní, když jste úspěšně nainstalovali tcpdump na váš počítač se systémem Linux, je čas sledovat některé pakety. Protože tcpdump vyžaduje k provádění většiny operací oprávnění superuživatele, budete muset přidat sudo na vaše příkazy.

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

Chcete -li zkontrolovat, která síťová rozhraní jsou k dispozici k zachycení, použijte -D označte příkazem tcpdump.

tcpdump -D

Předávání --list-rozhraní příznak 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 přítomna.

Poté, co získáte seznam síťových rozhraní, je čas sledovat vaši síť zachycováním paketů ve vašem 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í jakéhokoli aktivního rozhraní.

tcpdump --interface any

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

můžete míchat 4 GB a 8 GB RAM

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

2. Výstupní formát tcpdump

Počínaje třetím řádkem každý řádek výstupu označuje konkrétní paket zachycený tcpdump. Takto 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], length 33

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

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. Podrobnosti o IP adrese a 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 ) zobrazí časové razítko, když váš systém odeslal nebo přijal paket. Zaznamenaný čas se extrahuje z místního času vašeho systému.

jak odstranit soubor v linuxu

Druhé a třetí pole označuje použité rozhraní a tok paketu. V úryvku 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 ve výstupu se skládá z příznaků TCP. Ve výstupu tcpdump jsou použity různé příznaky.

Název vlajkyHodnotaPopis
POHLEDSPřipojení zahájeno
KONECFPřipojení dokončeno
TAMPData jsou tlačena
RSTR.Připojení je resetováno
BĚDA.Potvrzení

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

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

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

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

Poslední pole ( délka 33 ) obsahuje délku celé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 neprojdete signálem přerušení. Toto výchozí chování můžete přepsat zadáním počtu paketů, které chcete zachytit, pomocí -C vlajka.

tcpdump --interface any -c 10

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

4. Filtrujte pakety podle polí

Když řešíte problém, získání velkého bloku textového výstupu na vašem terminálu to neulehčuje. Právě tam 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 TCP pakety, zadejte:

tcpdump --interface any -c 5 tcp

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

tcpdump --interface any -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 --interface any -c 5 host 112.123.13.145

Pokud chcete filtrovat pakety odeslané nebo přijaté konkrétním hostitelem, použijte src nebo atd hádka 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 pro získání paketů, které patří do zdrojové IP 112.123.13.145 a použijte port 80 :

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

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

tcpdump --interface any -c 10 '(src 112.123.13.145 or src 234.231.23.234) and (port 45 or port 80)'

5. Prohlédněte si obsah paketu

Můžete použít -NA a -X příznaky s příkazem tcpdump k analýze obsahu síťového paketu. The -NA 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 --interface any -c 1 -A
tcpdump --interface any -c 1 -x

Související: Co je ztráta paketů a jak opravit její příčinu?

6. Uložte data zachycení do souboru

Chcete -li uložit data zachycení pro referenční účely, tcpdump je tu, aby vám pomohl. Jen projděte -v příznak s výchozím příkazem pro zápis výstupu do souboru mí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 a .pcap soubor pomocí tcpdump, použijte -r následuje cesta k souboru. The -r znamená Číst .

Steam říká, že na disku není dost místa
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 na Linuxu

Pokud vám byl přidělen úkol administrace serveru 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 ve vaší síti v reálném čase.

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

Podíl Podíl tweet 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 pomocí příkazového řádku Linux? Zde je to, co potřebujete vědět o příkazu nmcli.

Číst dále
Související témata
  • Linux
  • Bezpečnostní
  • Síťová kriminalistika
O autorovi Deepesh Sharma(79 článků zveřejněno)

Deepesh je juniorský editor pro Linux na MUO. Píše informační příručky pro Linux s cílem poskytnout všem nováčkům blažený zážitek. Nejste si jisti filmy, ale pokud chcete mluvit o technologii, je to váš chlap. Ve svém volném čase ho můžete najít číst knihy, poslouchat různé hudební žánry nebo hrát na kytaru.

Více od Deepesh Sharma

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

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru