Netflow

Allikas: Kuutõrvaja

Sisukord

Sissejuhatus

Enamus tarkvara mis koostavad graafikuid võrguliiklusest on väga staatilised. Me saame küll jälgida ,et mingil ajal on toimud väga suur koormus kuid hilisemalt on võimatu kindlaks teha mis oli asja taga, mis ip'd tekitasid teatud päeval ja kellaajal tugevat liiklust või otsida mingit kindlat ip liiklust. Netflow teeb nimetatud toimingud võimalikuks lubades koostada päringuid mingite ajahetkede kohta või jälgida valitud ajal näiteks kümmnet aktiivsemat ühendust jpm andes sisuliselt võrguliikluse logimise võimaluse.

Netflow (ingl. k. võrgu voolamine) abil saab analüüsida läbi võrgusõlme toimunud andmevahetust kasutades L3 ja L4 kihtidele vastavaid andmeid, st kasutades andmevahetust pidanud osaliste ip aadresse, portide numbreid ja protokolle (TCP, UDP, ICMP). Tavaliselt leiab Netflow kasutust sellistel eesmärkidel

  • liikluse mahtude üle arvepidamine - nt kontrollida, kas mõni arvutivõrgu kasutaja ei ole otsustanud kasutada tööalaseks kasutuseks ettenähtud võrguressurssi isiklikeks vajadusteks
  • turvalisus - vahel viitab liikluse iseloom turvaprobleemile, nt kui mõni kohtvõrgu arvuti teeb lühikese ajavahemiku jooksul erinevatele ip aadressidele suurel hulgal ühendusi, siis võib arvutis töötada pahalane

Netflow protokolli on arendanud Cisco Systems ning seda toetavad lisaks Cisco seadmetele ka mitmete muude tootjate seadmed nt Juniper ja samuti Linux, BSD ja Solaris operatsioonisüsteemid. Netflow protokollist on levinud mitmeid versioone, 2010 aasta alguses on põhiliselt kasutuses v5, vähesel määral ka v9. Seejuures tuleb arvestada, et erinevatel juhtumitel võib olla protokolli toetus implementeeritud erineval määral.

Netflow andmete kasutamiseks on tavaliselt kaks moodust

  • nn käsurea utiliidid - väljund on tavaliselt tekstilisel kujul, mida on mugav kasutada edasiseks nö masintöötluseks; käsurea utiliitidega abil saab kogutud netflow kohta esitada süsteemile täpseid küsimusi
  • visuaalsed vahendid - tulemused esitatakse graafiliselt, mida on mugav kasutada süsteemi operaatoril võrgusõlmes toimuvast ülevaate saamiseks

Ennet Netflow juurutamist tuleks läbi mõelda, millistel konkreetsetel eesmärkidel seda antud juhtumil kasutama hakata kavatsetakse ja kes kasutab. Lihtsalt nö tõenäoliselt töötavat Netflow süsteemi, mille vastu keegi peale käivitamist huvi ei tunne ja mis esimese töötamise kuu järel arvuti kõvaketta täis kirjutas ei ole mõtet pidada. Enamgi, see on kahjulik kuna tekitab võlts ettekujutuse, et võrgus toimuvast on ülevaade olemas.

Reeglina omavad 2010 aastal kasutuses olevad nö kommertstootjate spetsiaalsed võrguseadmed, st lülitud ja ruuterid, netflow tuge, kuid operatsioonisüsteemi vahenditega netflow kogumine on asendamatu juhtumil, kui on tarvis koguda andmeid virtuaalsete võrguseadmete kohta andmeid, nt OpenVPN kasutajad.

Muide edastatava infomahu vähendamiseks kasutatakse netflows koondamist ning pistelist läbivaatust ehk sampled netflow'd mille korral vaadeldakse sessiooni pakette ainult üle teatava aja (näit minut v 5minutit). Nii pole küll info päris täielik kuid siiski piisav statistika ja tagantjärgi mingite võrguinsidentide uurimiseks.

Tööpõhimõte

Ühe netflow moodustavad selliste omadustega ühes suunas liikuvad paketid

  1. lähte IP aadress (source IP address)
  2. sihtpunkti IP aadress (destination IP address)
  3. lähteport (source port (UDP või TCP port))
  4. sitpunkti port (destination port (UDP või TCP port))
  5. IP protokoll
  6. andmete sisenemise võrguseade (ingress interface)
  7. ToS tüüp (IP Type of Service)

Seega, nt ühele kahe osalise vahel toimunud nö tavalisele tcp ühendusele vastab kaks netflow'd. Netflow kogumist toetavad võrguseadmed salvestavad netflow andmeid netflow record'ite kujul, nt OpenBSD v 4.6 ruuteris kogutud tcp ühendusele vastav netflow record on selline

 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 -lähte ip aadress
  • dstaddr - sihtpunkti ip aadress
  • prot - 6 tähendab tcp
  • tcp_flags - OpenBSD netflow ei sisalda 2009 aasta lõpus andmeid TCP lippude kohta

Oluline on tähelepanna, et erinevate seadmete poolt kogutud Netflow võib sisaldada pisut erinevaid andmeid, nt AS numbri olemasolu osas.

Skeem

Tööpõhimõtet iseloomustab robustselt järgnev skeem

                    INTERNET   
                      _|_                 ___
         võrguseade  |   |______________\|   |
          ehk source |___|   flowd      /|___|            
  (nt Cisco ruuter)    |              kollektor (nfcapd, nfsen)              
                       |
               mingi WAN või LAN mida võrguseade teenindab 

Netflow kasutamisel esinevad tavaliselt kolme sorti osalised

  • netflow allikad (ingl. k. source) - nt BSD või Linux tulemüür, Cisco ruuter
  • netflow kogujad (ingl. k. collector) - tavaliselt sisaldub skeemis üks netflow koguja, 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    |
               |
               |
     ---|------|-----------|-------------------|-----
        |                  |                   |
      __|__              __|__               __|__
     |     |            |     |             |     |
     |_____|            |_____|             |_____|
 
                Erineva netflow allikad

