GNU/Linux >> Znalost Linux >  >> Linux

Odstraňování problémů se sítí z příkazového řádku pomocí TShark

Jedním ze způsobů, jak optimalizovat zachycování paketů, je použít nástroj rozhraní příkazového řádku a ze všech nástrojů, které můžete najít, je TShark ten, který musíte vyzkoušet. TShark je ekvivalentem grafického uživatelského rozhraní Wireshark, které poskytuje cenné informace o provozu zachyceném ve vaší síti.

Jedna věc, díky které je to skvělé, je to, že místo klikání na několik tlačítek a procházení různých nabídek můžete zadat pouze jeden příkaz, abyste získali potřebné informace.

Čtěte dál a už nikdy neztrácejte hodiny analýzou zachycených paketů!

Předpoklady

Tento tutoriál bude praktickou ukázkou. Pokud je chcete sledovat, ujistěte se, že máte následující.

  • Počítač Linux – Tento výukový program používá Ubuntu 20.04 LTS, ale budou fungovat všechny distribuce Linuxu.
  • Uživatel bez oprávnění root s právy sudo.
  • Na vašem počítači je nainstalována aplikace Wireshark.

Instalace TShark na Ubuntu

TShark se ve výchozím nastavení nenainstaluje na vaši Linuxovou distribuci, takže než budete moci tuto výhodu využít, spusťte tento tutoriál instalací TShark na váš počítač.

Pomocí správce balíčků můžete nainstalovat na většinu distribucí Linuxu a operačních systémů BSD. Ale pro tuto ukázku budete instalovat pomocí správce balíčků APT.

1. Spusťte apt update níže, abyste se ujistili, že váš správce balíčků je aktuální. Tento příkaz aktualizuje seznam balíčků vašeho systému a jejich aktuální verze.

sudo apt update -y

2. Dále spusťte apt install příkaz níže k instalaci nástroje příkazového řádku TShark na váš počítač.

sudo apt install tshark -y

3. Spusťte níže uvedený tshark --version příkaz, abyste zajistili dostupnost nástroje ve vašem systému.

tshark --version

Získáte výstup podobný tomu níže. V době psaní tohoto článku je aktuální verze 3.4.8, ale vaše verze se může lišit.

4. Nakonec spusťte tshark --help příkazem níže zobrazíte všechny dostupné příkazy. Příkazy

tshark --help

K získání informací o datech zachycených ve vaší síti můžete použít mnoho jeho příkazů, jak je uvedeno níže. Tento výstup zobrazuje pouze malý počet dostupných příkazů. Základní použití některých z těchto příkazů se naučíte v následujících částech.

Zachycení všech paketů ze síťového rozhraní

Nyní, když jej máte nainstalovaný, můžete zachytit pakety a analyzovat zachycená síťová data. Síťová data můžete zachycovat pomocí specifického rozhraní, ale předtím, než zachytíte data, budete muset spustit a určit síťové rozhraní, kde budete data zaznamenávat.

1. Spusťte tshark příkaz k zobrazení seznamu všech dostupných síťových rozhraní (-D ), které T-shark dokáže najít, dokonce i ty staré a neaktivní.

sudo tshark -D 

Zobrazí se seznam dostupných rozhraní ve vašem systému, jak je uvedeno níže. Pokud máte v systému nainstalováno více síťových karet, vždy před spuštěním a určením rozhraní spusťte příkaz tshark -D.

2. Dále spusťte ip link příkaz níže (na systémech Linux a BSD) pro seznam všech aktivních síťových rozhraní. Musíte vybrat aktivní síťové rozhraní, které chcete použít.

Přestože TShark uvádí všechna síťová rozhraní ve vašem systému, nemusí být všechna v tu chvíli aktivní.

sudo ip link show 

Ve většině případů budete používat síťové rozhraní, například ethernetovou kartu. V tomto příkladu si poznamenejte eth0, jak je ukázáno níže, abyste zachytili pakety.

