Možnosti sběru infromací ze směrovačů Cisco pomocí NetFlow Adrian Toman [tom384], Jakub Stoszek [sto171] Abstrakt: Práce se zabývá možností sběru infromací ze směrovačů Cisco pomocí NetFlow, nalezení vhodného volně dostupného programu pro tento sběr informací (collector), konfigurací a průzkumem možností automatického vyhodnocení nasbíraných informací. Klíčová slova: NetFlow, Cisco, Collector, směrovač Květen 2008 1/10
1 Úvod...3 2 Technologie NetFlow...3 2.1 NetFlow architektura...3 2.2 Tradiční architektura...3 2.3 Moderní architektura...4 3 Testovaci topologie a jeji konfigurace...4 3.1 Konfigurace směrovačů...5 3.1.1 Konfigurace RA...5 3.1.2 Konfigurace RB...5 3.1.3 Konfigurace stanic...5 3.1.4 Testovaní funkčnosti topologie...5 3.1.5 Konfigurace NetFlow exportu na RB...6 4 Použité programy...6 4.1 NetFlow Analyzer 6...6 4.1.1 Instalace...6 4.1.2 Konfigurace a provoz...6 4.1.3 Konečné hodnocení...7 4.2 Scrutinizer NetFlow Analyzer...7 4.2.1 Instalace...8 4.2.2 Konfigurace a provoz...8 4.2.3 Konečné hodnocení...9 4.3 Ntop...9 4.3.1 Instalace...9 4.3.2 Konfigurace a provoz...9 4.3.3 Konečné hodnocení...9 5 Závěr...9 6 Použité zdroje...10 Obrázek 1: Tradiční architektura...3 Obrázek 2: Moderní architektura...4 Obrázek 3: Topologie...4 Obrázek 4: Statistika provozu...7 Obrázek 5: Statistiky NetFlow packetů...7 Obrázek 6: Statistika posledních 8 hodin...8 Obrázek 7: Statistiky prijimaných packetů...8 Květen 2008 2/10
1 Úvod V tomto projektu jsme se zaměřili na zprovoznění protokolu NetFlow na směrovačích Cisco a na zachytávaní informací generovaných tímto protokolem na platformě Windows a Linux. V projektu jsme použili programy volně dostupné na internetu a směrovače Cisco přistupné na učebně. Po zapojení podle naší vymyšlené topologie jsme se pokusili zhodnotit jednotlivé programy a jejich vlastnosti. 2 Technologie NetFlow NetFlow je otevřený protokol vyvinutý společností Cisco Systems, určený původně jako doplňková služba k Cisco směrovačům. Jeho hlavním účelem je monitorování síťového provozu na základě IP toků, které poskytuje administrátorům i manažerům podrobný pohled do provozu na jejich síti v reálném čase. Proto tvoří důležitou součást zabezpečení každé počítačové sítě a je užitečný pro ISP (Internet Service Providers - poskytovatelé připojení), kteří na základě NetFlow statistik mohou svým zákazníkům účtovat ceny služeb v závislosti na množství přenesených dat. S pomocí NetFlow statistik lze odhalovat vnější i vnitřní incidenty, úzká místa v síti, dominantní zdroje provozu, efektivněji plánovat budoucí rozvoj sítě, sledovat, kdo komunikoval s kým, jak dlouho a s pomocí kterého protokolu. 2.1 NetFlow architektura NetFlow architektura se typicky skládá z několika NetFlow exportérů a jednoho NetFlow kolektoru. NetFlow exportér je připojen k monitorované lince a analyzuje procházející pakety. Na základě zachycených IP toků generuje NetFlow statistiky a ty exportuje na NetFlow kolektor. NetFlow kolektor je zařízení s velkou úložnou kapacitou, které sbírá statistiky z většího počtu NetFlow exportérů a ukládá je do dlouhodobé databáze. Nad těmito daty obvykle běží aplikace, která je umí efektivně vizualizovat a generovat z nich přehledy v podobě grafů a tabulek, které umožňují jednoduše analyzovat monitorovaný provoz i běžnému uživateli. 2.2 Tradiční architektura Tradiční architektura podle Cisco předpokládá na pozici NetFlow exportérů směrovače, které vedle své hlavní činnosti provádějí také výpočet NetFlow statistik. Tradiční architektura však trpí několika nevýhodami. Především se jedná o vysokou pořizovací cenu podobného zařízení, které komplikuje jeho nasazení v malých a středních sítích. Výpočet NetFlow statistik také omezuje směrovací výkon celého zařízení, proto většina směrovačů s podporou NetFlow (s výjimkou těch nejdražších) využívá na vstupu vzorkování, tzn. že se pro výpočet statistik využívá jen každý n-tý paket. Kromě snížené přesnosti měření omezuje vzorkování také pravděpodobnost odhalení bezpečnostních incidentů.[1] Obrázek 1: Tradiční architektura Květen 2008 3/10
2.3 Moderní architektura V poslední době se stávají velmi oblíbeným řešením, využítí pasivních NetFlow sond. NetFlow sondy odstraňují všechny nevýhody tradiční architektury a na rozdíl od směrovačů je lze připojit do libovolného bodu v síti a to transparentním způsobem. Sondy procházející data pouze monitorují a nijak do nich nezasahují (proto pasivní sondy). Exportované statistiky jsou na kolektor odesílány dedikovanou linkou a díky tomu jsou na monitorované lince zcela neviditelné. Tento vlasnost z nich činí velmi obtížný cíl pro případné útočníky. Obrázek 2: Moderní architektura 3 Testovaci topologie a jeji konfigurace K testovaní technologie NetFlow jsme navrhli jednoduché schéma(obr. 3), které se skládá ze dvou směrovačů Cisco řady 2800(IOS v12.1 RA, RB) a tří koncových stanic(traffic Emulator 1, 2 a NetFlow Collector). Roli NetFlow exporteru v naší topologii plnil směrovač RB. Směrovač RA sloužil pouze k vytvoření testovacího prostředí. Mezi stanicemi TE1 a TE2 byl pomocí FTP serveru generován provoz. Propusnost dat mezi TE1 na TE2 byla jen 128kb/s kvůli seriové lince mezi RA a RB, ale pro testovací účely byl provoz dostačující. Obrázek 3: Topologie 3.1 Konfigurace směrovačů K vytvoření funkční topologie bylo nutné nakonfigurovat směrovače RA a RB. Dále na obou směrovačích spustit směrovací protokol (v našem případě RIP v2). Květen 2008 4/10
3.1.1 Konfigurace RA Nejprve jsme nakonfigurovali všechny rozhraní směrovače. RA(config)#interface s0 RA(config-if)#ip address 10.0.1.1 255.255.255.0 RA(config-if)#clock-rate 128000 RA(config-if)#no shutdown RA(config)#interface fastethernet 0 RA(config-if)#ip address 10.0.2.1 255.255.255.0 RA(config-if)#no shutdown Dále jsme zprovoznili směrovací protokol RIP. RA(config)#router rip RA(config-router)#version 2 RA(config-router)#network 10.0.1.0 RA(config-router)#network 10.0.2.0 Jelikož RA slouží pouze jako pomocný směrovač, další konfigurace nebyla nutná. 3.1.2 Konfigurace RB Nejprve jsme nakonfigurovali všechny rozhraní směrovače. RB(config)#interface s0 RB(config-if)#ip address 10.0.1.2 255.255.255.0 RB(config-if)#no shutdown RB(config)#interface fastethernet 0 RB(config-if)#ip address 10.0.3.1 255.255.255.0 RB(config-if)#no shutdown RB(config)#interface fastethernet 1 RB(config-if)#ip address 10.0.4.1 255.255.255.0 RB(config-if)#no shutdown Dále jsme zprovoznili směrovací protokol RIP. RB(config)#router rip RB(config-router)#version 2 RB(config-router)#network 10.0.1.0 RB(config-router)#network 10.0.3.0 RB(config-router)#network 10.0.4.0 Ke dokončení spravné konfigurace bylo třeba nastavit IP adresy na stanicích a vyzkoušet konektivitu mezi jednotlivými prvky. 3.1.3 Konfigurace stanic Na stanici TE1 jsme nastavili adresu 10.0.2.100 s maskou 255.255.255.0 a bránu 10.0.2.1. Na této stanici byl nainstalován systém Linux. Na stanici TE2 jsme nastavili adresu 10.0.3.100 s maskou 255.255.255.0 a bránu 10.0.3.1. Na této stanici byl nainstalován systém Linux. Na stanici NetFlow Collector jsme nastavili adresu 10.0.4.100 s maskou 255.255.255.0 a bránu 10.0.4.1. U testování prvních dvou collectoru byl na této stanici nainstalován systém Windows XP. U posledního testu systém Linux. 3.1.4 Testovaní funkčnosti topologie K ověření správné konfigurace sítě jsme provedli několik testů konektivity. Otestovali jsme pomocí pingu konektivitu mezi směrovačí RA a RB, dále dostupnost NetFlow Collectoru z směrovače RB a ping mezi TE1 a TE2. Všechny tyto testy proběhly spravně. Květen 2008 5/10
3.1.5 Konfigurace NetFlow exportu na RB Nejprve jsme nakonfigurovali rozhraní, na kterém jsme chtěli monitorovat provoz, zachytavání NetFlow do cache. Příkazem ip flow { ingress egress} jsme spustili zachytavání provozu a specifikovali, jestli monitorujeme vstupní provoz(ingeress) nebo výstupní provoz (egress). RB(config)#ip cef RB(config)#interface serial 0 RB(config-if)# ip flow ingress Dále jsme nakonfigurovali verzi NetFlow, IP adresu NetFlow collectoru a port, na který se NetFlow packety mají přeposílat. V našem případě to byl port 9996. Pro náš test jsme použili NetFlow verzi 9, což je poslední vydaná verze. Poslední příkazem jsme nastavili zdrojovou ip adresu NetFlow packetu, který není povinný. RB(config)#ip flow-export version 9 RB(config)#ip flow-export destination 10.0.4.100 9996 RB(config)#ip flow-export source fastethernet 0/1 Po této konfiguraci jsme pomocí FTP servru (TE2) a FTP clienta(te1), který z tohoto servru stahoval data, začali generovat provoz a zachytávali jsme NetFlow packety na NetFlow Collectoru. Postupně jsme otestovalí všechny tři programy. 4 Použité programy Jako NetFlow collectory jsme použili tři programy nezávislé programy NetFlow Analyzer 6 [2], Scrutinizer NetFlow Analyzer [3] a Ntop [4]. Všechny tyto programy zahrnují kompletní řešení sledovaní NetFlow provozu. Plní úlohu NetFlow Collectoru, NetFlow analyzatoru a databáze na NetFlow packety. 4.1 NetFlow Analyzer 6 První program, který jsme zkoušeli byl NetFlow Analyzer 6 4.1.1 Instalace Instalační balíček je dostupný na adrese: http://manageengine.adventnet.com/products/netflow/index.html Na prvních 30 dní používání je dostupná plná verze programu. Po této době se program přepne do volné verze, která umožňuje monitorování maximálně dvou rozhraní. Pří instalaci se program nainstaluje do počítače jako služba, která se zapíná automaticky. Pří instalaci se taky automaticky nainstaluje MySQL databáze, která slouží k ukládání NetFlow packetů a webový server, který beží na Java platformě. 4.1.2 Konfigurace a provoz K ovládaní programu slouží webové rozhraní, které je přístupné na portu 8080. V tomto rozhraní je možné měnit nastavení analyzátoru a prohlížet si již vytvořené NetFlow statistiky. Při prvním spustění programu jsme museli nastavit port, na kterém má program naslouchat, pro NetFlow packety. V našem případě to byl port 9996. Další nastavování nebylo nutné. Na obr.4 vidíme jednu ze stastik generovanou programem. Je zde vidět zatížení linky od 11:00 do 11:20. Také zde vidíme, že NetFlow packety přicházely z rozhraní 10.0.4.1. Nepoužívali jsme žádný další NetFlow exporter, proto je 100% packetů z toho rozhraní. Květen 2008 6/10
Obrázek 4: Statistika provozu Další statistiku, kterou nám program generuje, můžeme vidět na obr. 5. Je zde zobrazena celková statistika NetFlow packetů přijatých systémem. Na obrázku vidíme, že bylo přijato 47 NetFlow packetů. V této statistice je dále možnost zobrazit podrobnosti provozu na sítí. K tomu slouží ikona Quick View (zvýrazněna na obr. 5). V této další statistice by bylo možné vidět odkud a kam provoz putuje, jaké je zatížení linky. Obrázek 5: Statistiky NetFlow packetů 4.1.3 Konečné hodnocení Instalace tohoto programu byla velmi jednoduchá. Program nabízí velké množství statistik a možnosti jejich vyhodnocování. Je možne podle jistých přednastavených stavů automaticky odesílat emailove zprávy na předdefinovanou adresu. Tím, že systém je dostupný přes webové rozhraní, je možné statistiky sledovat z jiných počítačů. Největší nevýhodou tohoto programu je jeho náročnost na pamět, která se celkově pohybuje kolem 150MB. Plná verze programu je zpoplatněna (kolem 800$ pro méně než 600 rozhraní). Volná verze má omezení na počet rozhraní (max. 2), které lze sledovat. 4.2 Scrutinizer NetFlow Analyzer Druhý program, který jsme testovali byl Scrutinizer NetFlow Analyzer verze 5.5.1 Květen 2008 7/10
4.2.1 Instalace Instalační balíček je dostupný na adrese: http://www.plixer.com/products/free-netflow.php Program je dostupný ve dvou verzích - volná a komerční. Hlavní rozdíly jsou, že volná verze nepodporuje automaticke notifikace administrátora a všechny schromážděné NetFlow packety jsou smazány o půlnoci. Dostupné jsou pak tedy pouze vygenerované statistiky (rok zpět), ale ne přímo zachycené data. S instalací samotného programu se do služeb na počítači nainstaluje scrutinizer_apache2 a scrutinizer_mysql. 4.2.2 Konfigurace a provoz Stejně jako u minulého programu k ovládání slouží webové rozhraní, které je ve vychozím nastavení na portu 80. Jedinou věc, kterou bylo nutné nastavit před spuštěním programu byl port, na kterém chceme zachytávat NetFlow packety. V našem případě opět 9996. Na obr. 6 vidíme vygenerovanou statistiku provozu za posledních 8 hodin. Období, za které chceme vidět statistiky, je samozřejmě možné změnit. Obrázek 6: Statistika posledních 8 hodin Na obr 7. vidíme statistiky přijatých packetů za jisté časové období.v našem případě to je od 4:00 do 12:00 Je zde možné vidět počet NetFlow packetů přijatých z adresy 10.0.4.1 nebo počet packetů zaznamenaných na portu 9996. Obrázek 7: Statistiky prijimaných packetů Květen 2008 8/10
4.2.3 Konečné hodnocení Instalace tohoto programu byla opět velmi jednoduchá, ale bez uvědomění uživatele do systému nainstalovala mnoho další služeb, které se po spustění počítače automaticky zapínají, což neúměrně zatěžuje systém. Dále při zachytáváni NetFlow packetů tato aplikace spotřebovává velkou část paměti (kolem 200mb) a odezvy grafického rozhraní počítače byly neuměrně vysoké. Výhodou u tohoto programu je, že není omezený počet rozhraní, ze kterých je možné NetFlow packety zachytávat. Tato výhoda je však vyvážená na druhé straně tím, že NetFlow packety nejsou uchovávany a není možné se zpětně dostat k přesným statistikám. Další nevýhodou je cena. S roční podporou tento program stojí 1995$. V této ceně je zahrnuta roční licence a technická podpora firmy. Celkově se nám tento program zdál méně povedený než první program. 4.3 Ntop Třetím programem, který jsme testovali, je Ntop na systému Linux. Tento program slouží k celkovému monitorování sítě, nejenom NetFlow. Plugin v Ntop, který se stará o NetFlow se jmenuje nprobe, jenž ve vychozím nastavení není zapnutý. 4.3.1 Instalace Instalační balíček je dostupný na adrese: http://www.ntop.org Program jsme stáhli jako instalační balíček, který jsme dále nainstalovali na počítači s operačním systémem Linux. Již u instalace jsme byli dotázáni na port, na který budou přícházet NetFlow packety. V našem případě jsme opět zvolili port 9996. Po dokončení instalace se program Ntop spustí jako démon na pozadí a automaticky poslouchá na portu 9996 na příchozí NetFlow packety. Na našem testovacím počítači jsme narazili na problém, že port 80 byl blokovaný serverem Apache, proto nebylo možné se dostat do webového rozhraní programu Ntop. Tento problém jsme vyrešili změnou portu na kterém beží webserver programu Ntop. To je možné pro http učinit příkazem ntop -w [port] nebo pro https příkazem ntop -W [port]. V našem případě jsme použili příkaz ntop -W 443 a na webové rozhraní jsme se dále připojovali pomocí https na port 443. Webové rozhraní vypadá velmi podobně jako u předešlých programů. V menu nastavní bylo jestě nutné zapnout plugin nprobe. V tomto tvaru byl program připraven sbírat NetFlow packety a zaznamenávat je. 4.3.2 Konfigurace a provoz Jak již bylo řečeno dříve, program Ntop není výhradně zaměřený na NetFlow, proto NetFlow statstiky byly jen malou částí všech statistik generovaných tímto programem. Program zachytával NetFlow packety bez problémů a grafy byly opět velmi podobné grafům předchozích programů. 4.3.3 Konečné hodnocení Nějvětší výhodou tohoto programu je, že je distribuován pod GNU GPL. Tedy je zcela bezplatný. Pro linuxovou platformu nezbývá nic jiného než tento program dopoučit. 5 Závěr V naší topologi se nám povedlo zprovoznit NetFlow exporty na Cisco směrovačích a jejich následné zachytávání na NetFlow collectorech. Jako Netflow collectory jsme použili tři volně dostupné programy na internetu (freeware). V naší malé topologii jsme nemohli otestovat jak se chová NetFlow při větším zatížení sítě, to by vyžadavalo větší topologii a generováni velkého provozu v síti po delší dobu. Tyto volně dostupné collectory mají většinou omezení na počet exporterů, z kterých informace zachytávají (kromě programu Ntop, který je distribuován pod GNU GPL), tudíž jejich použítí je omezené na menší sítě. Z našeho pohledu jako nejvíce povedený program na Windows platformě se nám jevil NetFlow Analyzer 6 a nejvíce povedený program na Linux platformě byl Ntop. 6 Použité zdroje [1] Wikipedia NetFlow, dostupné na http://cs.wikipedia.org/wiki/netflow [2] NetFlow Analzyer 6 - http://manageengine.adventnet.com/products/netflow/index.html Květen 2008 9/10
[3] Scrutiniyer NetFlow Analzyer - http://www.plixer.com/products/free-netflow.php [4] Ntop - http://www.ntop.org [5] Free NetFlow nastroje - http://www.networkuptime.com/tools/netflow/ Květen 2008 10/10