Netflow

Allikas: Kuutõrvaja
Redaktsioon seisuga 1. jaanuar 2010, kell 16:06 kasutajalt Imre (arutelu | kaastöö) (NfSen süsteemi ettevalmistamine FreeBSDga)

Sissejuhatus

Newflow abil saab analüüsida ja üldistada andmevahetust nt võrgusõlme läbinud liikust.

Tööpõhimõte

TODO

tcp ühendusele vastab nt selline flow record

 Flow Record: 
   Flags       =       0x00000000
   size        =               52
   mark        =                0
   srcaddr     =       10.0.71.73
   dstaddr     =    192.168.1.239
   first       =       1261995550 [2009-12-28 12:19:10]
   last        =       1261995561 [2009-12-28 12:19:21]
   msec_first  =              248
   msec_last   =              248
   dir         =                0
   tcp_flags   =             0x 0 ......
   prot        =                6
   tos         =                0
   input       =                0
   output      =                0
   srcas       =                0
   dstas       =                0
   srcport     =             1699
   dstport     =               80
   dPkts       =               30
   dOctets     =             1853

kus

  • srcaddr -
  • dstaddr -
  • tcp_flags - OpenBSD netflow ei sisalda 2009 aasta lõpus andmeid TCP lippude kohta

Skeem

Netflow kasutamisel esinevad tavaliselt kolme sorti osalised

  • netflow allikad - üks või enam OpenBSD tulemüüri
  • netflow kogujad - tavaliselt sisaldub skeemis üks netflow koguja (ingl. k. collector), nt Debian Linux ja nfdump tarkvara
  • netflow analüsaator - nt NfSen PHP kasutajaliidesega rakendus, mis tegelikult juhib ka netflow kogumist
             _____  
            |     |  NfSen - analüsaator
            |_____|  nfdump - netflow koguja
   9995/udp    |
               |
               |
     ---|------|-----------|-------------------|-----
        |                  |                   |
      __|__              __|__               __|__
     |     |            |     |             |     |
     |_____|            |_____|             |_____|
 
           OpenBSD tulemüürid - netflow allikad

kus

  • allikad saadavad kogujale udp pakettide vormis andmeid, vaikimisi pordile 9995/udp

Netflow allika ettevalmistamine

OpenBSD allika

Alates versioonist 4.5 saab OpenBSD tulemüürist väljastada netflow standardile vastavaid sõnumeid.

Paketifiltri seadistamine

Paketifilter võimaldab netflow'd saata nö pass reegli täpsusega kasutades pflow parameetrit, nt

 pass in quick inet proto tcp from 10.0.6.174 to any port { 80, 443 } keep state (pflow) label "JSint from 10.0.6.174 to any port 80 443"

Kui reeglites ei ole imlutatult state omadusi täpsustatud, siis vaikimisi saab kõigi pass reeglite jaoks pflow sisse lülitada kasutades

 set state-defaults pflow
pflow väljastamine

Sõnumite saatmiseks tuleb öelda kuhu sõnumeid saata

 # ifconfig pflow0 flowsrc 192.168.10.210 flowdst 192.168.10.51:9995

Lisaks tuleb lubada vastav liiklus arvutist välja. Sõnumite liiklusmises saab veenduda liiklust kuulates

 # tcpdump -nei pflow0                                               
 tcpdump: listening on pflow0, link-type RAW
 17:14:15.813705 ip: 192.168.10.210.62379 > 192.168.10.51.9995: udp 1464 (DF) [tos 0x10]

FreeBSD allika ettevalmistamine

TODO

Cisco allika ettevalmistamine

TODO

rfdump kasutamine

TODO

NfSen süsteemi ettevalmistamine Debian Lenniga

Käesoleva skeemi kohaselt töötavad Debian Lenny keskkonnas kaks komponenti

  • netflow kogumine - paketialdusest paigaldatud vahenditega, nfdump pakett
  • netflow analüüs - lähtetekstist paigaldatud NfSen rakendus

netflow koguja ettevalmistamine

Debiani paketihalduses on olemas nfdump tarkvara, kuhu komplekti kuulub programm nfcapd, mille abil saab võtta vastu saadetud netflow andmeid ning promgramm nfdump, mille abil saab esitada kogutud andmeid tekstilisel kujul. Paigaldamiseks sobib öelda, kusjuures paigaldamise järel on programm käivitatud

 # apt-get install nfdump

Omakäeliselt nfcapd käivitamiseks sobib nt öelda, /tmp/nfdata kataloog peab olemas olema

 # nfcapd -z -w -l /tmp/nfdata -S "%Y/%m/%d/%H"

Mõne aja pärast on sinna ilmunud sarnased failid, nende sinu esitamiseks sobib öelda nt

 # nfdump -r /tmp/router1/nfcapd.200905031005
 Date flow start          Duration Proto      Src IP Addr:Port          Dst IP Addr:Port   Packets    Bytes Flows
 2009-05-03 13:50:25.466    30.000 UDP     192.168.10.101:21897 ->      89.25.35.28:57476        1      142     1
 2009-05-03 13:50:25.466    30.000 UDP        89.25.35.28:57476 ->   192.168.10.101:21897        1       48     1
 2009-05-03 13:50:25.466    30.000 UDP       84.50.96.138:54754 ->      89.25.35.28:57476        1      142     1
 2009-05-03 13:50:25.466    30.000 UDP        89.25.35.28:57476 ->     84.50.96.138:54754        1       48     1
 2009-05-03 13:50:25.466    30.000 UDP     192.168.10.101:631   ->   192.168.10.255:631          2      402     1
 ...

