Linux je vybaven velkým množstvím síťových nástrojů, ze kterých si můžete vybrat. tcpdump je jeden takový výkonný síťový nástroj, který dokáže zachytit a analyzovat síťový provoz, pokud potřebujete odstraňovat chyby sítě v Linuxu.
Pojďme si vyzkoušet příkaz tcpdump a prozkoumat, jak jej použít k zachycení síťového provozu.
Instalace tcpdump v Linuxu
tcpdump je obvykle dodáván s předinstalovaným všechny běžné linuxové distribuce a alternativy založené na bezpečnosti. Měli byste jej tedy okamžitě použít zadáním tcpdump s sudo předpona.
V případě, že nemůžete spustit příkaz tcpdump a uvízli jste na "tcpdump: příkaz nenalezen"chyba, pojďme se naučit, jak nainstalovat tcpdump na váš počítač se systémem Linux.
Chcete-li nainstalovat tcpdump, spusťte terminál a spusťte příkaz odpovídající distribuci Linuxu, kterou aktuálně používáte:
Na derivátech Debian/Ubuntu spusťte:
sudo apt-dostat nainstalovat tcpdump
Na Obloukové systémy, spustit:
sudo pacman -S tcpdump
Chcete-li nainstalovat nástroj tcpdump na Fedoru, CentOS a RHEL, zadejte následující příkaz:
sudo dnf Nainstalujte tcpdump
Všimněte si, že pokud budete požádáni o instalaci libcap, vepište Ano nebo Y protože se jedná o základní závislost, bez které se tcpdump odmítne spustit. To by mělo nainstalovat obslužný program tcpdump a vyřešit chybu „příkaz nenalezen“.
Nyní, když je tcpdump nainstalován do vašeho systému, pojďme prozkoumat různé možnosti a funkce, které nabízí.
Zachycení síťového provozu pomocí tcpdump
tcpdump nabízí mnoho příznaků pro úpravu jeho provádění, ale lze jej spustit také jako samostatný příkaz. Spuštění tcpdump bez jakýchkoli příznaků nebo argumentů by však zanedbávalo jeho plný potenciál. Vždy je lepší použít několik příznaků k doladění provádění a výstupu podle potřeby.
Chcete-li monitorovat síťové přenosy pomocí tcpdump, zadejte tento příkaz:
sudo tcpdump
Nyní tcpdump začne automaticky zachytávat síťové pakety do signál přerušení je odeslána s Ctrl + Z pro ruční přerušení procesu. Chcete-li omezit celkový počet zachycených paketů, použijte -C příznak a vedle něj zadejte požadovaný limit paketů:
sudo tcpdump -c 5
Pokud právě teď nemůžete porozumět výstupu, musíte to udělat seznamte se s výstupním formátem tcpdump První.
Zkontrolujte dostupná síťová rozhraní pomocí tcpdump
Ve výchozím nastavení tcpdump zachycuje provoz z kteréhokoli z dostupných síťových rozhraní. Pokud používáte více aktivních síťových rozhraní, možná budete chtít definovat síťové rozhraní, ze kterého má tcpdump zachytávat pakety. Chcete-li spustit tcpdump na konkrétním rozhraní, musíte se nejprve dozvědět o názvu rozhraní.
Zde je návod, jak vypsat všechna dostupná síťová rozhraní pomocí tcpdump:
sudo tcpdump -D
Nebo můžete přidat --list-interfaces příznak k příkazu:
sudo tcpdump --seznam-rozhraní
Vrácený výstup obsahuje seznam všech aktivních síťových rozhraní, kterým může tcpdump naslouchat. Chcete-li nakonfigurovat tcpdump pro zachycení přenosů z určitého síťového rozhraní, zadejte tento příkaz:
sudo tcpdump -i interface_id
Nebo můžete přidat --rozhraní příznak k příkazu:
sudo tcpdump --rozhraníinterface_id
Nyní, když jsme zachytili několik paketů, pojďme si je podrobně prostudovat a zjistit, jak můžete vyladit výstup, aby byl čitelnější.
Prozkoumání filtrů tcpdump
tcpdump je schopen zachytit ohromné množství provozu v jednom spuštění. Takové zahlcení informacemi vás může vyvést z cesty při vyšetřování nebo odstraňování problémů s konkrétním hostitelem nebo síťovým protokolem.
Zde vstupují do hry filtry tcpdump. K příkazu tcpdump můžete přidat určité příznaky, abyste odfiltrovali síťový provoz a zachytili konkrétní pakety. Tyto pakety pak můžete uložit a později je analyzovat, abyste se dostali ke kořenu všech problémů souvisejících se sítí. Pojďme se naučit používat filtry v tcpdump.
Filtrujte pakety na základě používaného síťového protokolu
Chcete-li filtrovat pakety přenášené přes určitý protokol, zadejte název protokolu pomocí příkazu tcpdump a zachytí pouze pakety putující přes definovaný síťový protokol.
Chcete-li například zachytit pakety založené na ICMP, jednoduše byste je připojili icmp na konci příkazu tcpdump. Postup je stejný, pokud chcete zachytit pouze pakety UDP nebo TCP.
sudo tcpdump -c 5 icmp
Tento příkaz vrátí výstup pouze v případě, že dojde k výměně dat prostřednictvím protokolu ICMP.
Filtrujte pakety na základě hostitele
Můžete nakonfigurovat tcpdump tak, aby zachycoval pakety související s jedním hostitelem pomocí hostitel parametr. To je zvláště užitečné, když všechny systémy vaší sítě fungují kromě jednoho. Tento filtr vám umožňuje provádět cílené vyšetřování a urychluje celkový pracovní postup při odstraňování problémů, protože vás nerozptylují zbytečná data.
Chcete-li zachytit pakety související s konkrétním hostitelem, definujte síťovou adresu hostitele pomocí hostitel parametr:
sudotcpdump-C 5 hostitel 192.168.2.1
Podobně jako u filtru síťového protokolu tento příkaz vrátí výstup pouze v případě, že jakýkoli probíhající přenos souvisí s definovaným hostitelem.
Filtrovat pakety na základě aktivního portu
tcpdump je vybaven parametrem, který vám umožní filtrovat síťový provoz a zachytit pouze pakety, které jsou přenášeny na nebo z konkrétního portu.
Chcete-li zachytit pakety přicházející z určitého portu, připojte příponu přístav příznak k příkazu tcpdump a vedle něj definujte číslo portu. Chcete-li například zachytit jakýkoli příchozí nebo odchozí provoz HTTP, definujte port 80:
sudo tcpdump -c 5 port 80
tcpdump bude naslouchat na portu 80 a čekat na přenosy HTTP. Jakmile detekuje HTTP pakety v síti, zachytí je.
Kombinujte filtry dohromady pro pokročilé třídění
Předchozí části pojednávaly o tom, jak můžete filtrovat provoz na základě portu, protokolu nebo hostitele, ale co když chtěli jste zachytit provoz z jednoho portu konkrétního hostitele pomocí konkrétní sítě protokol? Máte štěstí, protože je to možné díky schopnosti používat logické operátory s příkazem tcpdump.
Chcete-li zachytit pakety od jednotlivého hostitele pomocí portu 443, použijte tento příkaz:
sudotcpdump-C 5 hostitel 192.168.2.1apřístav 443
Zkontrolujte obsah zachycených paketů
Ve výchozím nastavení tcpdump zobrazuje záhlaví paketu ve výstupu. I když je to ve většině případů více než dost, někdy se možná budete chtít nebo budete muset podívat hlouběji do zachycených dat. Pomocí příkazu tcpdump můžete předat určité parametry a zkontrolovat obsah zachyceného balíčku.
Zde je návod, jak zobrazit obsah paketů:
sudo tcpdump -c 5 -x
Tento příkaz vrátí hexadecimální verzi obsahu v zachyceném paketu. Pokud si přejete zobrazit data ve formátu ASCII, můžete předat -A parametr s:
sudo tcpdump -A
Uložit výstup tcpdump do souboru
Jako téměř každý jiný nástroj příkazového řádku Linuxu můžete výstup vytvořený tcpdump uložit do souboru, na který se budete později odkazovat.
To lze provést přidáním -w příznak k příkazu. Po spuštění tcpdump uloží zachycená data do a .pcap soubor, který lze později analyzovat pomocí tcpdump nebo jiných nástrojů pro monitorování sítě, jako je Wireshark.
Chcete-li uložit výstup příkazu tcpdump do souboru, zadejte tento příkaz:
sudotcpdump-wzachytit.pcap
Číst a .pcap soubor, můžete použít tcpdump s -r parametr:
sudotcpdump-rzachytit.pcap
Linux se dodává s množstvím síťových nástrojů, které dokážou vyřešit každý problém se sítí, pokud jde o softwarovou stránku věci. Znalost toho, jak používat několik nejlepších síťových nástrojů v Linuxu, se vám bude určitě hodit, ať už jste systémový správce sítě pro živobytí nebo jen každodenní uživatel Linuxu.
Vzhledem k tomu, že skutečný seznam dostupných síťových příkazů může být příliš k pochopení, zde je seznam některých nejdůležitějších síťových nástrojů Linuxu, které byste měli znát.