kus

  • allikad saadavad kogujale udp pakettide vormis andmeid, vaikimisi pordile 9995/udp
  • koguja salvestab iga 5 minuti tagant saabunud andmed järgmisse nn nfdump formaadis faili

Netflow kasutamise tulemusena saavad vastused sellised küsimused

  • kui suur andmevahetuse maht (mitu ühendust st flow'd, mitu baiti, mitu paketti) käis etteantud ajavahemiku jooksul läbi võrgusõlme võrguseadme (ingl. k. interface)
  • kui suur oli andmevahetuse maht protokollide, ip aadressite ja portide kaupa (vastuseid esitades saab kasutada erinevaid järjestamisi, nt esitada mahtude kahanemise järjekorras; lisaks agregeerida esitust mingitele tunnustele vastavalt, nt mitte eristada osalisi ip aadresside täpsusega, vaid /24 subnettide kaupa)
  • kui palju toimus ssh ühendusi tulemüüri taga ja avalikus võrgus olevate arvutite vahel

Sõltuvalt sellest, kas konkreetsel kasutusjuhtumil on toetatud tcp_flags või mitte, saab otsekohesemal või vähem otsekohesemalt jälgida tcp ühenduste algatamisi.

Netflow allika ettevalmistamine

Netflow allika ettevalmistamine tähendab mingis võrgusõlmes töötava võrguseadme tööleseadmist selliselt, et ta lisaks oma nö põhitegevusele moodustaks Netflow andmeid ja saadaks neid üle võrgu Netflow kogujale.

OpenBSD pflow seadmega allika ettevalmistamine

Alates versioonist 4.5 saab OpenBSD tulemüürist väljastada pflow seadmega ja paketifiltri juhtimisel netflow andmeid. Seejuures tuleb arvestade et nii tekkivad flow'd ei sisalda tcp lippe (ingl. k. flags).

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

Kusjuures, läbi tulemüüri mineva ühenduse olekus on pflow kasutamine näidatud, nt

all tcp 192.168.96.138:10092 -> 172.16.5.191:80       ESTABLISHED:ESTABLISHED
  [1845643792 + 16385] wscale 0  [1228776485 + 16384] wscale 0
  age 00:00:03, expires in 23:59:57, 2:1 pkts, 116:64 bytes, rule 33, pflow
  id: 4bf4326d000e4b78 creatorid: d1ec4647
pflow netflow väljastamine

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

 # ifconfig pflow0 flowsrc 192.168.10.210 flowdst 192.168.10.51:9995

või faili /etc/hostname.pflow0

 # cat /etc/hostname.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]

Softflowd tarkvaraga allika ettevalmistamine

Softflowd tarkvara võimaldab jälgida seadmel liiklust, genereerida vastavat netflow andmestikku ning edastada see üle võrgu kollektorile (nt NfSen tarkvaraga kaasnev nfcapd programm). OpenBSD operatsioonisüsteemi puhul sobib tarkvara paigaldamiseks öelda

# pkg_add softflowd

mille tulemusena paigaldatakse süsteemi programmid

  • /usr/local/sbin/softflowd - deemon
  • /usr/local/sbin/softflowctl - juhtimisprogramm

käivitamiseks sobib öelda nt

# softflowd -v9 -m 50000 -i em0 -n 10.0.5.103:9997

kus

  • -v9 - genereeritakse versioon 9 netflow (v5 on tõenäoliselt 2012 aastal kõige enam kasutuses, v9 puhul on oluline nt lisandunud IPv6 tugi)
  • -i em - kasutatakse em0 seadmel kogutud andmeid
  • -n - netflow saadatakse näidatud kollektorile

Softflowd seiskamiseks sobib öelda

# softflowctl shutdown

Softflowd genereeritud netflow andmestik sisaldab ka tcp lippe.

FreeBSD Sofflowd allika ettevalmistamine

Mida sofflowd teeb?

Softflowd is flow-based network traffic analyser capable of Cisco NetFlow data export. Softflowd semi-statefully tracks traffic flows recorded by listening on a network interface or by reading a packet capture file. These flows may be reported via NetFlow to a collecting host or summarised within softflowd itself.

Miinuseks suurem resursiahnus, kui pfflowd. Samas võimaldab aga saata sagedamini flowde kirjeid, mis aitab saada võrgus toimuvast selgema pildi.

Paigaldamiseks:

# cd ports/net-mgmt/softflowd/ && make install clean

Seadistamine toimub rc.conf failist

softflowd_enable="YES"
softflowd_interfaces="em0 em1"
softflowd_em0_collector="collector:1234"
softflowd_em1_collector="collector:1235"
softflowd_em0_timeouts="-t maxlife=300"
softflowd_em1_timeouts="-t maxlife=600"
softflowd_em0_max_states="16000"
softflowd_em1_max_states="17000"
softflowd_em0_extra_args
softflowd_em1_extra_args

Näiteks

softflowd_enable="YES"
softflowd_interfaces="igb0"
softflowd_igb0_collector="192.168.1.1:9998"
softflowd_igb0_timeouts="-t maxlife=300"
softflowd_igb0_max_states="16000"

Ja käivitamiseks

# /usr/local/etc/rc.d/softflowd start

FreeBSD pfflowd allika ettevalmistamine

NB! sellel tarkvaral on kombels mitme päeva vanused flowd korraga exportida. Flow tuleb 5 minutiga aeguma panna, muidu on suht kasutu. Kahjuks pfflowd ei leidnud võimalust seda seadistada.

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

Debiani allika ettevalmistamine

Arvutist netflow saatmiseks sobib kasutada tarkvara fprobe-ng http://fprobe.sourceforge.net/, mille paigaldamiseks tuleb öelda

# apt-get install fprobe-ng

fprobe-ng tööd juhib seadistusfaili /etc/default/fprobe, nt arvutis kasutatavate tunnelite kohta, mida võrgusõlmes ei saa jälgida

INTERFACE="tun0"
FLOW_COLLECTOR="192.168.10.249:9996"
OTHER_ARGS="-fip"

fprobe-ng töötamisega kaasneb protsess

# ps aux | grep fprob
root     28246  0.0  0.0  37244  2320 ?        Ssl  14:37   0:00 /usr/sbin/fprobe -itun0 -fip 192.168.10.249:9996

nfdump tarkvara kasutamise ettevalmistamine

nfdump http://nfdump.sourceforge.net/ tarkvara võimaldab koguda, st võtta võrgust vastu ja salvestada kohalikku failisüsteemi netflow allikatest andmeid ja neid analüüsida, komplekti kuuluvad programmid

  • nfcapd - netflow koguja, töötab deemonina
  • nfdump - kogutud netflow andmete põhjal päringute tegemine, käsurealt kasutatav utiliit

nfdump tarkvara 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

nfcapd kasutamine

nfcapd käivitamine toimub nt Debian GNU/Linux operatsioonisüsteemis skriptiga

 /etc/init.d/nfdump stop|start

ning andmed kogunevad kataloogi

 /var/cache/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"

nfdump kasutamine

nfcapd deemon salvestab on tegevuse tulemusena 5 minutiliste vahedega saabunud andmeid erinevatesse aega sisaldavate failinimedega failidesse, nt mõnda aega töötanud nfcapd on Debianis moodustanud sellised failid

# cd /srv/nfsen/profiles-data/live/tulemyyr1
# find 2011 -type f -ls
27906774 1704 -rw-r--r--   1 nfsen    www-data  1738152 Jan  1  2011 2011/01/01/nfcapd.201101010000
27906775 1492 -rw-r--r--   1 nfsen    www-data  1522860 Jan  1  2011 2011/01/01/nfcapd.201101010005
27906776 1472 -rw-r--r--   1 nfsen    www-data  1501020 Jan  1  2011 2011/01/01/nfcapd.201101010010
..
27906774 1704 -rw-r--r--   1 nfsen    www-data  1538152 Feb  1  2011 2011/02/01/nfcapd.201101010000
27906775 1492 -rw-r--r--   1 nfsen    www-data  1222860 Feb  1  2011 2011/02/01/nfcapd.201101010005
27906776 1472 -rw-r--r--   1 nfsen    www-data  1601020 Feb  1  2011 2011/02/01/nfcapd.201101010010
..
27906774 1704 -rw-r--r--   1 nfsen    www-data  1438152 Mar  1  2011 2011/03/01/nfcapd.201101010000
27906775 1492 -rw-r--r--   1 nfsen    www-data  1322860 Mar  1  2011 2011/03/01/nfcapd.201101010005
27906776 1472 -rw-r--r--   1 nfsen    www-data  1401020 Mar  1  2011 2011/03/01/nfcapd.201101010010
 ...

Kogutud Netflow andmeid saab analüüsida programmiga nfdump.

Top N esitamine

Olgu objektil erinevaid tunnused ja iga tunnus võib omandada erinevaid väärtusi, nt flow oma src ip, dst ip jne tunnuste ja nende konkreetsete väärtustega. Kui selliseid objekte on terve hulk, siis pakub huvi küsimus, kui paljudel objektidel esineb väljavalitud tunnuse üks või teine väärtus, tõenäoliselt on mitmeid objekte, millel esineb selle tunnuse sama väärtus. Tulemust võib ette kujutada nii, et hulka kuuluvad objektid on jagatud gruppideks selle järgi, milline on neil väljavalitud tunnuse väärtus. Kõige loomulikum on neid gruppe järjestada sinna kuuluvate objektide arvu järgi ja seda nimetatakse flowde puhul 'Top N vastava tunnuse järgi ordered by flows' (nt Top 10 Src IP Addr ordered by flows). Lisaks saab aga neid gruppe järjestada ka teiste tunnuste järgi, nt kui palju on gruppi kuuluvate objektide mingi muu tunnuse väärtuste summa, näiteks flowde puhul pakkettide arv. Sellele vastab 'Top 10 Src IP Addr ordered by packets'). 'ordered by' osa tegeleb samade gruppide ümber järjestamisega.

