nfdump és nfsen (Netflow Sensor)
Az nfdump és az nfsen talán a legnépszerűbb flow collector és megjelenítő eszköz-csomag, amely ingyenesen és szabadon hozzáférhető a BSD license feltételeinek megfelelően. A szoftver a SWITCH (Swiss Education and & Research Network) fejleszti.
nfdump
Az nfdump egy számos eszközt tartalmazó szoftver-csomag, amely elérhető az alábbi URL-en:
Az nfdump fontosabb eszközei:
nfcapd: NetFlow információ gyüjtő daemon. Fogadja a hálózati eszközök által küldött NetFlow rekordokat és adatfile-okban tárolja ezeket. Az adatfile-ok időnként rotálódnak (tipikusan 5 percenként). NetFlow stream-enként (tipikusan hálózati eszközönként) egy nfcapd futtatására van szükség. Az nfcapd v5, v7 és v9 verziójú NetFlow-t protokollt és rekordformátumot támogat.
nfdump: NetFlow rekord megjelentítő eszköz. Beolvassa és megjeleníti a file-ok formájában tárolt NetFlow rekordokat. Többféle megjelenítési, rendezési formát támogat (pl. legtöbbet forgalmazó host-ok listázása, különféle rendezése a rendelkezésre álló paraméterek alapján).
Az nfdump csomag:
Az alábbi ábrán az nfcapd és az nfdump működését szemléltetjük (forrás: nfdump leírás):
A hálózati eszközök felöl érkező flow exportokat egy-egy nfcapd példány rögzíti a diszken. Az egyes példányok használhatnak külön-külön, de akár közös diszk-területet is. A visszakereshető adat mennyiségét kizárólag a rendelkezésre álló diszkek szabad területe korlátozza. Egy megfelelően nagy hálózat, több száz router-ének teljes NetFlow adatmennyisége akár napi több 10Gb-ra is tehető.
Az nfcapd által file formájában rögzített flow információt az nfdump programmal listázhatjuk ki. Egy példa:
nfdump -R /usr/local/var/nfsen/profiles/live/cntrl/nfcapd.200608231735:nfcapd.200608241010 -n 100 -s record/bps Aggregated flows 329185 Top 100 flows ordered by bps: Date flow start Duration Proto Src IP Addr:Port Dst IP Addr:Port Packets Bytes Flows 2006-08-23 18:55:37.304 1.496 TCP 2001:73..:402::2.22 -> 2001:73..a4:ba0a.49865 3607 5.1 M 1 2006-08-23 22:14:45.632 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.56587 41 51023 1 2006-08-24 02:14:45.612 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.53880 41 51023 1 2006-08-24 07:08:45.556 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.56535 41 51023 1 2006-08-23 22:29:45.612 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.55317 41 51023 1 2006-08-24 01:11:45.612 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.58933 41 51023 1 2006-08-24 09:23:45.524 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.57417 41 51023 1 2006-08-23 20:17:45.808 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.58006 41 51023 1 2006-08-23 21:32:45.616 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.60263 41 51023 1 2006-08-23 20:59:45.680 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.63252 41 51023 1 2006-08-23 22:38:45.656 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.53850 41 51023 1 2006-08-24 05:53:45.512 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.51965 41 51023 1 2006-08-23 17:53:45.764 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.62553 41 51023 1 2006-08-24 01:38:45.564 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.53650 41 51023 1 2006-08-23 23:23:45.592 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.61628 41 51023 1 2006-08-24 01:23:45.556 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.57478 41 51023 1 2006-08-24 04:47:45.540 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.55844 41 51023 1 2006-08-23 20:56:45.820 0.016 TCP 2001:73..efe:774.80 -> 2001:73..1c:d58c.62561 41 51023 1
A példában 2006.08.23 17:35-től 2006.08.24 10:10-ig listázzuk a legnagyobb 100 forgalmazót, bps mértékegységben kijelezve a forgalom nagyságát. Például a -6 -o extended opciók hozzáadásával bővebb output is kérhető az IPv6-os flow-król.
A nfdump további leírásához és kezelésének elsajátításához olvassuk el a http://nfdump.sourceforge.net URL-en található leírást.
nfsen
Az nfsen a nfdump csomaghoz szervesen kötődő, a NetFlow információk web alapú megjelenítését támogató szoftver, amely az alábbi URL-en érhető el:
Az nfsen a következő funkcionalitást biztosítja:
NetFlow adatok megjelenítése az RRD (Round Robin Database) segítségével.
Egyszerű navigáció a nagymennyiségű NetFlow adat között.
NetFlow adat feldolgozása, megjelenítése egy specifikált időintervallumon belül.
- Profilok létrehozása: a teljes forgalmat magába foglaló profilokon kívül (nfsen terminológiában: live) lehetőség van bizonyos szűrési feltételek megadására, amelyek egy specifikus forgalom megfigyelését teszi lehetővé (pl. HTTP, SMTP, SSH, stb. forgalom).
- Saját plugin-ek implementálásának lehetősége.
Megjelenítés
Az alábbi ábrán az nfsen grafikus megjelenítése figyelhető meg. A grafikonon különböző színekben látható az egyes forrásokhoz tartozó forgalomat alkotó flow-k száma. Látható, hogy az ábrán a sötét ill. világoskék színnel jelzett források forgalma dominál.
A központi ábra felett a TCP, UDP és ICMP ill. egyéb forgalom nagysága kísérhető figyelemmel. Az egyes források forgalma külön-külön ill. bármely kombinációban megjeleníthető az ábra alatti forrás-lista megfelelő bejegyzéseinek kiválasztásával:
Az nfsen lehetővé teszi, hogy kijelöljünk egy korlátos időtartomány az ábrán látható módon (zölddel színezett tartomány) és fókuszált módon csak ezzel foglalkozzunk a részletes flow információk lekérdezésekor.
Amennyiben valamilyen forgalmi rendellenességet tapasztalunk a grafikonokon, akkor elsőként keressük meg azt/azokat a hálózati eszközöket, amelyeken ez a forgalom keresztülment. Jelöljük ki a gyanús időtartományt, majd kérjünk részletes flow adatokat az alábbi ábrán látható módon:
A részletes flow adatok kijelzése teljes mértékben megegyezik az nfdump-nál ismertetett formával, sőt mi több az nfsen ki is jelzi, hogy milyen paraméterekkel hajtotta végre az nfdump parancsot. A kimenetet pedig egy az egyben az oldal aljára másolja.
nfsen profilok létrehozása
Ahogy korábban említésre került, az nfsen támogatja ún. profilok létrehozását, amelyek gyakorlatilag az élő forgalmon végrehajtott speciális szűrési feltétel eredményét (azaz a forgalom egy részét) jelzi ki számunkra. Ez nagyon hasznos lehet a következő specifikus forgalmak megfigyelésében:
- Egy adott forrás vagy cél IP cím forgalmának figyelése.
- Egy adott forrás vagy cél hálózat forgalmának figyelése.
Type of Service mező szerinti csoportosítás (pl. eltérő prioritású DiffServ forgalmak megfigyelése).
- A szállítási szintű protokollokon túl pl. a felsőbb szintű protokollok szerinti forgalmat is szeretnénk monitorozni, például: HTTP, SMTP, SSH, FTP vagy egyéb forgalom.
- TCP flag-ek szerinti csoportosítás (pl. SYN flood megfigyelése).
- Forrás AS szerinti csoportosítás.
A szűrési feltételek tetszés szerint variálhatóak és a profil létrehozásakor kell őket megadni. Egy új profil létrehozásához a jobb felső sarokban látható "Selected profile" listából válasszuk ki a "New profile..." opciót. Ezt követően az alábbi képernyőt kapjuk:
A profil nevének megadása mellett ki kell jelölnünk azokat a forrásokat, amelyek résztvesznek a profil forgalmában. Egyéb paraméterek megadásán túl (ld. hivatalos nfsen dokumentáció) a legfontosabb a filter. Példaként megadunk néhány IPv6 specifikus szűrőt:
inet6 and proto tcp and dst port 80: IPv6-os HTTP forgalomra való szűrés
inet6 and proto tcp and dst port 25: SMTP forgalom
inet6 and proto tcp and dst port 22: SSH forgalom
inet6 and dst net FF1E:0:0:0:0:0:0:0/16: IPv6 multicast forgalom
A nfsen további leírásához és kezelésének elsajátításához olvassuk el a http://nfsen.sourceforge.net URL-en található leírást.