Differences between revisions 37 and 50 (spanning 13 versions)
Revision 37 as of 2006-08-24 09:05:04
Size: 18897
Editor: akovacs
Comment:
Revision 50 as of 2006-08-24 12:33:52
Size: 16660
Editor: akovacs
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
[[TableOfContents]]
Line 75: Line 76:
=== NetFlow v9 és SCTP konfiguráció Cisco eszközökön ===

A Cisco első !NetFlow v9 SCTP képes implementációja a 12.2(4)6T verziószámú IOS-ben jelent meg. A projekt keretében a teszteléshez felhasznált konfiguráció a következő volt:
 * Cisco 7206 VXR router, IO-GE és PA-FE kártyák
 * IOS verzió: 12.4(9)T

Megjegyzés: a tesztek alatt a fentemlített IOS verzió instabilitást mutatott SCTP !NetFlow exportálás alkalmazásakor, ezért produkciós hálózati eszközön egyenlőre ne alkalmazzuk.

Az alábbi konfigurációs példa az SCTP alapú exportálás beállítását mutatja (ld. még előző szakasz a !NetFlow konfigurációhoz):


== Netflow v9 monitorozó eszközök ==


A jelenleg rendelkezésre álló !NetFlow eszközök egy közel teljes gyűjteménye megtalálható a SWITCH (svájci kutatói hálózat) honlapján, az alább URL-en:

http://www.switch.ch/tf-tant/floma/software.html

=== 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:

http://nfdump.sourceforge.net

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):

attachment:nfdump_model.jpg

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:
Line 86: Line 115:
     ipv6 flow-export destination 195.111.98.214 50000 sctp
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
Line 89: Line 141:
A fenti parancs a 195.111.98.214 IP címre, az 50000-es SCTP port-ra próbálja meg küldeni a !NetFlow rekordokat. A parancs kiadását követően SCTP konfigurációs módba kerülünk, ahol további lehetőségeink vannak az SCTP kapcsolat előnyeinek kihasználására:

{{{

sctp_test.vh.hbone.h(config-flow-export-sctp)#?
SCTP export configuration commands:
  backup Specify the SCTP backup parameters
  default Set a command to its defaults
  exit Exit from SCTP configuration mode
  no Negate a command or set its defaults
  reliability Specify the SCTP reliability

}}}

'''backup''': a ''backup destination'' parancs segítségével megadhatunk egy másodlagos export célt is, amennyiben az elsődleges céllal megszakad a kapcsolat (ld. fent), akkor a hálózati eszköz erre fog átállni. A ''backup fail-over'' paranccsal beállíthatjuk, hogy mennyi ideig (msec) várjon a hálózati eszköz az elsődleges céllal való kapcsolat megszakadása után, mielőtt a másodlagos célra váltana át. A ''backup mode redundant'' parancs szabályozza, hogy a backup SCTP kapcsolatban a másodlagos céllal folyamatos társítás (association) álljon fenn, amellyel ellentétben a ''backup mode fail-over'' módban a másodlagos SCTP kapcsolat kizárólag az első hibája után épül fel.

{{{

sctp_test.vh.hbone.h(config-flow-export-sctp)#backup destination 10.1.1.1 49999
sctp_test.vh.hbone.h(config-flow-export-sctp)#backup fail-over 3000
sctp_test.vh.hbone.h(config-flow-export-sctp)#backup mode redundant
sctp_test.vh.hbone.h(config-flow-export-sctp)#backup restore-time 1000

}}}

A ''backup restore-time'' segítségével specifikálhatjuk, hogy egy esetleges kiesés után az elsődleges export célnak mennyi ideig (msec) kell folyamatos kapcsolatban lennie a hálózati eszközzel, mielőtt visszaállna erre a célra az exportálás.

A ''reliability'' parancs az SCTP kapcsolat megbízhatósági szintjét hivatott szabályozni.

{{{

sctp_test.vh.hbone.h(config-flow-export-sctp)#reliability ?
  full Export data with full reliability
  none Export data unreliably
  partial Export data with partial reliability

}}}

A lehetőségek itt a következők lehetnek:

 * full: garantált kézbesítés, sorrendhelyes kézbesítés. Ez az alapértelmezett beállítás.
 * none: egy üzenet egyszer elküldve. Az üzenet nem kerül buffer-be, így nem küldhető át újra ha a célhoz nem jutott el.
 * partial: lehetőség van egy buffer-méret beállítására, amely a nyugtázatlan üzenetek tárolásával növeli a megbízhatóságot, ugyanakkor a beállított méret egyben korlátozza is az újraküldhető üzenetek számát.

