NetFlow¶
Wstęp¶
NetFlow jest protokołem opracowanym przez firmę Cisco do zbierania informacji o ruchu w sieciach IP. W architekturze NetFlow, routery zbierają statystyki ruchu IP na wskazanych interfejsach by później przekazać je w rekordach protokołu NetFlow do węzłów zbierających (ang. NetFlow collector). Przeważnie węzłami są serwery, czy oprogramowanie do wizualizacji. Protokołó NetFlow używa UDP do transportu danych, przeważnie używane porty to 2055, 9555.
Flow (przepływ) można dzdefiniować jak nieskierowną sekwencję pakietów, które mają wspólne:
- Interfejs wchodzący
- Adres IP źródłowy
- Adres IP docelowy
- Protokół IP
- Port źródłowy UDP/TCP
- Port docelowy UDP/TPC, typ i kod ICMP
- ToS IP
Przykład przepływu z narzędzia nfdump:
Date flow start Duration Proto Src IP Addr:Port Dst IP Addr:Port Packets Bytes Flows
2010-09-01 00:00:00.459 0.000 UDP 127.0.0.1:24920 -> 192.168.0.1:22126 1 46 1
2010-09-01 00:00:00.363 0.000 UDP 192.168.0.1:22126 -> 127.0.0.1:24920 1 80 1
NetFlow w Mikrotik¶
NetFlow w Mikrotik można włączyć w menu Address
należy podać
adres kolektora. Ten sam efekt można uzyskać w terminalu:
ip traffic-flow set enabled=true interfaces=all
ip traffic-flow target version=9 address=ADRES_IP:PORT
Po ustawieniu NetFlow, Mikrotik będzie wysyłał pakiety statystyk na wskazany adres i port.
Kolektory¶
goflow¶
Goflow służy jedynie do testowania czy pakiety netflow przychodzą na nasz interfejs. Goflow obsługuje jedynie Netflow w wersji 5. Można go pobrać z https://gobuilder.me/github.com/tdi/goflow.
chmod 755 goflow
./goflow -H 0.0.0.0 -p 2055
Ntop¶
Ntop jest darmowym programem do zbierania przepływów, dodatkowo potrafi działać jako kolektor NetFlow. Aby zainstalować ntop w sali laboratoryjnej, należy wydać polecenia:
root# zypper install ntop
root# mkdir /var/lib/ntop
root# ntop -i em1
Po włączeniu za pierwszym razem, ntop poprosi o ustawienie haseł dla administratora. Po tym dostępny
będzie interfejs WWW na adresie localhost:3000
. Aby skonfigurować kolektora NetFlow, należy
aktywować i skonfigurować wtyczkę NetFlow Plugins –> NetFlow –> Activate oraz
Plugins –> NetFlow –> View/Configure. W polach port
ustawiamy port 2055, w
polu Virtual NetFlow Interface Network Address
podajemy adres routera np.
192.168.1.1/255.255.255.0
. Po zapisaniu ustawień ntop będzie odbierał dane z naszego
routera.
nfdump i nfcapd¶
Pakiet nfdump jest konsolowym kolektorem NetFlow. Aby zainstalować go w salach laboratoryjnych, należy pobrać pakiet ze strony : http://nfdump.sourceforge.net/ i skompilować.
tar xvf nfdump-1.X.X.tar.gz
cd nfdump-1.X.X/
./configure && make && make install
Zostaną zainstalowane dwa polecenia: nfcapd oraz nfdump. Za pomocą nfcapd możemy zbierać pakiety NetFlow, za pomocą nfdump możemy wyświetlać je na ekranie konsoli. Przykładowe uruchomienie nfcapd:
nfcapd -S 0 -w -D -l /home/tdi/flows/ -p 2055
Przełącznik -S 0
nakazuje składać pliki w płaskiej strukturze katalogów, -w
ustawia
rotowanie plików co 5 min (można zmienić przełącznikiem -t
), -D
wprowadza nfcapd w
tryb demona, -l
ustawia folder do zapisuj zrzutów NetFlow, w końcu -p
nakazuje
nasłuchiwać na wskazanym porcie.
W katalogu /home/tdi/flows
będą zapisywane pliki, które możemy przeglądać programem
nfcapd
.
Nfcapd jako argument przyjmuje filtry zgodnie z pcap. np.
nfdump -r PLIK -c 10 'src ip 192.168.1.1 and dst port > 100'
Emiter NetFlow - fprobe¶
Pakiet fprobe
jest emiterem NetFlow, potrafi zbierać statystyki z interfejsu Linuksa i
wysyłać je do ospowiedniego kolektora. Aby zainstalować fprobe w sali laboratoryjnej należy sciągnąć
źródła z http://fprobe.sourceforge.net/ i skompilować.
zypper install libpcap-devel
tar xjvf fprobe-X.X.tar.bz2
cd fprobe-X.X/
./configure && make && make install
Podstawowe uruchomienie sondy fprobe, zbierającej statystyki na interfejsie em0 i wysyałającej pakiety na adres 127.0.0.1:2055:
root# fprobe -i em0 -p -n 7 127.0.0.1:2055
Ćwiczenia¶
- Skonfiguruj router Mikrotik, tak aby dawał dostęp do Internetu.
- Skonfiguruj na routerze wysyłanie przepływów za pomocą NetFlow.
- Skonfiguruj ntop na komputerze jako kolektor ntop.
- Skonfiguruj nfcapd na komputerze i zobacz przepływy za pomocą nfdump. Zastosuj filtry, żeby wybrać tylko przepływy jednego hosta.
- Skonfiguruj sondę fprobe.