Hlavní navigace

iftop: sledujte dění na síti

Petr Krčmář 18. 7. 2012

Nástroj iftop je příbuzný klasické utilitě top. Ta dokáže sledovat procesy ve vašem systému, ale iftop se dívá, co cvrliká na síťových rozhraních. Můžete tak jednoduše odhalit, kdo vám loupe perníček či který zlobivý uživatel vám tak moc vytěžuje linku. Pokud chcete mít přehled, je to rozhodně povinný nástroj.

Pokud spravujete nějakou síť či server, určitě se vám někdy stalo, že jste potřebovali rychle zjistit, co se zrovna děje. Typicky třeba zjistíte, že vám DNS démon na vašem serveru nějak podezřele vytěžuje procesor. V tu chvíli se potřebujete podívat, kdo vám buší na vrata a zneužívá váš DNS server pomocí amplification attacku.

Právě k tomu slouží utilita iftop, která si bere příklad z klasického unixového příkazu top či spíše vylepšeného Htop. Namísto sledování procesů a sledování vytížení procesoru ale umožňuje sledovat zatížení síťových rozhraní a monitorování spojení, která právě z vašeho počítače probíhají.

Základní použití

Úplně nejjednodušší bude prostě iftop spustit. Pokud mu chcete říct, na kterém rozhraní má poslouchat, můžete použít parametr -i. Pro spuštění budete každopádně potřebovat práva roota:

# iftop -i eth1

Program začne postupně vypisovat všechna spojení, která jsou na daném rozhraní otevřená, a zároveň vám ukáže, jak tato spojení vytěžují vaši linku. Celý seznam je standardně setříděn právě podle náročnosti spojení, takže ta nejvytíženější budete mít nahoře na očích. Na následujícím obrázku vidíte, jak může iftop vypadat, pro demonstraci jsem spustil v prohlížeči speedtest.

Seznam obsahuje vlevo lokální adresu a uprostřed vzdálenou. Šipka ukazuje, zda jde o odchozí provoz (doprava) nebo o příchozí (doleva). Vpravo jsou pak k vidění toky za poslední 2, 10 a 40 sekund. Všechny hodnoty jsou uvedeny v bitech, pokud chcete raději vidět bajty, použijte přepínač  -B.

Aby byly toky lépe vidět graficky, zobrazuje program i „teploměry“ s aktuální zátěží. Ty se vybarvují standardně bílým pozadím pod jednotlivými řádky. Úplně nahoře v okně je vidět aktuální měřítko těchto grafů, které se průběžně mění. Pokud chcete nastavit jeho pevné maximum, použijte parametr -m například s hodnotou 10M. Nezapomeňte, že standardně je tato hodnota v bitech, pokud jste před chvíli neurčili jinak. Pokud chcete „grafiku“ úplně vypnout, použijte parametr  -b.

Ve spodní části obrazovky jsou pod čarou ještě vidět sečtené hodnoty pro celé rozhraní. Vpravo opět vidíte, kolik se přeneslo za tři zmíněná období a vlevo jsou pak celkové objemy přijatých a odeslaných dat. Možná vás na první pohled množství čísel na obrazovce zmate, ale po chvíli koukání vám bude vše jasné.

Technická poznámka: iftop do verze 1.0 neuměl monitorovat IPv6 provoz. Zkontrolujte si, zda máte dostatečně aktuální verzi, jinak nemusí být jeho výstupy kompletní.

Pokročilejší akce

Je sice fajn vidět úplně všechny informace najednou, ale nás obvykle zajímá jen konkrétní část provozu. Nástroj iftop umí filtrovat spojení podle sítě, hosta a portu, takže si můžete vybrat, co přesně chcete vidět.

Program přijímá filtry ve formátu pcap, tedy jako například tcpdump. Zapisují se za parametr -f. Jedná se o poměrně logický filtrační jazyk, který se skládá z několika základních klíčových slov. Je ovšem velmi mocný a je možné s ním zadat jednoduché i komplexní filtry.

Pokusím se zjednodušeně vysvětlit základní principy. Filtrační pravidlo obvykle začíná klíčovým slovem dst či src. Určujeme tím, zda nás zajímá cíl či zdroj provozu. Následuje informace o tom, která vlastnost provozu nás bude zajímat: host, net, port či portrange. Tedy v pořadí: IP adresa či doménové jméno, maska, port nebo rozsah portů. Možností je daleko více, ale tohle nám pro základní orientaci v problematice stačí.

Teď si můžeme vyfiltrovat jen spojení na konkrétní stroj. Pravděpodobně nás budou zajímat i porty, takže si přidáme parametr  -P.

# iftop -P -i eth1 -f "dst host time.is"

Stejně tak můžeme chtít provoz podle portu. Podíváme se třeba, kam se připojuje můj Jabber klient:

# iftop -P -i eth1 -f "dst port 5222"

Jak vidíte, moc velký provoz mi Jabber negeneruje. Program umí filtrovat i pomocí regulárních výrazů, stačí za běhu stisknout klávesu l a v horní části se objeví příkazová řádka, do které je možné výraz zapsat. Rozdíl proti pcap filtrům je ten, že program stále přijímá všechen provoz, ale zobrazuje jen ten vyfiltrovaný. Počítadla toků tak nejsou filtrem ovlivněna, vy můžete nastavení postupně měnit a čísla jsou stále správná.

Program je možné během zobrazení šikovně ovládat pomocí některých kláves. Užitečné je třeba přepínání zobrazení hostname/IP adresy pomocí malého n či přepínání názvu služby a jejího portu pomocí velkého  N.

Dále je velmi užitečné znát klávesu o, která zmrazí právě zobrazené pořadí procesů. Nezastaví se ovšem počítadla, takže pokud právě vidíte to, co potřebujete, stisknete tuto klávesu a pak už jen sledujete, jak se mění parametry zobrazených spojení. Pokud chcete úplně zamrazit displej, použijte velké  P.

Program iftop využívá i některé další klávesy, které umožňují například změnit zobrazení některých položek, změnit třídění seznamů, skrývat některé položky a podobně. K zobrazení těchto možností stiskněte h nebo  ?.

Veškeré parametry je možné zapsat do konfiguračního souboru ~/.iftoprc, takže si můžete uložit své oblíbené nastavení, konfiguraci síťové karty, přepnout si program na zobrazování bajtů místo bitů nebo si nastavit pevné osy a logaritmické zobrazení.

Utilita iftop je poměrně malá a nenáročná a podle obvyklých pravidel dělá jednu věc a dělá ji pořádně. Nainstalovat ji můžete prakticky na libovolný unixový operační systém. Hodí se zejména na serveru, ale ani na desktopu není občas špatné vědět, co vám kde lítá.

Našli jste v článku chybu?

18. 7. 2012 9:01

Je možné dovolit uživatelům pouštět iftop přes sudo (viz /etc/sudoers) bez hesla, ale pozor na subshell pomocí vykřičníku. Pokud by byl v iftop povolený, bylo by možné spouštět příkazy pod rootem. Obecně bych to vůbec nedělal, je to bezpečnostní riziko. Jediným řešením je nasazení některé z jaderných bezpečnostních technologií jako SELinux nebo AppArmor, pomocí kterých je možné programu určit, co může (koukat na síť) a co nesmí (spouštět jiné programy).

18. 7. 2012 14:13

Já mám v Debianu cs_CZ.UTF-8 a jak vidíš podle screenshotů, funguje to bez problémů. Chyba bude asi na tvém přijímači.

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí