tcpdump

TCPDUMP základy

TCPDUMP je jedním ze základních, ale velmi dobře použitelných network snifferů. Dokáže chytat a zobrazovat všechny pakety posílané přes síťové rozhraní. Velmi často bývá v linuxu přítomný ihned po instalaci a tak se stává první možností, jak řešit nejrůznější problémy v síti.

TCPDUMP se však vzhledem k množství funkcí které nabízí může zdát příliš obtížným nástrojem. Proto zde budou popsány některé základní parametry, se kterými se může začít ihned vcelku kvalitně používat. Jako základ je potřeba zjistit, jestli je TCPDUMP nainstalovaný, případně ho nainstalovat.

$ sudo apt-get install tcpdump

Bez dalšího nastavení není možné začít sledovat síťový provoz bez práv superuživatele. Jak to nastavit bude v některém z dalších článků. Nyní si vystačíme s tím, že tcpdump vždy spustíme s právy superuživatele. Základní příkaz může vypadat například takto.

sudo tcpdump -i wlan0

Tcpdump začne na výstup vypisovat jednotlivé přijaté pakety, u kterých se vždy pokusí zjistit doménové jméno zdrojové a cílové adresy. Zjištění těchto údajů nemusí být vždy výhodné, může jednak dlouho trvat a navíc může být matoucí. První šikovný parametr je tedy -n, s tímto parametrem se vždy vypíše zdrojová IP adresa, cílová IP adresa a číslo portu.

sudo tcpdump -i wlan0 -n

V tuto chvíli tcpdump vypisuje každý paket, který prochází přes zadaný síťový port. To nemusí vždy být žádoucí. Například na vytížených serverech, kde je potřeba sledovat pouze jednu danou aplikaci je určitě výhodnější pakety nějakým způsobem filtrovat. Filtrování může být založeno například na základě IP adresy. K takovému filtru se používá přepínač parametr host IP-adresa. Takovýto filtr bude vypisovat pouze adresy, které mají buď jako zdrojovou, nebo jako cílovou adresu IP-adresa. Pokud by nás zajímal pouze jeden směr komunikace, je možné doplnit buď dst nebo src pro cílovou potažmo zdrovou adresu. Následuje příklad na filtrování

sudo tcpdump -i wlan0 -n dst host 85.118.128.24

Podobně lze pakety filtrovat i na základě portu. K tomu slouží parametr port num-port.

sudo tcpdump -i wlan0 -n dst host 85.118.128.24 port 80

Obdobně lez filtrovat i na základě typu protokolu. Rozeznává se několik typů: TCP, UDP, ICMP. Každý typ má svá specifika, ale o tom až někdy jindy. Parametry které se zadávají do tcpdumpu jsou následující: tcp / udp / icmp.

sudo tcpdump -n -i wlan0 tcp

I přesto, že se používá filtrování může nastat situace, kdy objem vypisovaných paketů bude příliš vysoký. Pak nezbývá než pakety uložit do pcap souboru, který je poté možné studovat v klidu offline, případně uložit pro nahlášení chyb. Pro uložení slouží parametr -w soubor.pcap. Soubor je pak možné otevřít například v programu Wireshark, který nabízí hezké uživatelské rozhraní a nepřeberné množství operací s nachytanými pakety.

Při zachytávání paketů a jejich ukládání do pcap souborů je vhodné přidat ještě parametr -s 0. Díky němu nebude délka paketu omezena na 65535 bytů, ale i ty nejdelší pakety se uloží celé.

sudo tcpdump -n -i wlan0 tcp -w soubor.pcap -s0

Posted

in

,

by

Tags: