Erinevus lehekülje "Netflow" redaktsioonide vahel

Allikas: Kuutõrvaja
P (FreeBSD allika ettevalmistamine)
(=Tarkvara paigaldamine)
100. rida: 100. rida:
 
* saadab kasutades udp protokolli üle võrgu kogujale
 
* saadab kasutades udp protokolli üle võrgu kogujale
  
=====Tarkvara paigaldamine====
+
=====Tarkvara paigaldamine=====
  
 
Netflow infot kogutakse vaid keep state reeglite kohta.
 
Netflow infot kogutakse vaid keep state reeglite kohta.

Redaktsioon: 1. jaanuar 2010, kell 18:48

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

FreeBSD pfflowd http://www.mindrot.org/projects/pfflowd/ tarkvara

  • kogub packet filteri status messageid
  • teisendab nad cisco netflow formaati
  • saadab kasutades udp protokolli üle võrgu kogujale
Tarkvara paigaldamine

Netflow infot kogutakse vaid keep state reeglite kohta.

Tarkvara paigaldamiseks tuleb öelda

# cd /usr/ports/net/pfflowd/
# make
Paketifiltri seadistamine

pfflowd vajab enda tööks pfsync'i millelt infot koguda, selle kasutamiseks on tarvilik teha uus kernel järgnevate devicedega

device pf
device pfsync
device pflog
Netflow väljastamine

Netflow väljastamiseks peab /etc/rc.conf sisaldama pfflowd ja pfsync käivitamiseks selliseid ridu

pfflowd_enable="YES"
pfflowd_host="192.168.1.2:9995" # nfseni serveri ip ja port
pfsync_enable="YES"
pfsync_syncdev="msk0" #võrguseade mille liikluse flosid saadetakse

Cisco allika ettevalmistamine

Cisco võrguseadme iga interfacele, millele vastavat andmeliikluse infot koguda soovitakse tuleb öelda

ip cef
interface e0/0
  ip route-cache flow
  no ip mroute-cache

kus

  • ip cef - ...
  • interface e0/0 - töötatakse e0/0 interface'iga
  • ip route-cache flow - ...
  • no ip mroute-cache - ...

Seejärel tuleb näidata netflow versioon ning ip aadress ja porti kuhu netflow saadetakse

ip flow-export version 5 peer-as bgp-nexthop
ip flow-export destination 192.168.1.2 9995

kus

  • version 5 peer-as bgp-nexthop -
  • destination 192.168.1.2 9995 - edastada netflow andmed aadressile 192.168.1.2:9995/udp aadressile

rfdump utiliitide kasutamine

rfdump http://nfdump.sourceforge.net/ tarkvara võimaldab koguda netflow allikatest andmeid ja neid analüüsida, komplekti kuuluvad programmid

  • rfcapd - netflow koguja, töötab deemonina protsess
  • rfdump - kogutud netflow andmetest päringute tegemine, käsurealt käivitatav utiliit

rfdump utiliitide paigaldamine

Debian GNU/Linux operatsioonisüsteemis paigaldatakse tarvkara

 # apt-get install nfdump

OpenBSD operatsioonisüsteemis paigaldatakse tarkvara

 # pkg_add nfdump

FreeBSD operatsioonisüsteemis paigaldatakse tarkvara

 # TODO

rfcapd kasutamine

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