Látható, hogy az SCTP protokoll bevezetése számos extra funkciót add hozzá a !NetFlow működéséhez és egyben növeli a megbízhatóságot is. A következőkben az SCTP protokollal kapcsolatos show parancsokat tárgyaljuk.

SCTP társítások (association) listája:

{{{

sctp_test.vh.hbone.hu#show ip sctp association list

** SCTP Association List **

AssocID: 2712747875, Instance ID: 0
Current state: ESTABLISHED
Local port: 51453, Addrs: 195.111.96.110
Remote port: 50000, Addrs: 195.111.98.214

}}}

A parancs segítségével kilistázhatóak a jelenleg érvényes SCTP társítások.

Egy SCTP társítás részletei/paraméterei:

{{{
sctp_test.vh.hbone.hu#show ip sctp association parameters 2712747875

** SCTP Association Parameters **

AssocID: 2712747875 Context: 1 InstanceID: 0
Assoc state: ESTABLISHED Uptime: 1d01h
Local port: 51453
Peers Adaption layer indication is NOT set
Local addresses: 195.111.96.110

Remote port: 50000
Primary dest addr: 195.111.98.214
Effective primary dest addr: 195.111.98.214
Destination addresses:

195.111.98.214: State: ACTIVE(CONFIRMED)
  Heartbeats: Enabled Timeout: 500 ms
  RTO/RTT/SRTT: 5000/0/0 ms TOS: 0 MTU: 1500
  cwnd: 3000 ssthresh: 52736 outstand: 0
  Num retrans: 0 Max retrans: 2 Num times failed: 0

Local vertag: A1B13F63 Remote vertag: 90266373
Num inbound streams: 10 outbound streams: 20
Max assoc retrans: 2 Max init retrans: 2
CumSack timeout: 200 ms Bundle timeout: 100 ms
Min RTO: 5000 ms Max RTO: 5000 ms
Max Init RTO (T1): 1000 ms
LocalRwnd: 9000 Low: 9000 RemoteRwnd: 52628 Low: 52628
Congest levels: 0 current level: 0 high mark: 1

}}}

Itt szükséges megadnunk azon társítás számát, amelyről az információt le szeretnénk kérni.

SCTP társítás statisztikák:

{{{

sctp_test.vh.hbone.hu#show ip sctp association statistics 2712747875

** SCTP Association Statistics **

AssocID/InstanceID: A1B13F63/0
Current State: ESTABLISHED
Control Chunks
  Sent: 17062 Rcvd: 19413
Data Chunks Sent
  Total: 2352 Retransmitted: 0
  Ordered: 2352 Unordered: 0
  Avg bundled: 1 Total Bytes: 319124
Data Chunks Rcvd
  Total: 0 Discarded: 0
  Ordered: 0 Unordered: 0
  Avg bundled: 0 Total Bytes: 0
  Out of Seq TSN: 0
ULP Dgrams
  Sent: 2352 Ready: 0 Rcvd: 0


}}}

SCTP-vel kapcsolatos hibák lekérdezése:

{{{

sctp_test.vh.hbone.hu#show ip sctp errors

** SCTP Error Statistics **

No SCTP errors logged.

}}}

A routeren aktív SCTP protokoll instanciák lekérdezése:

{{{

sctp_test.vh.hbone.hu#show ip sctp instances

** SCTP Instances **

Instance ID: 0 Local port: 51453 State: available
Local addrs: 195.111.96.110
Default streams inbound: 20 outbound: 20
Adaption layer indication is not set
  Current associations: (max allowed: 6)
  AssocID: 2712747875 State: ESTABLISHED Remote port: 50000
    Dest addrs: 195.111.98.214

}}}

SCTP összegzett statisztikák:

{{{

sctp_test.vh.hbone.hu#show ip sctp statistics

** SCTP Overall Statistics **

Control Chunks
  Sent: 98491 Rcvd: 110776
Data Chunks Sent
  Total: 12281 Retransmitted: 0
  Ordered: 12281 Unordered: 0
  Total Bytes: 1854500
Data Chunks Rcvd
  Total: 0 Discarded: 0
  Ordered: 0 Unordered: 0
  Total Bytes: 0
  Out of Seq TSN: 0
SCTP Dgrams
  Sent: 110587 Rcvd: 110776
ULP Dgrams
  Sent: 12281 Ready: 0 Rcvd: 0

Additional Stats
  Instances Currently In-use: 1
  Assocs Currently Estab: 1
  Active Estab: 185 Passive Estab: 0
  Aborts: 13580 Shutdowns: 184
  T1 Expired: 0 T2 Expired: 0

}}}