Netflow kasutamisele kõige iseloomulikum on küsida ajavahemikule vastava liikluse 'Top 10 Src IP Addr ordered by flows' nimekirja, vaikimisi esitatakse kümme tulemust

# nfdump -M /srv/nfsen/profiles-data/live/rtm1-ravala  -T  -R 2013/02/21/nfcapd.201302211030:2013/02/21/nfcapd.201302211540 -n 10 -s srcip/flows
nfdump filter:
dst port 443
Top 10 Src IP Addr ordered by flows:
Date first seen          Duration Proto       Src IP Addr    Flows(%)     Packets(%)       Bytes(%)         pps      bps   bpp
2013-01-02 17:28:52.820 4313717.298 any       10.80.103.26    58366( 7.5)    1.4 M( 4.8)  323.3 M( 7.4)        0      599   226
2013-01-02 17:31:47.821 4313542.297 any      10.80.109.222    20993( 2.7)   304164( 1.0)   75.5 M( 1.7)        0      140   248
2013-01-02 17:45:40.821 4312709.297 any       10.168.2.110    11378( 1.5)   120086( 0.4)   19.2 M( 0.4)        0       35   159
2013-01-02 17:41:42.821 4312947.297 any        10.168.2.66    11317( 1.5)   119099( 0.4)   20.1 M( 0.5)        0       37   168
2013-01-02 17:28:49.820 4313720.298 any     10.168.252.147    10901( 1.4)    97211( 0.3)   15.3 M( 0.3)        0       28   157
2013-01-02 17:34:35.821 4313374.297 any      10.80.123.135    10499( 1.4)   119066( 0.4)   12.8 M( 0.3)        0       23   107
2013-01-02 17:43:06.821 4312863.297 any       10.168.2.102    10411( 1.3)    98700( 0.3)   18.9 M( 0.4)        0       34   191
2013-01-02 17:31:47.821 4313542.297 any     10.168.252.134     9432( 1.2)    57016( 0.2)    3.5 M( 0.1)        0        6    61
2013-01-02 17:34:35.821 4313374.297 any           10.0.6.95     9237( 1.2)   110843( 0.4)   12.8 M( 0.3)        0       23   115
2013-01-02 17:30:13.821 4313553.297 any      10.80.106.137     8508( 1.1)   166903( 0.6)   30.4 M( 0.7)        0       56   182

Summary: total flows: 773586, total bytes: 4.4 G, total packets: 29.9 M, avg bps: 8143, avg pps: 6, avg bpp: 146
Time window: 2013-01-02 17:27:12 - 2013-02-21 15:44:38
Total flows processed: 22858710, Blocks skipped: 0, Bytes read: 1188667908
Sys: 1.312s flows/second: 17421721.7 Wall: 1.316s flows/second: 17359103.1

kus esitatud küsimuses

  • -R 2013/02/21/nfcapd.201302211030:2013/02/21/nfcapd.201302211540 - vaatlusalune aeg on 21. veebruar 2013 kell 10:30 - 15:40
  • -s srcip/flows - esitada nn Top N väljund, järjestatuna flowde arvuna srcip aadressi kohta, kahanevalt
  • -n 10 - kümme esimest esitatud tingimustele antud vastusest
  • 'dst port 443' - käsitletakse ainult filtriga klappivaid flowsid

ja kus esitatud vastuse päises on kirjas, et 'Top 10 Src IP Addr ordered by flows:' st vastatakse nii nagu küsiti ning esimene rida tähendab

  • Date flow start (2013-01-02 17:28:52.820) - küsimuses esitatud tingimustele vastava vastuse esimese flow alguse aeg, raske öelda, miks see on jaanuar
  • Duration - küsimuses esitatud tingimustele vastava vastuse flowde kestus (ei tea, miks see arv on nii suur)
  • Proto (TCP) - küsimuses esitatud tingimustele vastava vastuseks olevate flowde protokoll
  • Src IP Addr - küsimuses esitatud tingimustele vastava vastuseks olevate flowde srcip väärtus
  • Flows - flowde arv
  • Packets (1.4 M) - küsimuses esitatud tingimustele vastava vastuseks olevate flowdele vastav andmevahetuse maht pakettides
  • Bytes (323.3 M) - küsimuses esitatud tingimustele vastava vastuseks olevate flowdele vastav andmevahetuse maht baitides
  • pps - packets per second, pakette sekundis
  • bps - bytes per second, baite sekundis
  • bpp - bytes per packet, baite paketi kohta

Lisaks vastuse jaluses on öeldud, et

  • ajavahemikule vastavate flowde koguarv, mida analüüsis kasutati on 773586
  • ajavahemikule vastav kogu andmevahetuse maht on 4.4 G megabaiti
  • huvitav, mis 'Time window: 2013-01-02 17:27:12 - 2013-02-21' algab kaugel minevikust

Lühidalt peaks vastusest aru saama nii, et antud ajavahemikul tehti 10.80.103.26 aadressilt 58366 tcp ühendust suvalistele dest ip aadresside pordile 443 (http päringuid toimus tõenäoliselt rohkem kuna ühe tcp ühenduse peal saab üldiselt teha mitu http päringut).

Samasisulisi päringuid saab teha NfSen veebiliideses, mida on kirjeldatud punktis Netflow Processing kasutamine.

Netflow recordite esitamine

Kogutud Netflow recordite esitamiseks saab kasutada filtriks lisaks tcpdump programmist tuttavatele kitsendustele netflow'le iseloomulikke võimalusi, nt flowle vastavate ip pakettide arv

# nfdump -R 2010/12/18/nfcapd.201012181510:2010/12/18/nfcapd.201012181725  -o long 'packets < 3'

lisaks saab kostümiseerida väljundi formaati, nt

# nfdump -R 2010/12/18/nfcapd.201012181510:2010/12/18/nfcapd.201012181725 -o "fmt:%ts %td %pr %sap -> %dap %flg %tos %pkt %byt %fl" 'packets < 3'

TCP lippude kasutamine

Üldiselt saavad TCP paketil olla sellised lipud

UAPRSF

kus

  • U - URG
  • A - ACK
  • P - PUSH
  • R - RST
  • S - SYN
  • F - FIN

Lippude kasutamisel tuleb arvestada, et ühe flow juures salvestatakse kõik selle flow pakettides nähtud lipud. Näiteks esitades ajavahemikul kogutud flowd, mis sisaldavad ainult R lipuga TCP pakette

# nfdump -R 2010/12/18/nfcapd.201012181510:2010/12/18/nfcapd.201012181725  -o long 'flags R and not flags UAPSF'      
Date flow start          Duration Proto      Src IP Addr:Port          Dst IP Addr:Port   Flags Tos  Packets    Bytes Flows
2010-12-18 16:40:50.826     0.000 TCP      10.7.109.173:29136   ->   192.168.110.149:80    ...R..   0        1       46     1
2010-12-18 16:40:50.957     0.000 TCP      10.112.253.140:13993 ->   192.168.110.149:80    ...R..   0        1       46     1
2010-12-18 16:40:50.966     0.000 TCP      10.253.195.245:14040 ->   192.168.110.149:80    ...R..   0        1       46     1
2010-12-18 16:40:51.395     0.000 TCP      10.124.68.207:13648  ->   192.168.110.149:80    ...R..   0        1       46     1

Muud näited

$ nfdump -b -R 2011/12/01 -t 2011/12/04.00:00:00-2011/12/05.23:59:50 'net 10.0.25.0/24 and host 10.65.42.42 and port 80'
  • -R ütleb, millisest kataloogist andmeid kasutada
  • -t ütleb ajalise piirangu
  • -b võtmega saab agregeerida vastused nö kahesuunalistena (st nt ühele tcp ühendusele vastab väljundis üks rida), kuid seejuures peab arvestama, et selline esitus võtab rohkem ressurssi

Netflow pärigu tulemuse salvestamine netflow formaadis faili toimub -w võtmega

$ nfdump -r nf.netflow -w nf-192.168.10.10.netflow 'host 192.168.10.10'

NfSen süsteemi ettevalmistamine Debian Squeeze operatsioonisüsteemiga

NfSen tarkvara kasutatakse sellistel eesmärkidel

  • netflow kogumise juhtimine - nfsend deemon
  • netflow analüüs - NfSen veebiliides
  • netflow analüüsil põhinevate alteride väljastamine - nfsend deemon

netflow koguja ettevalmistamine

NfSen tarkvara juhib iseseisvalt nfcapd deemonit, st netflow koguja ettevalmistamise osas piisab nfdump tarkvara paigaldamisest

 # apt-get install nfdump

NfSen analüsaatori ettevalmistamine

Paketihaldusest peavad olema paigaldatud

# apt-get install apache2 php5 librrds-perl libmailtools-perl libsocket6-perl

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

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

Lisada kasutaja nfsen gruppi www-data, tulemusena nt

# id nfsen
uid=1001(nfsen) gid=1001(nfsen) groups=1001(nfsen),33(www-data)

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
    DirectoryIndex nfsen.php
  </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.5.tar.gz

Seejärel tuleb ettevalmistada sobiva sisuga NfSen seadistusfail /usr/src/nfsen-1.3.5/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

Enne NfSen käivitamist tuleb veenduda, et Debiani paketihalduse nfdump deemon ei töötaks

# ps aux | grep nfdump
root     10708  0.0  0.0   2916   572 ?  S  10:36   0:00 /usr/bin/nfcapd -D -l /var/cache/nfdump

ning et ta edaspidi ei eksitaks

# inssrv -r nfdump

NfSen käivitamiseks sobib öelda

 # /srv/nfsen/bin/nfsen start
 Starting nfcapd: tulemyyr1[12931].
 ...
 Starting nfsend.

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 Debian Squeeze operatsioonisüsteemiga

# cat /etc/init.d/nfsen
#!/bin/sh
set -e

### BEGIN INIT INFO
# Provides:             nfsen
# Required-Start:       $local_fs $remote_fs $network $time
# Required-Stop:        $local_fs $remote_fs $network $time
# Should-Start:         $syslog
# Should-Stop:          $syslog
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    NfSen Server
### END INIT INFO

#!/bin/bash
case "$1" in
  start)
    echo "Starting NfSen server"
    /srv/nfsen/bin/nfsen start
    ;;
  stop)
    echo "Stopping NfSen server"
    /srv/nfsen/bin/nfsen stop
    ;;
  *)
     echo "Usage: /etc/init.d/nfsen {start|stop}"
  exit 1
esac
exit 0

ja rc kataloogides linkide moodustamiseks öelda

# insserv nfsen

NfSen seadistusfaili muutmine

NfSen seadistuse muudatus võib nt seisneda netflow allika juurdelisamises, selleks tuleb teha vastav muudatus nfsen.conf faili %sources väärtuses ning muudatuse kehtestamiseks öelda

# /srv/nfsen/bin/nfsen reconfig
New sources to configure : moraal
Continue? [y/n] y

Add source(s): moraal:
Add source 'moraal'     Start nfcapd:  moraal[29646]

Restart nfsend:[12933]

Käsu andmise tulemusena sooritatakse vajalikud tegevused sh öeldakse stop ja start NfSen protsessidele. Olemasoleva allika omaduste muutmisel piisab NfSen protsessid seisata ja käivitada.

NfSen tarkvara uuendamine

Nt v. 1.3.2 -> 1.3.5 uuenduse tegemiseks tuleb uue versiooni nfsen.tar.gz lahti pakkida kuhugi kõrvalisse kataloogi ja öelda seal

# ./install.pl /srv/nfsen/etc/nfsen.conf

Tulemusena asendatakse /srv/nfsen/libexec jt failid kusjuures eelnevalt kogunenud netflow andmed säilivad.

NfSen süsteemi ettevalmistamine FreeBSDga

Nfseni paigaldus FreeBSDle

Lisaks NfSen tarkvarale on vajalik paigaldada ka mingi PHP toega veebiserver, nt Apache. Seejärel võib peale portsude uuendamist installida nfseni järgnevalt

# cd /usr/ports/net-mgmt/nfsen
# make install clean

Kõigepealt tuleb teha seadistusfail korrektseks /usr/local/etc/nfsen.conf ning seejärel startida nfsen -R konfifail võtmega nii ,et ta initsialiseeriks end ja seadistaks profiili ja RRD failid.

# nfsen -R /usr/local/etc/nfsen.conf

ja siis võime serveri käivitada

# nfsen start

Tulemüürist tuleks avada udp 9995 port

Veebist peame ligipääsetavaks tegema kausta /usr/local/www/nfsen kus asub php's kirjutatud veebiliides flowde graafiliseks vaatamiseks ja päringute loomiseks.

Info mida kogutakse salvestakse kausta /usr/local/var/nfsen/profiles/live/flow-allika-nimi

Vaikimisi on defineeritud vaid üks source ja näites kasutame samuti ainult seda. Tegelikult pole nende arv piiratud ning neid võib lisada vastavalt vajadustele veel.

Nfsen uuendamine

Enne upgrademist on ehk tarvilin backupida varasem profiil, mida saab teha järgnevate käskudega

# cd /usr/ports/net-mgmt/nfsen/work/nfsen-snapshot-20060810/helpers
# ./mk_backup.sh /path/to/your/profilestatdir /path/to/backupdir

Projekti koduleht http://nfsen.sourceforge.net/

NfSen süsteemi ettevalmistamine OpenBSD operatsioonisüsteemiga

TODO

Tarkvara paigaldamine

Tarkvara paigaldamiseks tuleb öelda