3. Nakonec spusťte následující tshark příkaz pro výběr rozhraní (-i ) a zachytit živé pakety. Nahraďte interface s rozhraním, které jste si poznamenali ve druhém kroku.

sudo tshark -i interface

Jakmile začnete zaznamenávat data, uvidíte pakety zobrazené v reálném čase, jak je uvedeno níže. A kdykoli můžete stisknutím Ctrl+C zastavit zachycování paketů.

Stejně jako jiné oblíbené nástroje pro analýzu paketů datové sítě, jako je tcpdump a Wireshark, Tshark používá Knihovna pcap (libpcap) pro zachycení paketů. V tomto případě se k zachycení paketů z rozhraní eth0 používá knihovna pcap.

Jak vidíte níže, vytiskne dekódovanou formu zachycených paketů, každý řádek ve formátu čitelném pro člověka na standardní výstup (stdout) na vašem terminálu.

Zachycení určitého počtu paketů

Předpokládejme, že máte zájem analyzovat konkrétní počet paketů. Pokud ano, místo zachycení všech paketů zadejte počet paketů, které se mají zachytit, a přímo je analyzujte.

Chcete-li zachytit konkrétní počet paketů, připojíte -c možnost (zachycení počtu paketů) v tshark příkaz.

Spusťte následující příkaz k zachycení prvních 10 paketů (-c 10 ) zkontrolovat, zda jsou pakety směrovány na tshark správně. Nahraďte 10 s preferovaným počtem paketů k zachycení.

sudo tshark -i eth0 -c 10

Pokud dáváte přednost zachycení paketů a potlačení zobrazování paketů, přidejte -q místo toho. -q Tato možnost je užitečná, pokud chcete vidět pouze celkový počet zachycených paketů a nechcete neustále procházet výstupy na vašem terminálu.

Spusťte níže uvedený příkaz k zachycení paketů při potlačení (-q ) výstupy.

sudo tshark -i eth0 -q

Jakmile stisknete Ctrl+C, TShark vytiskne celkový počet zachycených paketů v terminálu. Níže vidíte celkem 84 zachycené pakety.

Zachycení konkrétních paketů pomocí řetězce filtru

Možná je počet zachycených paketů příliš velký a je téměř nemožné hledat nějaký konkrétní řetězec pouze očima. V tomto případě budete muset použít filtr k zachycení paketů podle vámi zvoleného řetězce.

Výrazy zachytávacího filtru TShark použijete k výběru paketů na základě protokolů, párů zdroj/cíl hostitel/port a tak dále. Například vaše připojení SSH nefunguje a chcete zachytit pakety související pouze s připojením SSH.

Spusťte níže uvedený příkaz k zachycení a filtrování paketů (-f ) s tcp port 22 řetězec.

sudo tshark -i eth0 -f "tcp port 22" -c 10

Pokud řetězcový filtr nestačí, můžete také použít filtr zobrazení po spuštění filtru zachycení k zúžení vyhledávání a analýze konkrétních paketů. Filtr zobrazení využívá porovnávací operátory (!==,===,==atd.) k testování řetězců, vzorů nebo sekvencí bajtů.

Můžete také použít booleovské operátory (a, nebo, ne) a seskupení se závorkami k určení složitějších výrazů.

Například poté, co jste našli IP adresy, které používáte pro připojení k SSH, nyní se chcete dále ponořit do paketů. V tomto případě použijete == (Rovno (jakýkoli, pokud je více než jeden)) operátor, jak je uvedeno níže.

Spusťte tshark příkaz níže k zachycení a zobrazení prvních 10 filtrované pakety (-Y ) související s 69.28.83.134 IP adresa.

sudo tshark -i eth0 -Y 'ip.addr == 69.28.83.134' -c 10

Můžete vidět, že výstup níže zobrazuje pouze pakety související s 69.28.83.134 IP adresa.

Ukládání zachycených paketů do souboru

