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.
- Časové razítko přijatého paketu
- Název rozhraní
- Tok paketů
- Název síťového protokolu
- Podrobnosti o IP adrese a portu
- Příznaky TCP
- Pořadové číslo dat v paketu
- Ack data
- Velikost okna
- 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 vlajky | Hodnota | Popis |
---|---|---|
POHLED | S | Připojení zahájeno |
KONEC | F | Připojení dokončeno |
TAM | P | Data jsou tlačena |
RST | R. | 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í NmcliChcete 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
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 SharmaPř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