# pkg_add nfsen   
nfsen-1.3.2p0:bzip2-1.0.5: ok                                                                                                              
nfsen-1.3.2p0:sqlite3-3.6.23p0: ok                                                                                                         
nfsen-1.3.2p0:python-2.5.4p5: ok                                                                                                           
nfsen-1.3.2p0:flow-tools-0.68.5p0: ok                                                                                                      
nfsen-1.3.2p0:nfdump-1.5.8p2: ok                                                                                                           
nfsen-1.3.2p0:p5-Time-TimeDate-1.20: ok                                                                                                    
nfsen-1.3.2p0:p5-Mail-Tools-2.04: ok                                                                                                       
nfsen-1.3.2p0:nfprofile-1.5.8p1: ok                                                                                                        
nfsen-1.3.2p0:p5-RRD-1.2.30: ok                                                                                                            
nfsen-1.3.2p0:nfsen-web-1.3.2: ok                                                                                                          
nfsen-1.3.2p0: ok                                                                                                                          
--- +nfsen-1.3.2p0 -------------------
Note: the _nfcapd user has been added to group www.

To proceed with an installation or upgrade, adjust /etc/nfsen.conf
as required and run the configuration tool:

# install-nfsen.pl /etc/nfsen.conf

If your httpd runs in a chroot jail of /var/www you may adapt like this:

# mkdir -p /var/www/var/db
# mv /var/db/nfsen /var/www/var/db/nfsen
# ln -s /var/www/var/db/nfsen /var/db/nfsen

To start the daemon at boot, you may add this to /etc/rc.local:

[ -x /usr/local/bin/nfsen ] && /usr/local/bin/nfsen start
--- +python-2.5.4p5 -------------------
If you want to use this package as your default system python, as root
create symbolic links like so (overwriting any previous default):
 ln -sf /usr/local/bin/python2.5 /usr/local/bin/python
 ln -sf /usr/local/bin/python2.5-config /usr/local/bin/python-config
 ln -sf /usr/local/bin/pydoc2.5  /usr/local/bin/pydoc

Seejuures tuleb sooritada skripti väljundis näidatud tegevused failisüsteemis, st öelda mkdir, mv ja ln.

Tarkvara seadistamine

NfSen kataloogistruktuuri ettevalmistamiseks tuleb esmalt seadistada /etc/nfsen.conf failis netflow allikad ja seejärel öelda

# install-nfsen.pl /etc/nfsen.conf 
Check for required Perl modules: All modules found.
Setup NfSen:
Version: 1.3.2: $Id: install.pl 24 2007-11-21 09:12:03Z phaag $

Perl to use: [/usr/bin/perl]
Cleanup old files ...

Setup diretories:

Use UID/GID 649 67
Creating: /var/db/nfsen
Creating: /var/db/nfsen/run
Creating: /var/db/nfsen/tmp
Creating: /var/db/nfsen/filters
Creating: /var/db/nfsen/fmt
Creating: /var/db/nfsen/profiles-stat
Creating: /var/db/nfsen/profiles-stat/live
Creating: /var/db/nfsen/profiles-data
Creating: /var/db/nfsen/profiles-data/live

Profile live: spool directories:
Creating: vtm2
Creating: vtm1
Rename gif RRDfiles ... done.
Create profile info for profile 'live'

Rebuilding profile stats for './live'
Reconfig: No changes found!
Setup done.

* You may want to subscribe to the nfsen-discuss mailing list:
* http://lists.sourceforge.net/lists/listinfo/nfsen-discuss
* Please send bug reports back to me: peter.haag@switch.ch

Tulemusena kogutakse netflow andmeid ja esitatakse tulemusi brauseris.

NfSen kasutamine

Tööpõhimõte

  • NfSen sisendiks on nfcapd abil kogutud Netflow andmed.
  • NfSen väljundiks on vastavalt NfSen seadistustele sisendi töötlemise tulemusena failisüsteemi moodustatud failid - nfdump, rrd ja png formaadis.
  • NfSen väljundi moodustamist juhivad profiilid, mida saab NfSen veebiliidesest seadistada.
  • Brauserist ligipääsetav kasutajaliides võimaldab NfSen töö tulemusena kogutud ja töödeldud andmeid analüüsida, nt esitada erinevates vaadetes graafikuid.

Live profiiliga töötamine

NfSen kasutamisel toimub alati töö mingi profiiliga. Üldiselt on profiil mingi kindlaksmääratud vaade Netflow andmetele ja ta on määratud selliste omadustega

  • profiili nimi - selle abil saab kasutajaliideses erinevate profiilide vahel valida
  • profiili tüüp - määrab, kas profiiliga seotud andmeid salvestatakse failisüsteemis ja kui kaua neid säilitatakse
  • profiiliga filtrid - milliseid filtreid seoses profiiliga kasutatakse; filtrite abil nö sõelutakse kõigist NfSen sisendisse laekunud andmetest välja antud profiiliga seoses huvipakkuvad andmed

Vaikimisi on olemas ainult Live profiil, millel on need väärtused sellised

  • profiili nimi - Live
  • profiili tüüp - Continuous
  • profiili filtrid - filtreid ei ole rakendatud

NfSen kasutamine toimub veebipõhise haldusliidese abil aadressil http://loomaaed.tartu.ee/nfsen/nfsen.php ja paistab nt selline

Nfsen-1.gif

kus

  • pildil on avatud live profiil
  • pildil on avatud 12 tunni ajavahemik, kõik protokollid, vertikaaltelje mõõtühikuks on flowde arv sekundis
  • graafiku kohal on näha 12 tunni ajavahemikule vastavad pisemad graafikud protokollide kaupa
  • pildil on tähistatud ajavahemik 5. aprill 2010 kell 8.00 - 16.00
  • statistika tabelis on esitatud tähitatud ajavahemikul võrgusõlme rtm1-rava läbinud flowde summaarsed arvud protokollide kaupa

Filtri kasutamine

Filtri tekstikasti saab kirjutada nfdump ja tcpflow sünktaksi sarnaseid avaldisi, nt

host 192.10.10.20 and host 10.100.10.10

Lisaks saab filtreid salvestada edaspidiseks kasutamiseks. Salvestatud filtrid asuvad filtrinimelistes tekstifailides kataloogis /srv/nfsen/var/filters.

Profiilide moodustamine