Az SCTP protokoll rendellenes viselkedésének vizsgálatát számos debug parancs segíti, ezek a következők:

{{{

sctp_test.vh.hbone.hu#debug ip sctp ?
  api Enable API debugging
  congestion Enable congestion debugging
  init Enable association initialization debugging
  multihome Enable multihoming debugging
  performance Enable performance debugging
  rcvchunks Enable receive chunk debugging
  rto Enable retrans timer debugging
  segments Enable simplified segment debugging
  segmentv Enable verbose segment debugging
  signal Enable signal debugging
  sndchunks Enable send chunk debugging
  state Enable state debugging
  timer Enable timer debugging
  warnings Enable warning debugging

}}}

A néhány debug opciót beállítva a következőhöz hasonló kimenetet kapjuk, ahol részletesen követhetőek az SCTP üzenetek, események, stb.

{{{

716316: Aug 23 17:25:27.647 MET-DST: SCTP: Sent: Assoc 2712747875: s=195.111.96.110 51453, d=195.111.98.214 50000, len 60
716317: Aug 23 17:25:27.647 MET-DST: SCTP: HEARTBEAT_CHUNK
716318: Aug 23 17:25:27.647 MET-DST: SCTP: Recv: Assoc 2712747875: s=195.111.98.214 50000, d=195.111.96.110 51453, len 60
716319: Aug 23 17:25:27.647 MET-DST: SCTP: HEARTBEAT_ACK_CHUNK
716320: Aug 23 17:25:27.647 MET-DST: SCTP: Enter Process Next Segment instance:66A1EF80 assocP:66D40880
716321: Aug 23 17:25:27.647 MET-DST: SCTP: Assoc 2712747875: Heartbeat Ack Chunk from destaddr 195.111.98.214
716322: Aug 23 17:25:27.647 MET-DST: SCTP: Assoc 2712747875: destaddr 195.111.98.214, rto updated 5000 ms
716323: Aug 23 17:25:27.647 MET-DST: SCTP: Assoc 2712747875: rtt 0 ms, srtt 0 ms, rttvar 0 ms
716324: Aug 23 17:25:28.195 MET-DST:
716325: Aug 23 17:25:28.195 MET-DST: SCTP Sent: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 1, ULP Dgrams 1
716326: Aug 23 17:25:28.195 MET-DST: SCTP Rcvd: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 0, ULP Dgrams 0
716327: Aug 23 17:25:28.195 MET-DST: Chunks Discarded: 0, Retransmitted 0
716328: Aug 23 17:25:28.195 MET-DST:
716329: Aug 23 17:25:33.347 MET-DST: SCTP: Sent: Assoc 2712747875: s=195.111.96.110 51453, d=195.111.98.214 50000, len 60
716330: Aug 23 17:25:33.347 MET-DST: SCTP: HEARTBEAT_CHUNK
716331: Aug 23 17:25:33.347 MET-DST: SCTP: Recv: Assoc 2712747875: s=195.111.98.214 50000, d=195.111.96.110 51453, len 60
716332: Aug 23 17:25:33.347 MET-DST: SCTP: HEARTBEAT_ACK_CHUNK
716333: Aug 23 17:25:33.347 MET-DST: SCTP: Enter Process Next Segment instance:66A1EF80 assocP:66D40880
716334: Aug 23 17:25:33.347 MET-DST: SCTP: Assoc 2712747875: Heartbeat Ack Chunk from destaddr 195.111.98.214
716335: Aug 23 17:25:33.347 MET-DST: SCTP: Assoc 2712747875: destaddr 195.111.98.214, rto updated 5000 ms
716336: Aug 23 17:25:33.347 MET-DST: SCTP: Assoc 2712747875: rtt 0 ms, srtt 0 ms, rttvar 0 ms
716337: Aug 23 17:25:38.195 MET-DST:
716338: Aug 23 17:25:38.195 MET-DST: SCTP Sent: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 1, ULP Dgrams 1
716339: Aug 23 17:25:38.195 MET-DST: SCTP Rcvd: SCTP Dgrams 0, Ctl Chunks 0, Data Chunks 0, ULP Dgrams 0
716340: Aug 23 17:25:38.195 MET-DST: Chunks Discarded: 0, Retransmitted 0
716341: Aug 23 17:25:38.195 MET-DST:
716342: Aug 23 17:25:39.055 MET-DST: SCTP: Sent: Assoc 2712747875: s=195.111.96.110 51453, d=195.111.98.214 50000, len 60
716343: Aug 23 17:25:39.055 MET-DST: SCTP: HEARTBEAT_CHUNK
716344: Aug 23 17:25:39.055 MET-DST: SCTP: Recv: Assoc 2712747875: s=195.111.98.214 50000, d=195.111.96.110 51453, len 60
716345: Aug 23 17:25:39.055 MET-DST: SCTP: HEARTBEAT_ACK_CHUNK
716346: Aug 23 17:25:39.055 MET-DST: SCTP: Enter Process Next Segment instance:66A1EF80 assocP:66D40880
716347: Aug 23 17:25:39.055 MET-DST: SCTP: Assoc 2712747875: Heartbeat Ack Chunk from destaddr 195.111.98.214

}}}




