15 Inteligentní analyzátor NetFlow
Zadáním projektu Inteligentní analyzátor NetFlow bylo vyvinout modulárně řešený distribuovaný systém NetFlow Monitor, který by umožňoval vyhodnocování síťového provozu zpracováním NetFlow statistik exportovaných ze směrovačů Cisco.
Monitor by měl umožňovat analýzu provozu téměř v reálném čase, inteligentní filtraci, agregaci a statistické vyhodnocení dat. Dále by měl poskytovat multikriteriální selekci dat na úrovni jednotlivých datových toků (například podle zdrojové/cílové IP adresy, použitého protokolu, portů apod). Zahrnuje i heuristické metody umožňující zpracování protokolů s dynamicky se měnícími porty. Systém by měl být zároveň schopen inteligentně upozorňovat na podezřelé aktivity síťového provozu (například bezpečnostní incidenty, chyby směrování apod.) odesíláním varovných zpráv.
Celý systém je rozčleněn na tři bloky:
- výkonné jádro systému - NetFlow Collector
- uživatelské rozhraní - NetFlow Monitor
- odesílaní varovných zpráv - NetFlow Event.
15.1 NetFlow Collector
Prvá část je kompletně napsána v programovacím jazyce C a vykonává vlastní zpracování přijatých dat. V tomto pololetí jsme přidali podporu pro zpracování NetFlow exportu verze 6. V současné době tedy NetFlow Monitor podporuje verze 1, 5, 6 a 7. Podpora pro určité typy statistik z exportu dat verze 8 je rozpracována. Pracujeme také na podpoře NetFlow exportu verze 9, kterou lze od června tohoto roku nastavit na vybraných prvcích firmy Cisco Systems.
NetFlow Collector už podporuje některé základní moduly. Příkladem může být modul pro přesměrování (forwarding) datového toku na jiný cíl (modul NetFlow Forwarder). Tento modul zajistí rozeslání NetFlow exportu na jednu či více IP adres a vybrané porty.
Dalším modulem je například filtr vstupních dat, který pro svoji funkci používá vstupní přístupové seznamy (ACL) - tedy od koho lze NetFlow exporty přijímat. Posledním příkladem modulu je část vlastního ukládání přijímaných a zpracovaných NetFlow exportů do databáze. Náplní modulu export je kromě ukládání dat z vnitřní vyrovnávací paměti do databáze MySQL také agregace jednotlivých informací o datovém toku s časem.
Dokončený a testy prověřený je model vytváření pravidelných neagregovaných hodinových tabulek, z nichž jsou vytvářeny agregované denní, týdenní a měsíční tabulky. Počet jednotlivých tabulek je teoreticky omezen jen dostupným diskovým prostorem, lze jej však i omezit konfiguračně. Například lze definovat, že chceme mít přístupné hodinové tabulky za poslední 3 dny, a pak tabulky s agregovanými daty například denní za posledních 14 dnů, týdenní za posledních 6 týdnů a měsíční za poslední dva roky.
Model rozdělení typu tabulek na tabulky s agregovanými a neagregovanými informacemi je výhodný pro různé uživatelské pohledy. Pro správce sítě je často důležité si zobrazit detailní informaci o tom, co se na síti v uplynulé hodině dělo. Pro tento případ je vhodné nahlédnout do hodinové tabulky.
Jindy je zase důležité mít celkový přehled o trendu sítě, například jaké je procentuální zastoupení protokolů v rozsahu dne, týdne či měsíce. Tyto přehledy je lepší zobrazovat už z připravených denních, týdenních či měsíčních tabulek, které nemusí obsahovat detailní informace.
15.2 NetFlow Monitor
Druhá část systému pro zpracování NetFlow statistik je napsána v programovacím jazyce PHP. Jejím cílem je uživatelsky přívětivým způsobem prezentovat naměřené hodnoty, vytvářet grafy a statistiky a také v neposlední řadě umožnit jednoduchou konfiguraci NetFlow Collectoru a NetFlow Event ovládanou prostřednictvím WWW.
Začátkem roku jsme dokončili základní část pro nové uživatelské rozhraní, která umožnila pozdější jednoduchou tvorbu nových dynamických WWW stránek. Současné webové rozhraní obsahuje sedm hlavních nabídek: Main, Tables, Graphs, Events, Statistics, Options a Help.
Nabídka Main obsahuje základní vyhledávání informací o datovém toku, informace o IP adresách a autonomních systémech, apod. V nabídkách Tables a Graphs budou možnosti správy přednastavených profilů pro vyhledávací podmínky ke generování tabulek a grafů. Nabídka Events slouží pro správu a zobrazování událostí, které generují NetFlow Collectory.
V položce Statistics najdete volby pro informace o stavu jednotlivých procesů, velikosti a stavu jednotlivých tabulek, apod. Položka Options obsahuje veškeré nastavení celého systému. Zde lze vytvářet uživatele, nastavovat přístupová práva, přidávat nové Collectory apod. Nabídka Help je bohužel zatím prázdná. Doufáme, že během roku 2003 se nám podaří dokončit veškerou online dokumentaci k celému systému.
Během druhého pololetí jsme dokončili podporu pro současné přihlášení více uživatelů s různou úrovni oprávnění. V současné verzi je možno nastavit uživatelům práva Statistics, Search, Global Profiles, User Profiles, Config a Admin, kde právo Admin je nejvyšší a zahrnuje všechna ostatní nižší oprávnění.
NetFlow Monitor rozlišuje dvě části, které spravuje výkonné jádro systému NetFlow Analyzátor: NetFlow Unit a NetFlow Collector. NetFlow Unit je jedna výpočetní jednotka, tedy samostatný počítač. NetFlow Collector je démon, který pracuje pod určitou jednotkou. Každý Collector zpracovává data a je řízen společnou částí NetFlow Unit. Naznačenému návrhu odpovídají i konfigurační dialogy z webového prostředí NetFlow Monitor.
Při nastavení Collectoru se specifikuje port, na němž jsou přijímány NetFlow exporty, popřípadě další parametry.
Stejným způsobem lze konfigurovat i zásuvné moduly, které NetFlow Collector používá. Některé moduly však nelze konfigurovat z webového prostředí, resp. modul pracuje s přednastavenými parametry. V budoucnosti uvažujeme o pokud možno co nejvyšší nastavitelnosti parametrů všech modulů.
Obrázek 15.1: Ukázka vygenerované statistiky
V položce Main najdete funkce pro zobrazování výpisů o datových tocích a pro generování grafických výstupů. Ke generování statistik o agregovaných datových tocích slouží položka Search. Po jejím vybrání lze zvolit druh statistiky (Bytes, Services, TOP IP, Sessions, a další), zdrojovou tabulku a další parametry.
Ke zobrazení detailních informací o datovém toku je vhodnější použít statistiky generované z neagregovaných dat, která jsou uložena v hodinových tabulkách. V tomto případě lze také vybrat z mnohem více vyhledávacích podmínek, než obsahují výše popsané statistiky generované z agregovaných informací. Výstup je formátován do tabulky s odkazy vedoucími k podrobným informacím o použitých IP adresách nebo o autonomních systémech.
Obrázek 15.2: Statistika z neagregovaných dat
15.3 NetFlow Event
Třetí část systému NetFlow Analyzátor realizuje odesílání informací na vybrané cíle. V systému lze nastavit více adresátů pro danou zprávu a typ zprávy (e-mail, SMS). Volitelnou položkou jsou typy událostí, na něž se mají konkrétní pravidla vztahovat. Lze například nastavit, že se mají všechny informace odesílat e-mailem, ale kritické chyby se mají odesílat na mobilní telefon.
V budoucnosti předpokládáme doplnění o podporu odesílaní zpráv na pager a na přímo připojenou SMS bránu. Bohužel se již tento rok nepodařilo implementovat určitou agregaci informací. Zatím se odesílá každá položka samostatně, což může vést k nepříjemnému efektu přeplnění poštovní schránky.
15.4 Závěr
Během roku 2002 se našemu týmu podařilo vytvořit hlavní jádro monitorovacího systému, které by mohlo efektivně vyhledávat problémy v síti, resp. které nabízí možnost jejich předcházení. V současné době vyvíjený analyzátor testují pan Valencia Scott z korporace AT&T a pan Rich Polyak z farmaceutické společnosti Aventis. Pro potřeby rychlejšího vývoje aplikace jsme během prosince založili vývojovou uzavřenou poštovní konferenci netflow-l@cesnet.cz.
obsah |
následující
|