Profiile moodustatakse netflow andmetele erinevate vaadete moodustamiseks, nt

  • teenuse järgi - veebi, eposti ja nimeteenusega seotud liiklus
  • võrgu järgi - kohtvõrgu, wifi leviala ja serverite võrgusegmendi arvutitega seotud liiklus

Profiili moodustamisel tuleb valida kahe profiili tüübi vahel

  • continuous - andmete lisandumisel salvestatakse profiiliga seotud failisüsteemi ossa andmeid juurde
  • history - profiiliga seotud andmed katavad mingi minevikus alganud ja minevikus lõppenud ajavahemiku

lisaks saab profiil olla

  • nö tavaline - profiiliga seotud andmed salvestatakse failisüsteemi
  • shadow (ingl. k. vari) - profiil on nö loogiline ja kasutab live profiili andmeid rakendades neile oma filtreid, andmeid eraldi failisüsteemi ei salvestata

Profiili moodustamisel on kaks valikut, 1:1

Nfsen-2.gif

kus algselt tuleb näidata source'id ning filtrid (mis on kõigi source'ide puhul samad esmaselt profiili seadistusel)

ja individual channels

Nfsen-3.gif

kus esmalt ei näidata source'isid ega filtreid, need tuleb sisestada järgmistel profiili tekitamise dialoogides. Järgmises dialoogis tuleb lõpetuseks

  • vajutada rohelise linnukese kujulist Commit nuppu
  • oodata kuni Building Profile progressi riba näitab valmis

Mõlemal viisil tehtud profiili tulemus on iseenesest samasugune.

Kui netflow andmete salvestamise ressurss pole failisüsteemis piiramatu, siis nii kasutaja poolt lisatud ja samuti vaikimisi olemas oleva live profiili jaoks on mõttekas seada mingi piirang, kas mahu järgi või aja järgi. Nt näidata expire väärtuseks '730d', mis tähendab, et jooksvalt kustutakse kahest aastast vanemad andmed.

Netflow Processing kasutamine

Veebipõhises haldusliideses saab kergesti vastused mh sellistele küsimustele, sisuliselt ülal punktis Top N esitamine (viidatud punkt maksab tähelepanelikult läbi lugeda, seal kirjeldatakse, mis on Top N statistik) käsitletud info

  • millistelt ip aadressidelt tehakse etteantud ip aadressile kõige enam pöördumisi
  • millistele ip aadressidele tehakse etteantud ip aadressilt kõige enam pöördumisi

Nfsen-4.gif

kus

  • Source - milliste andmetega tegeleda
  • Filter - töötatakse ainult filtriga klappivate flowdega
  • Options - Top N (tunnuseks src ip, järjestatud flowde arvu järgi)
  • esitatakse vastav nfdump käsk ning selle väljund, vt Top N esitamine

Alertide seadistamine

NfSen võimaldab seadistatud tingimuste netflows esinemise puhul saata alerti st teate emailile või üldisemalt, sooritada mingi tegevuse meelepärase programmi käivitamise teel. Alerti seadistamine toimub valides veebiliideses

Alerts -> ...

Tulemusena tekib failisüsteemi kaks alerti nimega tildega algavat kataloogi, nt (kusjuures sellesse kataloogi kopeeritakse ajutisel filtriga tabatud netflow sissekandeid sisaldav fail)

  • /srv/nfsen/profiles-data/~test_alert_1/test_alert_1 - ajutisted netflow andmed
 /srv/nfsen/profiles-data/~test_alert_1/test_alert_1/nfcapd.201307012345
  • /srv/nfsen/profiles-stat/~test_alert_1 - alteri seadistused, filter, .rrd jms

Nt sellise sisuga seadistusfail

# cat alert.dat 
name = test_alert_1
status = enabled
version = 130
type = 1
trigger_type = 1
trigger_number = 1
trigger_blocks = 6
channellist = tm1-vala-pm
action_type = 1
action_email = priit@loomaaed.tartu.ee
action_subject = Alert triggered
action_system = 
action_plugin = 
condition=0:0:0:0:1:150:0

Vaikimisi saab alerti seaditada saatma teate saatmist eposti aadressile. Programmi käivitamiseks peab esmalt valmistama ette vastava plugina.

Alertide toimimist saab lähemalt uurida asendades /usr/bin/nfdump programmi nt sellise skriptiga

# cp /usr/bin/nfdump /usr/bin/nfdump.orig
# cat /usr/bin/nfdump
#!/bin/sh
echo "`date +%H:%M:%S` nfdump $@" >> /tmp/nfdump.log
find /srv/nfsen/profiles-data/~* -ls >> /tmp/nfdump.log
cp /srv/nfsen/profiles-data/~test_alert_1/test_alert_1/nfcapd.201307012215 \
  /tmp/fail-`date +%s | sha256sum | base64 | head -c 8 ; echo`

/usr/bin/nfdump.orig "$@"

Nt selleks, et seadistada alert tingimusel, et filtris näidatud flowsid oleks enam kui 150 ühe ip dst aadressi pihta 5 minuti jooksul (tundub, et seda ajavahemikku ei saa muuta), tuleb valida

Conditions based on individual Top 1 statistics:
  -> Flows 
    -> of Top 1 DST IP Addresse > 150

sellega kaasneb taustal taolise päringu tegemine

nfdump -r /srv/nfsen/profiles-data/~test_alert_1/test_alert_1/nfcapd.201307022120 -o pipe -q -n 1 -s srcip/flows

Epostiga saadetud alert sõnumi saadetakse vaikimisi sarnase template põhjal

$MAIL_BODY       = q{
Alert '@alert@' triggered at timeslot @timeslot@
};

ja on nt

Subject: Alert triggered
Alert 'test_alert_1' triggered at timeslot 201307022120

Pluginate kasutamine

Paigaldatud pluginaid näeb valides

Plugins -> ...

Pluginad on kahte sorti

  • frontend - kirjutatud PHP keeles ja paigutatud veebijuurika kataloogis alamkataloogi plugins
  • backend - kirjutatud Perl keeles ja paigutatud NfSen installatsiooni kataloogis alamkataloogi plugins