Tundub, et suhteliselt sobiv on kasutada Debiani keskkonda veebirakenduse abil netflow esitamiseks.

NfSen analüsaatori ettevalmistamine

Paketihaldusest peavad olema paigaldatud

 # apt-get install apache2 php5 librrds-perl

Lisada süsteemi kasutaja:grupp, kelle õigustes NfSen deemon käima hakkab, nt

 # groupadd nfsen
 # useradd -g nfsen -m -d /home/nfsen nfsen

Enne installeerimist tuleb moodustada failisüsteemi vajalikud kataloogid

  • /srv/www/nfsen - veebiliidese osa
  • /srv/nfsen - nfsen mootor

ja seadistada Apache veebiserver näitame NfSeni aadressil /nfsen

 <VirtualHost 192.168.1.4:80>
   ServerName www.loomaaed.tartu.ee
   ServerAdmin webmaster@loomaad.tartu.ee
   DocumentRoot /srv/www
   ErrorLog /var/log/apache2/www.loomaaed.tartu.ee-error.log
   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
   CustomLog /var/log/apache2/www.loomaaed.tartu.ee-access.log combined
 
   <Directory /srv/www/nfsen>  
     Options None
     AllowOverRide None
     Order Allow,Deny
     Allow from All
   </Directory>
 
 </VirtualHost>

NfSen tarkvara saab kopeerida aadressil http://nfsen.sourceforge.net/ toodud lingilt, seejärel sobib ta pakkida lahti nt /usr/src kataloogis juurkasutajana

 # cd /usr/src
 # tar zxf nfsen-1.3.2.tar.gz

Seejärel tuleb ettevalmistada sobiva sisuga NfSen seadistusfail /srv/nfsen/etc/nfsen.conf

 # cp nfsen-dist.conf nfsen.conf

kus on oluline üle vaadata sellised parameetrid

  • $BASEDIR = "/srv/nfsen"; - NfSen installatsioon asub selle kataloogi all, va veebiliidese osa
  • $HTMLDIR = "/srv/www/nfsen/"; - NfSen veebiliidese osa
  • $PREFIX = '/usr/bin'; - sealt kataloogist leiab NfSen nfdump utiliidid (nfcapd jt)
  • $USER = "nfsen"; - NfSen protsessid töötavad selle kasutajana, sh netflow kogumine nfcapd abil, mille NfSen käivitab)
  • $WWWUSER = "www-data"; - NfSen tahab teada, millise kasutaja:grupiga veebiserveri kasutajaliidesest korraldused tulevad
  • $WWWGROUP = "www-data";

Lisaks tuleb kirjeldada kus kuulatakse netflow allikaid

 %sources = (
   'tulemyyr1'    => { 'port'    => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
   'tulemyyr2'    => { 'port'    => '9996', 'col' => '#ff0000', 'type' => 'netflow' },
   'tulemyyr3'    => { 'port'    => '9997', 'col' => '#00ff00', 'type' => 'netflow' }
 );

NfSen tarkvara paigaldamiseks tuleb öelda juurkasutajana

 # ./install.pl etc/nfsen.conf

Tulemusena NfSen protsesse ei käivita, asjassepuutuvad failid paigutatakse seadistusfailis näidatud kataloogidesse.

NfSen käivitamine

NfSen käivitamiseks sobib öelda

 # /srv/nfsen/bin/nfsen start

Töötavale NfSenile vastavad sellised protsessid

 # ps aux | grep nfsen
 nfsen  4204  0.0  0.2  15592  1424 ?  S  17:29   0:00 /usr/bin/nfcapd -w -D -I upstream1 -p 9995 -u nfsen -g www-data \
   -B 200000 -S 1 -l /srv/nfsen/profiles-data/live/upstream1 -P /srv/nfsen/var/run/upstream1.pid
 nfsen  4207  0.0  0.1  15592   604 ?  S  17:29   0:00 /usr/bin/nfcapd -w -D -I peer1 -p 9996 -u nfsen -g www-data \
   -B 200000 -S 1 -l /srv/nfsen/profiles-data/live/peer1 -P /srv/nfsen/var/run/peer1.pid
 nfsen  4209  0.1  3.4 125680 17736 ?  Ss 17:29   0:26 /usr/bin/perl -w /srv/nfsen/bin/nfsend
 nfsen  4210  0.0  2.4 120732 12388 ?  Ss 17:29   0:12 /srv/nfsen/bin/nfsend-comm

Töö käigus moodustab NfSen nt selliseid faile

 # find /srv/nfsen/ -mmin -1
 /srv/nfsen/profiles-stat/live/flows-month.png
 /srv/nfsen/profiles-stat/live/flows-year.png
 ...
 /srv/nfsen/profiles-data/live/peer1
 /srv/nfsen/profiles-data/live/peer1/2009/12
 /srv/nfsen/profiles-data/live/peer1/2009/12/28
 /srv/nfsen/profiles-data/live/peer1/2009/12/28/nfcapd.200912280000
 /srv/nfsen/profiles-data/live/peer1/nfcapd.current.4207

Sobib kasutada nt sellist kävitusskripti

 TODO

NfSen süsteemi ettevalmistamine FreeBSDga

TODO

NfSen kasutamine

NfSen kasutamine toimub veebipõhise haldusliidese abil aadressil http://www.loomaaed.tartu.ee/nfsen/

Nfsen-1.gif

Kasulikud lisamaterjalid