Sledování paketů představuje pokročilou metodu analýzy sítě, která zahrnuje detailní dekódování a zkoumání síťové komunikace. Tato dovednost patří mezi klíčové kompetence každého správce sítě při řešení problémů. Analýza síťového provozu je komplexní disciplína, protože data nejsou přenášena v celistvém proudu, nýbrž v rozdrobených paketech, které jsou doručovány jednotlivě. Proto analýza spočívá ve shromažďování těchto paketů a jejich skládání do srozumitelné podoby. Jelikož manuální provedení tohoto úkolu je prakticky nemožné, byly vyvinuty specializované nástroje, tzv. paketové sniffery a síťové analyzátory. V tomto článku se zaměříme na sedm nejlepších z nich.
Naším cílem je poskytnout vám úvod do problematiky paketových snifferů, objasnit rozdíl (nebo absenci rozdílu) mezi paketovým snifferem a síťovým analyzátorem. Poté přejdeme k jádru věci a představíme i stručně zhodnotíme sedm vybraných nástrojů. Zastoupeny jsou zde jak nástroje s grafickým uživatelským rozhraním (GUI), tak i nástroje příkazového řádku, dostupné pro různé operační systémy.
Úvod do paketových snifferů a síťových analyzátorů
Než se pustíme dál, vyjasníme si jednu věc. Pro účely tohoto článku budeme považovat paketové sniffery a síťové analyzátory za synonyma. I když někteří odborníci mohou tvrdit, že jde o odlišné nástroje, pro náš článek je budeme chápat jako nástroje s podobným účelem. Ačkoliv se jejich interní fungování může lišit, jejich primárním cílem je analýza síťového provozu.
Paketové sniffery obvykle provádějí tři základní operace: za prvé, zachycují všechny datové pakety procházející síťovým rozhraním. Za druhé, mohou volitelně aplikovat filtry, které umožňují ignorovat některé pakety a ukládat jiné na disk. A za třetí, provádějí analýzu zachycených dat. Právě v posledním bodě se nejvíce liší jednotlivé paketové sniffery.
Pro samotné zachycování datových paketů většina nástrojů využívá externí moduly. Nejčastěji se jedná o knihovnu libpcap na systémech Unix/Linux a Winpcap na Windows. Tyto knihovny obvykle nemusíte instalovat samostatně, protože jsou často součástí instalačních balíčků různých nástrojů.
Důležité je si uvědomit, že ani ten nejlepší paketový sniffer nevyřeší všechny vaše problémy automaticky. Jsou to pouze nástroje, které vám umožní nahlédnout do síťového provozu. Je na vás, abyste tyto informace dokázali interpretovat a využít k odhalení problémů. Stejně jako kladivo samo o sobě nezabije hřebík, ani paketový sniffer sám o sobě nevyřeší potíže. Proto je nezbytné, abyste se naučili, jak efektivně používat jednotlivé nástroje. Existuje množství publikací a kurzů, které se věnují této problematice, což dokládá, jak komplexní toto téma je. Cílem je, abyste si byli vědomi omezení těchto nástrojů a nastavili si realistická očekávání.
Jak používat paketový sniffer
Jak již bylo zmíněno, paketový sniffer zachytává a analyzuje síťový provoz. Pokud se tedy snažíte vyřešit konkrétní problém – což je nejčastější důvod pro použití těchto nástrojů – musíte zajistit, abyste zachytávali relevantní provoz. Představte si situaci, kdy si uživatelé stěžují na pomalou odezvu aplikace. V takovém případě by bylo pravděpodobně nejvhodnější zachytit provoz na síťovém rozhraní aplikačního serveru. Pokud zjistíte, že požadavky na server dorazí v pořádku, ale server odpovídá pomalu, pravděpodobně je problém na straně serveru.
Pokud naopak zjistíte, že server odpovídá rychle, může být problém v síti mezi klientem a serverem. Poté byste přesunuli paketový sniffer blíže ke klientovi a sledovali, zda se zpoždění objevuje. Pokud tomu tak není, posunete se zase blíže a tak dále, dokud nenarazíte na místo, kde dochází ke zpoždění. Jakmile lokalizujete problém, jste o krok blíže k jeho vyřešení.
Možná se ptáte, jak zajistit, abyste zachytávali pakety v určitém bodě. Je to relativně jednoduché pomocí funkce síťových přepínačů, která se nazývá zrcadlení portů nebo replikace. Tato funkce umožňuje zkopírovat veškerý provoz z jednoho portu přepínače na jiný port na stejném přepínači. Řekněme například, že server je připojen k portu 15 a port 23 je dostupný. Paketový sniffer připojíte k portu 23 a nakonfigurujete přepínač tak, aby zrcadlil provoz z portu 15 na port 23. Na portu 23 tak získáte přesnou kopii toho, co prochází portem 15.
Nejlepší paketové sniffery a síťové analyzátory
Nyní, když máme základní přehled o paketových snifferech a síťových analyzátorech, podívejme se na sedm nejlepších nástrojů, které jsme pro vás vybrali. Zahrnuli jsme jak nástroje příkazového řádku, tak i nástroje s grafickým rozhraním, a to pro různé operační systémy. Uvědomujeme si, že ne všichni správci sítí používají Windows.
1. SolarWinds Deep Packet Inspection and Analysis Tool (BEZPLATNÁ ZKUŠEBNÍ VERZE)
SolarWinds je známý svými užitečnými bezplatnými nástroji a profesionálním softwarem pro správu sítě. Jedním z jeho nástrojů je Deep Packet Inspection and Analysis Tool, který je součástí produktu Network Performance Monitor. Jeho fungování se liší od tradičních paketových snifferů, i když slouží podobnému účelu.
Tento nástroj vám pomůže identifikovat příčiny zpoždění v síti, určit ovlivněné aplikace a rozlišit, zda je zpomalení způsobeno sítí nebo aplikací. Software analyzuje pakety za účelem měření doby odezvy pro více než dvanáct set aplikací a klasifikuje síťový provoz do kategorií (obchodní, sociální) a podle úrovně rizika. To vám pomůže identifikovat a případně blokovat provoz, který není obchodní.
Nástroj SolarWinds Deep Packet Inspection and Analysis Tool je součástí Network Performance Monitor (NPM), který je komplexním řešením pro monitorování sítě. Kombinuje technologie jako SNMP a hloubková kontrola paketů, aby poskytl co nejvíce informací o stavu sítě. Tento nástroj je k dispozici za rozumnou cenu a nabízí 30denní zkušební verzi, abyste si mohli ověřit, zda splňuje vaše požadavky.
Oficiální odkaz ke stažení: https://www.solarwinds.com/topics/deep-packet-inspection
2. tcpdump
Tcpdump je považován za původní paketový sniffer, který vznikl již v roce 1987. Od té doby byl neustále vylepšován, ale jeho základní princip fungování zůstal stejný. Je předinstalován téměř ve všech operačních systémech typu Unix a stal se standardem pro rychlé zachycení paketů. Pro samotné zachycení paketů používá knihovnu libpcap.
Ve výchozím nastavení tcpdump zachytává veškerý provoz na zadaném rozhraní a zobrazuje jej na obrazovce. Výstup lze také uložit do souboru pro pozdější analýzu. Síla tcpdump spočívá v možnosti aplikovat filtry a přesměrovat jeho výstup do nástroje grep, což umožňuje další filtrování. Zkušený uživatel, který ovládá tcpdump, grep a příkazový shell, dokáže zachytit přesně ten provoz, který potřebuje pro daný účel.
3. Windump
Windump je port tcpdump pro platformu Windows. Jeho chování je v podstatě identické s tcpdump. Je běžné, že úspěšné nástroje z jedné platformy jsou portovány na platformu druhou. Windump je aplikace pro Windows, ale nemá grafické uživatelské rozhraní. Jedná se o nástroj pro příkazový řádek. Používání Windumpu je velmi podobné jako používání tcpdump. Možnosti příkazového řádku jsou stejné a výstupy jsou také téměř identické. Výstup z Windumpu lze také uložit do souboru pro další analýzu.
Hlavním rozdílem oproti tcpdump je, že Windump není součástí Windows. Je nutné jej stáhnout z webu Windump. Software je distribuován jako spustitelný soubor a nevyžaduje instalaci. Stejně jako tcpdump používá knihovnu libpcap, Windump používá Winpcap, kterou je nutné stáhnout a nainstalovat samostatně.
4. Wireshark
Wireshark je referenční nástroj v oblasti paketových snifferů. Stal se de facto standardem a většina ostatních nástrojů se jím inspiruje. Tento nástroj nejen zachytává provoz, ale také nabízí poměrně rozsáhlé analytické funkce. Z tohoto důvodu mnoho správců používá tcpdump nebo Windump pro zachycení provozu do souboru a poté ho načítají do Wireshark pro analýzu. Po spuštění Wireshark se uživatelé mohou rozhodnout, zda otevřou existující soubor pcap nebo zahájí zachycování nového provozu. Silnou stránkou Wiresharku je množství filtrů, které vám umožňují zaměřit se na data, která jsou pro vás relevantní.
Wireshark má strmou křivku učení, ale jeho zvládnutí se vyplatí. Je to neocenitelný nástroj, který můžete využívat všude, protože je dostupný pro téměř všechny operační systémy, a navíc je zdarma a s otevřeným zdrojovým kódem.
5. tshark
Tshark je něco jako kříženec mezi tcpdump a Wireshark, což je výborná kombinace. Tshark je stejně jako tcpdump nástroj pouze pro příkazový řádek. Zároveň je podobný Wireshark, protože umí provoz nejen zachytávat, ale také analyzovat. Tshark je vyvíjen stejnými vývojáři jako Wireshark a je v podstatě verzí Wireshark pro příkazový řádek. Používá stejné filtry jako Wireshark a dokáže rychle izolovat provoz, který potřebujete analyzovat.
Možná se ptáte, proč by někdo chtěl verzi Wireshark pro příkazový řádek? Proč nepoužít přímo Wireshark s jeho grafickým uživatelským rozhraním? Hlavním důvodem je možnost používat tshark na serveru bez grafického rozhraní.
6. Network Miner
Network Miner je více forenzní nástroj než klasický paketový sniffer. Sleduje TCP stream a rekonstruuje celou konverzaci. Jedná se o skutečně výkonný nástroj. Může pracovat v offline režimu, kde importujete zachycený soubor a Network Miner jej analyzuje. To je užitečné, protože software běží pouze na Windows. Můžete například použít tcpdump na Linuxu pro zachycení provozu a poté použít Network Miner na Windows pro jeho analýzu.
Network Miner je k dispozici zdarma, ale pro pokročilejší funkce, jako je geolokace a skriptování, si musíte zakoupit profesionální licenci. Profesionální verze nabízí i možnost dekódování a přehrávání VoIP hovorů.
7. Fiddler (HTTP)
Někteří by mohli namítnout, že Fiddler není paketový sniffer ani síťový analyzátor, a měli by pravdu. I přesto jsme ho zařadili do našeho seznamu, protože je velmi užitečný v mnoha situacích. Fiddler zachycuje síťový provoz, ale pouze HTTP provoz. I přes toto omezení je Fiddler velmi cenný, protože mnoho dnešních aplikací je založeno na webu a používá HTTP. Zachycuje nejen provoz prohlížeče, ale prakticky veškerý HTTP provoz, což z něj činí skvělý nástroj pro odstraňování problémů.
Výhodou Fiddleru oproti klasickým paketovým snifferům, jako je Wireshark, je jeho specializace na protokol HTTP. Fiddler umí „rozumět“ HTTP provozu a zobrazuje soubory cookie, certifikáty a aktuální data z aplikací založených na HTTP. Fiddler je zdarma a dostupný pro Windows. Existují i beta verze pro OS X a Linux (využívající rámec Mono).
Závěr
Při zveřejňování podobných seznamů se často ptáme, který z nástrojů je nejlepší. V tomto případě bych odpověděl, že všechny. Všechny tyto nástroje jsou zdarma a mají svou hodnotu. Proč je nemít všechny po ruce a naučit se je ovládat? Když se dostanete do situace, kdy je budete potřebovat, budete je moci efektivněji používat. I nástroje příkazového řádku mají velkou hodnotu, protože je lze skriptovat a plánovat. Představte si například, že máte problém, který se objevuje každý den ve 2:00. Můžete naplánovat úlohu, která spustí tcpdump nebo Windump v časovém rozmezí 1:50 až 2:10 a analyzovat zachycený soubor následující ráno. Nemusíte tedy celou noc bdít.