Reeglina peab frontend pluginale vastama backend plugin, vastupidi aga mitte tingimata.

Kasulikud lisamaterjalid

nfsen utiliidi kasutamine

nfsen programmi erinevate võtmetega saab mitmeid tegevusi sooritada, nt küsida profiili kohta infot

# bin/nfsen -l live      
name    live
group   (nogroup)
tcreate Sun Apr  4 21:00:00 2010
tstart  Sat Jul 14 11:50:00 2012
tend    Wed Apr 17 19:00:00 2013
updated Wed Apr 17 19:00:00 2013
expire  300 days 0 hours
size    2.2 TB
maxsize 0
type    live
locked  0
status  OK
version 130
channel tm1-avala     sign: + colour: #0000ff order: 1        sourcelist: tm1-avala Files: 79826    Size: 1883625832448
channel tm1-avala-sf  sign: + colour: #9bbaf3 order: 2        sourcelist: tm1-avala-sf      Files: 79826    Size: 538659143680
channel tm2-dala      sign: + colour: #49b549 order: 3        sourcelist: tm2-dala  Files: 79826    Size: 24793690112
channel tm2-dala-sf   sign: + colour: #0ef60e order: 4        sourcelist: tm2-dala-sf       Files: 79826    Size: 6942523392
channel ol      sign: + colour: #c84b0e order: 5        sourcelist: ol  Files: 79826    Size: 14321504256
channel ol-sf   sign: + colour: #f1a27b order: 6        sourcelist: ol-sf       Files: 79826    Size: 451502080

nfsen kasutamine OpenBSD pflow netflow andmestikuga

OpenBSD pflow andmestik koguneb paketifiltri abil, st sissekanded tekivad vastavalt selle, kuidas reeglid pakettidega töötavad, nt

** nfdump -M /srv/nfsen/profiles-data/live/rtm1-ravala  -T  -R 2013/05/15/nfcapd.201305151315:2013/05/15/nfcapd.201305151535 -c 20
nfdump filter:
host 10.228.6.212 and port 80
Date flow start          Duration Proto      Src IP Addr:Port          Dst IP Addr:Port   Packets    Bytes Flows
2013-03-26 19:56:12.536 4294966.296 TCP          10.0.9.39:38880 ->     10.228.6.212:80           6      430     1
2013-03-26 19:56:12.536 4294966.296 TCP       10.228.6.212:80    ->        10.0.9.39:38880        4      737     1
2013-03-26 19:56:12.536 4294966.296 TCP     10.80.123.135:62071 ->     10.228.6.212:80           6      430     1
2013-03-26 19:56:12.536 4294966.296 TCP       10.228.6.212:80    ->   10.80.123.135:62071        4      737     1

kus

  • 10.0.9.39 arvutist esitati läbi tulemüüri wget päring 10.228.6.212 arvutile
  • src port muutus tulemüürist läbiminekul
  • paketiga tegeles kaks reeglit, üks lubas paketi sisse ja teine välja
  • otseselt ei ole võimalik siseneva ja väljuva reegli tekitatud üheselt netflow'd seostada, kaudselt aga küll (nt pakettide arvu, toimumise aja, andmete hulga järgi)

Lokaalse whois serveri kasutamine

2011. aasta keskel v. 1.3.5 sisaldab libexec/Lookup.pm teeki, kuhu on sisse kirjutatud whois.cyberabuse.org serveri nimi, kuid see server ei paku enam sobival viisil teenust ning tulemuseks on, et NfSen liideses ei saa enam ip aadressidel teha päringuid. Üheks alternatiiviks on seadistada käima lokaalne whois teenus, nt ühendades 43/tcp port ja sellise Perli skripti sisend ja väljund kokku inetd abil

# cat /srv/data/nfsen/libexec/whois.pl 
#!/usr/bin/perl
my $filename = <>;

foreach $rida($filename) {
  $vastus=`/usr/bin/whois $rida`;
  print $vastus;
  last;
};

ning kasutades /etc/inetd.conf seadisusfailis rida

43 stream tcp nowait nobody /srv/data/nfsen/libexec/whois.pl whois.pl

whois päringute esitamise kontrollimiseks sobib öelda

$ whois -h 127.0.0.1 127.0.0.1
.. 
NetRange:       127.0.0.0 - 127.255.255.255
CIDR:           127.0.0.0/8
OriginAS:       
NetName:        SPECIAL-IPV4-LOOPBACK-IANA-RESERVED
NetHandle:      NET-127-0-0-0-1
Parent:         
NetType:        IANA Special Use

Kasutaja peab ise otsustama, kas talle selline lahendus sobib.

NfSen SURFmap plugin

SURFmap kasutamiseks tuleb paigaldada sellised PHP teegid

# apt-get install php5-curl php5-sqlite

Arhiivis on esimesel tasemel on sellised failid-kataloogid

drwxr-xr-x 2 1002 1002  4096 Jun 12 09:12 backend
-rw-r--r-- 1 1002 1002 11848 Jun 12 09:03 changelog.txt
drwxr-xr-x 3 1002 1002  4096 Jun 12 09:12 frontend
-rwxr-xr-x 1 1002 1002  8144 Jun 12 09:10 install.sh
-rwxr-xr-x 1 1002 1002  1215 Jun  9 13:28 install-svn-trunk.sh
-rw-r--r-- 1 1002 1002  5308 May 20 18:50 readme.txt

Ehk on suurem kontroll tulemuse üle kui paigaldada käsitsi, üldiselt on readme.txt sees kõik vajalik kirjas, maksab ainult üle korrata, et

  • backend - sisalduv fail SURFmap.pm tuleb paigutada kataloogi /srv/nfsen/plugins
# cp backend/SURFmap.pm /srv/nfsen/plugins
  • frontend - kogu kataloogi sisu kopeerida NfSen veebijuurika alla
# cp -a frontend/* /var/www/nfsen/plugins
$config['map_center'] = ...
$config['nfsen_config'] = "/srv/nfsen/etc/nfsen.conf";
$config['internal_domains'] = ...

Kasulikud lisamaterjalid