Zobrazení zachycených paketů v reálném čase vám umožní okamžitě jednat při odstraňování problémů. Možná ale v tuto chvíli nemáte čas na řešení problémů. Proč tedy neukládat zachycené pakety do souboru? Například vaše připojení SSH fungovalo dobře a připojení najednou není dostupné.

Procházení paketů v terminálu neposkytne vždy informace, abyste pochopili, co problém způsobuje. V tomto případě můžete pomocí TShark uložit zachycené pakety a sdílet je se svými přáteli nebo kolegy, o kterých si myslíte, že vám mohou pomoci.

Spusťte níže uvedený příkaz pro uložení paketů zachycených do souboru .pcap soubor. Příkaz provede následující:

  • Nastaví možnost vyrovnávací paměti zachycovacího kruhu (-b ), který vyvolá režim více souborů. V tomto režimu TShark zapisuje zachycené pakety do očíslovaných souborů. Jakmile je první velikost souboru plná, TShark přejde na další soubor a tak dále.
  • Pověřuje TShark, aby vytvořil 10 souborů (-a files:10 ) obsahující pakety zachycené v režimu provozu kruhové vyrovnávací paměti, přičemž každý soubor obsahuje 1024 KB (1 MB). Pokud nepřidáte files volba, režim provozu kruhové vyrovnávací paměti poběží navždy, dokud nebude místo na disku zaplněno nebo dokud nenastane stav zastavení.

Neexistuje žádné omezení počtu souborů, které můžete s touto možností použít. Mějte však na paměti, že celková velikost všech souborů v režimu provozu kruhové vyrovnávací paměti nesmí přesáhnout 2 GB. Po dosažení tohoto limitu se TShark pozastaví a počká, dokud neuvolníte místo na disku odstraněním některých souborů, než budete pokračovat.

  • Zapíše pakety do souboru (-w ), v tomto případě ata.pcap , zatímco spouštíte záznam na konkrétním rozhraní (eth0 ).
sudo tshark -i eth0 -f "tcp port 22" -b filesize:1024 -a files:10 -w ata.pcap

TShark vám neukazuje průběh zápisu a nepřetržitý počet paketů zachycených při zápisu do souboru. Uvidíte pouze počet zachycených paketů, jak je uvedeno níže.

Nyní stiskněte CTRL+C pro zastavení procesu zápisu v určitém okamžiku. Budete mít nový soubor, jak je ukázáno níže, obsahující pakety zachycené během relace.

Nyní můžete tento soubor sdílet se svým přítelem a pokračovat v ladění problému společně!

Závěr

V tomto tutoriálu jste se naučili nainstalovat TShark na počítač Ubuntu. Naučili jste se také přidávat filtry pro vyhledávání konkrétních zachycených paketů a zapisovat zachycené pakety do souboru.

V tuto chvíli již rozumíte TShark a jeho základním možnostem příkazového řádku pro správu paketů. Nyní můžete začít s odstraňováním problémů se sítí sami nebo z toho udělat důvod, proč se spojit s přáteli!

S těmito nově získanými znalostmi, proč nenainstalovat Tshark spolu s Wireshark pro monitorování paketů v AWS EC2? Nebo možná změřit přenosovou rychlost videostreamu?


Linux
  1. Spravujte síťová připojení z příkazového řádku Linuxu pomocí nmcli

  2. Usnadněte si přechod z Mac na Linux s Homebrew

  3. 5 Příkazy pro odstraňování problémů se sítí Linux

  1. Jak se přihlásit do databáze Postgresql z příkazového řádku

  2. Nemohu procházet síť z Nautilus?

  3. Prohledejte místní síť pomocí arp-scan na ubuntu

  1. Jak provést HTTP-request/call s JSON payloadem z příkazového řádku?

  2. Jak restartuji Linux (Ubuntu) z příkazového řádku?

  3. Tisk z příkazového řádku pomocí LibreOffice, příkazy lpr?