== Netflow v9 monitorozó eszközök ==
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:

http://nfsen.sourceforge.net

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.

attachment:nfsen1.jpg

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:

attachment:nfsen2.jpg

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:

attachment:nfsen3.jpg

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 =====




=== Network Emergency Responder & Detector (NERD) ===

http://www.nerdd.org

Network Emergency Responder & Detector (NERD) egy biztonsági monitoring eszköz, amely !NetFlow adatokat gyűjt és elemez. Képes DoS támadások felismerésére és megfelelő riasztások generálására. A NERD képes továbbá a meglévő !NetFlow adatok utólagos biztonsági és forgalmi elemzésére. A NERD eszközt a SURFnet B.V. és TNO Information and Communication Technology készíti.

A NERD működése nagy vonalakban a következő:
 * A felhasználó szűrési feltételeket, kritériumokat definiálhat a forrás-, célcím és portok megadásával ill. egyéb forgalmi kritériumokkal.
 * A szűrési feltételek egy MySQL adatbázisban tárolódnak.
 * A bejövő flow információkat a NERD folyamatosan figyeli és összeveti az SQL adatbázisban tárolt kritériumokkal. Amennyiben az egyes kritériumokat a forgalom túllépi, akkor a NERD risztást generál.
 * Az egyes riasztások egy web-es felületen listázhatóak, a hozzájuk tartozó részletekkel együtt.

Az ígéretes NERD eszköz fejlesztését a jelek szerint egy évvel ezelőtt befejezték, így félkész állapotban van. Használata nem ajánlott.

A specifikálható szabályok túl merevek (pl. adott IP címek között, adott portok között menő UDP forgalom, ha túllép egy szintet, akkor riaszt) és alapszintűek (pl. port tartomány nem adható meg), stb.


=== samplicator ===

Munkaszakasz 2.3: Flow alapú hálózat monitoring rendszer tesztelése és vizsgálata

TableOfContents

Bevezető

A flow alapú forgalom monitorozásról általában

A flow alapú hálózati forgalom monitorozás kiemelkedő fontossággal bír nagy kiterjedesű hálózatok üzemeltetésében, hiszen lehetővé teszi, hogy a hálózati forgalmat továbbító aktív eszközökből részletes információt nyerjünk az átmenő forgalmat alkotó folyamokról (flow).

A flow alapú monitorozás általános felhasználási területei:

  • Nagy forgalmat bonyolító számítógépek megtalálása. Forgalom alapú számlázás.
  • Hálózati támadások felderítése, jellegük megfigyelése.
  • Hálózati forgalmat generáló vírussal, spyware-el fertőzött számítógépek lokalizálása.

A nagy forgalmat bonyolító számítógépek megtalálása és kiszűrése/korlátozása nagyban csökkentheti intézményünk hálózati forgalmát, amely más, esetenként lényegesebb, szintén hálózaton kommunikáló alkalmazások gyorsulásához vezethet.

