Netflow
Sisukord
- 1 Sissejuhatus
- 2 Tööpõhimõte
- 3 Skeem
- 4 Netflow allika ettevalmistamine
- 5 nfdump tarkvara kasutamise ettevalmistamine
- 6 nfdump kasutamine
- 7 NfSen süsteemi ettevalmistamine Debian Squeeze operatsioonisüsteemiga
- 8 NfSen süsteemi ettevalmistamine FreeBSDga
- 9 NfSen süsteemi ettevalmistamine OpenBSD operatsioonisüsteemiga
- 10 NfSen kasutamine
- 11 Lokaalse whois serveri kasutamine
- 12 NfSen SURFmap plugin
- 13 Kasulikud lisamaterjalid
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
- lähte IP aadress (source IP address)
- sihtpunkti IP aadress (destination IP address)
- lähteport (source port (UDP või TCP port))
- sitpunkti port (destination port (UDP või TCP port))
- IP protokoll
- andmete sisenemise võrguseade (ingress interface)
- 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
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
kus algselt tuleb näidata source'id ning filtrid (mis on kõigi source'ide puhul samad esmaselt profiili seadistusel)
ja individual channels
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
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
- pluginaid jagatakse nt aadressil http://sourceforge.net/apps/trac/nfsen-plugins/
- kasutamisjuhend asub aadressil http://nfsen.sourceforge.net/PluginGuide/plugin-guide.html
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
- kopeerida GeoIP andmebaasid kataloogi /var/www/nfsen/plugins/SURFmap/lib/MaxMind
- kohendada frontendi seadistusfailis /var/www/nfsen/plugins/SURFmap/config.php parameetreid, sobivad väärtused saab aadressilt http://192.168.10.123/nfsen/plugins/SURFmap/setup/retrievelocation.php
$config['map_center'] = ... $config['nfsen_config'] = "/srv/nfsen/etc/nfsen.conf"; $config['internal_domains'] = ...
Kasulikud lisamaterjalid
- http://nfsen.sourceforge.net/
- http://nfdump.sourceforge.net/
- http://en.wikipedia.org/wiki/Netflow
- http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.22.tar.gz
- http://www.securityfocus.com/infocus/1796 - esimene osa
- http://www.securityfocus.com/infocus/1802 - teine osa
- http://www.youtube.com/watch?v=oipMSiBWB08
- http://www.team-cymru.org/
- http://www.networkuptime.com/tools/netflow/ hulk erinevaid flowde analüüsimis programme