A mai hálózati viszonyoknak megfelelően számítógépeink állandó támadásnak ill. vírus/spyware fertőzésnek vannak kitéve. A támadások azonosításában, lokalizálásában ill. a fertőzött számítógépek megtalálásában különösen fontos szerepet játszik a flow alapú hálózati forgalom monitorozás, amelyet ma már jónéhány felsőoktatási ill. akadémiai intézményben sikerrel alkalmaznak a fenti problémák kezelésében. A flow alapú monitorozással a következő gyanús, biztonsági kockázatot valószínűsítő hálózati forgalmak azonosíthatóak gyorsan és egyszerűen:

  • Szokatlan nagyságú ICMP forgalom: támadásra utal.

  • TCP SYN flood: Denial of Service (DoS) támadások a megtámadott számítógép/kiszolgáló erőforrásainak lekötéséhez.

  • Szokatlanul nagy mennyiségű TCP vagy UDP flow: az adott számítógép rendellenes viselkedésére utalhat. Pl. spyware fertőzött (más számítógépeket támad vagy kommunikál saját példányaival, nem kívánt tartalmat forgalmaz, stb.).

  • Egy specifikus TCP/UDP portra menő szokatlan nagyságú forgalom egyetlen számítógépről: általában ez szintén spyware vagy vírus jelenlétét valószínűsíti. Amikor egy-egy ilyen nem kívánt alkalmazást a megfelelő biztonsági csoport azonosít, megjelenik az adott spyware/vírus pontos leírása. Ezekből a leírásokból egyszerűen azonosíthatóak a megfelelő spyware-ek/vírusok ill. a fertőzött számítógép.

A fentiek természetesen mind az IPv6, mind pedig az IPv4 protokollra egyformán érvényesek.

A NetFlow

A NetFlow protokollt eredetileg a Cisco Systems dolgozta ki 1996-ban, hogy lehetővé tegye flow információk exportálását hálózati eszközeiből. A NetFlow protokoll több verziót is megélt (1, 5, 7, 8 és 9). A legszélesebb körben az 5-ös verzió használt, de természetesen a preferált, IPv6 képes verzió a 9-es. A Cisco Systems által gyártott hálózati kapcsolók és router-ek jelentős része képés NetFlow információk exportálására.

A NetFlow működési modelje az alábbi ábrán látható. A NetFlow képes hálózati eszköz folyamatosan gyűjti a rajta átmenő IP flow-k információt egy ún. NetFlow cache gyorsítótárba. Amikor ez a tár megtelik, sor került a megfelelő rekordok exportálására a NetFlow Collector Engine felé, amely általában egy szokványos kiszolgáló, lehetőleg minél nagyobb tárhellyel, hiszen a visszamenőleg tárolt flow információk nagy forgalom mellett óriásira duzzadhatnak.

attachment:netflow_model.jpg

A NetFlow az UDP protokollt használja, az exportálás jellege egyirányú, azaz kizárólag a hálózati eszköz felől érkeznek információk, a kollektor számítógép csak rögzíti és feldolgozza ezeket. A hálózati adminisztrátorok a kollektor által összegyűjtött információkat egy grafikus felületen tudják lekérdezni, ahol megfelelő feltételek megadásával képesek finomítani a lekérdezést. A lekérdezés a leggyakrabban a HTTP protokoll segítségével történik és megjelenítés értelemszerűen egy böngészővel. A megjelenítés általában grafikonos formában vagy nyers - pontosítás céljával - NetFlow rekordként történik.

A hálózati eszközök által export-ált rekordok több alapvető paramétert alkalmaznak az egyes flow-k leirásához:

  • Forrás IP cím
  • Cél IP cím
  • Forrás port
  • Cél port
  • Layer 3 protokoll típus
  • Type of Service mező (ToS v. DSCP érték)
  • Input és output interfész
  • Csomagméret
  • Flow kezdési és befejezési időbélyeg
  • TCP flag-ek, felsőbb szintű protokoll
  • Routing információ: next-hop cím, forrás AS (Autonomous System) azonosító, cél AS azonosító, forrás prefix maszk, cél prefix maszk

A NetFlow v9 alapvető jellemzői:

  • IPv4, IPv6, multicast és Multiprotocol Label Switching (MPLS) támogatás (többek között).
  • Template-ek: lehetőség van NetFlow v9 template-ek definiálására a router oldalán. Ez annyit jelent, hogy összeállítható egy azonosítóval ellátott template a router konfigurációjában, amelynek segítségével meghatározható, hogy pontosan milyen paramétereket exportáljon a router a collector felé. Néhány megjegyzés:

    • A template-ek leírását (mezők és jelentésük) a router időnként propagálja a collector alkalmazás felé, hogy azok formátumát értelmezni tudja a feldolgozó szoftver. Ilymódon biztosítható, hogy a rekord-formátumot a feldolgozó alkalmazás általános szinten kezelje és a formátum változásakor (ld. korábbi NetFlow verzióváltások) ne kelljen újraírni az alkalmazásokat.

    • A template-ek segítségével ezen túl a felhasználó által összeállított template-ekben kizárólag a felhasználó számára releváns információk kerülnek átvitelre.
    • A template-ek segítségével újabb protokollok és paramétereik egyszerűen, nagyobb változtatás nélkül exportálhatóak.
    • Jelenleg a Cisco IOS szoftverek nem támogatják a template-ek létrehozását, ezt későbbre ígérik. Így a template-ek tesztelésére nem kerülhetett sor.

Az IETF (Internet Engineering Task Force) IP Information Export (IPFIX) és Pack Sampling (PSAMP) munkacsoportjai 2003-ban a Cisco IOS NetFlow v9 protokollt választották IP flow-ok leírásához és exportálásához, eltekintve néhány apróbb változtatástól. Az IPFIX munkacsoport azért alakult, hogy egy adatmodellt illetve egy kapcsolódó protokollt definiáljon. A hamarosan megjelenő IPFIX szabvány egyébként kötelezőként írja elő az SCTP alapú adatszállítás megvalósítását az IPFIX protokoll alkalmazásakor.

NetFlow v9 IPv6 konfiguráció Cisco eszközökön

A dokumentáció [:netflow_cisco_config:ide] kattintva érhető el.

Az SCTP szállítási szintű protokoll

A Stream Control Transmission Protocol (SCTP) egy szállítási szintű protokoll, amelyet 2000-ben definiált az IETF Signaling Transport (SIGTRAN) munkacsoportja. A protokoll leírása megtalálható az RFC 2960 ill. az RFC 3286 dokumentumokban. Mint szállítási protokoll az SCTP ekvivalens mind a TCP-vel, mind pedig az UDP-vel és mégis több annál. Az alábbi linkeken egy magyar nyelvű SCTP protokoll leírás ill. alapszintű SCTP socket programozási dokumentáció található:

1. [:SCTP tutorial: Magyar nyelvű SCTP leírás]

2. [:SCTP socket: SCTP socket programozás]

3. [:SCTP cisco config: NetFlow v9 és SCTP konfiguráció Cisco eszközökön]

Netflow v9 monitorozó eszközök

A jelenleg rendelkezésre álló NetFlow eszközök egy közel teljes gyűjteménye megtalálható a SWITCH (svájci kutatói hálózat) honlapján, az alább URL-en:

http://www.switch.ch/tf-tant/floma/software.html

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:

http://nfdump.sourceforge.net

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):

attachment:nfdump_model.jpg

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:

http://nfsen.sourceforge.net

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.

attachment:nfsen1.jpg

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:

attachment:nfsen2.jpg

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:

attachment:nfsen3.jpg

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

Network Emergency Responder & Detector (NERD)

http://www.nerdd.org

Network Emergency Responder & Detector (NERD) egy biztonsági monitoring eszköz, amely NetFlow adatokat gyűjt és elemez. Képes DoS támadások felismerésére és megfelelő riasztások generálására. A NERD képes továbbá a meglévő NetFlow adatok utólagos biztonsági és forgalmi elemzésére. A NERD eszközt a SURFnet B.V. és TNO Information and Communication Technology készíti.

A NERD működése nagy vonalakban a következő:

  • A felhasználó szűrési feltételeket, kritériumokat definiálhat a forrás-, célcím és portok megadásával ill. egyéb forgalmi kritériumokkal.
  • A szűrési feltételek egy MySQL adatbázisban tárolódnak.
  • A bejövő flow információkat a NERD folyamatosan figyeli és összeveti az SQL adatbázisban tárolt kritériumokkal. Amennyiben az egyes kritériumokat a forgalom túllépi, akkor a NERD risztást generál.
  • Az egyes riasztások egy web-es felületen listázhatóak, a hozzájuk tartozó részletekkel együtt.

Az ígéretes NERD eszköz fejlesztését a jelek szerint egy évvel ezelőtt befejezték, így félkész állapotban van. Használata nem ajánlott.

A specifikálható szabályok túl merevek (pl. adott IP címek között, adott portok között menő UDP forgalom, ha túllép egy szintet, akkor riaszt) és alapszintűek (pl. port tartomány nem adható meg), stb.

samplicator

Campus6: Netflowv9Monitoring (last edited 2008-04-10 15:29:33 by localhost)