przejście do zawartości
Jan Kończak
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
zsk
»
netflow
zsk:netflow
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
==== Konfiguracja potrzeba do drugiej części zajęć ==== Do części zajęć przyda się ruch sieciowy wygenerowany w trakcie zajęć. \\ Stąd na początku zajęć skonfiguruj zbieranie informacji o ruchu. - Skonfiguruj mikrotik: * stwórz mostek na 2 interfejsach (eth2 i eth3) * dodaj klienta dhcp do eth1 * dodaj adres IP z sieci lokalnej do mostka * serwer dhcp na mostku: * stwórz pulę adresów w ''IP'' / ''Pool'' * dodaj sieć lokalną w ''IP'' / ''DHCP Server'' / ''Networks'' z bramą przez router * dodaj serwer dhcp na mostku przydzielający adresy z wcześniej stworzonej puli * ustaw maskaradę: w ''IP'' / ''Firewall'' / ''NAT'' dodaj regułę z celem masquarade dla pakietów wychodzących po eth1 * włącz klienta ntp: ''System'' / ''NTP Client'' - Wepnij router między sieć a komputer (lub: dwa komputery) - Skonfiguruj router tak, żeby wysyłał flowy do dwóch celi: * ''ip'' / ''traffic flow'' / ''targets'' / ''add'': * wersja 9, port np. 2055 \\ Uwaga: jeśli używasz jednego komputera, musisz oczywiście wysyłać ruch na różne porty <html><small>(da się skonfigurować grupę multicastową, ale wymaga to więcej konfiguracji)</small></html> * ''ip'' / ''traffic flow'': zaznacz enabled - Użyj dockera, aby uruchomić program nfsen i nfcapd [[https://hub.docker.com/r/koprajs/nfsen/]]:<code> systemctl start docker docker pull koprajs/nfsen mkdir nfsenData docker run --detach --name nfsen -e NFSEN_SOURCES="router,2055,#0000ff" -p 8080:80 -p 2055:2055/udp -v `pwd`/nfsenData:/data koprajs/nfsen </code> - Zainstaluj i uruchom: <code> zypper addrepo https://download.opensuse.org/repositories/server:/monitoring/openSUSE_Leap_42.3/server:monitoring.repo zypper in ntop ntop --set-admin-password=admin chmod a+w /var/lib/ntop/rrd/ ntop --interface none --http-server 3000 --daemon </code> - skonfiguruj program ntop: * wejdź w przeglądarce na adres localhost:3000 * wybierz ''plugins'' / ''netflow'' / ''activate'' * podaj port i zatwierdź kliknięciem ''set port'' ===== MRTG ===== MRTG jest prostym i klasycznym((czytaj: bardzo przestarzałym)) narzędziem do zbierania statystyk o natężeniu ruchu sieciowego korzystając z protokołu SNMP. MRTG periodycznie odpytuje OIDy podane w konfiguracji, zbiera dane w bazie danych (np. [[https://en.wikipedia.org/wiki/RRDtool|RRD]] i może na tej podstawie narysować wykresy zużycia łącza. Wykresy są typowo udostępniane jako strona www. - Uruchom serwer apache:<code> # mv /etc/apache2/conf.d/nagios.conf /etc/apache2/conf.d/nagios.conf.disabled systemctl start apache2 </code> - Wygeneruj plik konfiguracyjny dla mrtg:<code> cfgmaker --global 'WorkDir: /srv/www/htdocs/mrtg' \ --global 'LogFormat: rrdtool' \ --global 'Interval: 00:30' \ --global 'Options[_]: bits,growright' \ --output /tmp/mrtg.cfg \ public@150.254.32.65 \ public@150.254.32.103</code> - Uruchom MRTG:<code> mkdir /srv/www/htdocs/mrtg mrtg --daemon /tmp/mrtg.cfg </code> - Dodaj statyczne pliki i skrypt CGI rysujący wykresy na żądanie:<code> indexmaker /tmp/mrtg.cfg > /srv/www/htdocs/mrtg/index.html wget http://my14all.sourceforge.net/14all-1.1.txt -O /srv/www/cgi-bin/14all.cgi </code> Uwaga: skrypt CGI w OpenSUSE potrzebuje łatki poprawiającej ścieżki do plików:<code> --- 14all.cgi.orig 2017-10-27 11:45:40.820157082 +0200 +++ 14all.cgi 2017-10-27 11:46:29.328157992 +0200 @@ -11,7 +11,7 @@ # if MRTG_lib.pm (from mrtg) is not in the module search path (@INC) # uncomment the following line and change the path appropriatly: -use lib qw(/usr/local/mrtg-2/lib/mrtg2); +use lib qw(/usr/lib64/mrtg2); # if RRDs (rrdtool perl module) is not in the module search path (@INC) # uncomment the following line and change the path appropriatly </code> - Przejrzyj konfgurację MRTG (plik ''/tmp/mrtg.cfg''). * Jakie OID są używne do odpytywania o zajętość łącza? * Skąd MRTG wziął nazwy interfejsów i adresy IP? - Wejdź przeglądarką na stworzoną przez siebie stronę: http://localhost/mrtg/ (Jeśli potrzebujesz ponownie uruchomić mrtg, wyłącz stare np. komendą: ''pkill -TERM mrtg''.) ===== NetFlow ===== NetFlow to własnościowy protokół wprowadzony przez firmę CISCO do przesyłania informacji o ruchu sieciowym [[https://en.wikipedia.org/wiki/NetFlow|[1] ]],[[https://www.cisco.com/c/en/us/products/ios-nx-os-software/flexible-netflow/index.html|[2] ]]. NetFlow operuje na przepływach (flows)[[https://en.wikipedia.org/wiki/Traffic_flow_(computer_networking)|[1] ]], gdzie każdy flow to grupa pakietów z tego samego źródła (adres sieciowy, protokół, numer portu, …) do tego samego celu (adres sieciowy, protokół, numer portu, …). Protokół NetFlow w wyniku rozwoju doczekał się 9 wersji, z których 2 są w tej chwili używane - wersja 5 i 9. Podobne (często nie do odróżnienia) rozwiązania są używane przez inne firmy produkujące sprzęt sieciowy, np. [[https://www.juniper.net/us/en/local/pdf/app-notes/3500204-en.pdf|J-Flow]] (Juniper) czy [[https://wiki.mikrotik.com/wiki/Manual:IP/Traffic_Flow|Traffic Flow]] (Mikrotik). Na bazie protokołu NetFlow (firmy CISCO) powstał otwarty standard [[https://en.wikipedia.org/wiki/IP_Flow_Information_Export|IPFIX]]. <html><small></html> Inne rozwiązanie do analizy co się dzieje w sieci wykorzystuje próbkowanie ruchu sieciowego – [[https://en.wikipedia.org/wiki/SFlow|sFlow]]. NetFlow dostarcza informacji wszystkich przepływach w sieci, natomiast sFlow zbiera próbki ruchu (początki pakietów) i pozwala analizować ich zawartość. <html></small></html> ==== Architektura ==== Na sprzęcie sieciowym zbierane są informacje o ruchu w **cache**. \\ Zwykle proces zbierający te dane nazywa się próbą (**probe**). Informacje te są eksportowane – wysyłane z użyciem protokołu NetFlow. \\ Protokół NetFlow używa UDP((co pozwala na użycie multicastu)), nie ma jednego standardowego portu. Informacje są następnie odbierane i gromadzone przez **kolektor**. Zgromadzone dane można analizować odpowiednimi narzędziami. [[http://etutorials.org/Networking/network+management/Part+II+Implementations+on+the+Cisco+Devices/Chapter+7.+NetFlow/Fundamentals+of+NetFlow/|Szczegółowy opis i różnice między wersjami]] ==== Prosta próba i kolektor ==== - Zainstaluj i uruchom [[https://sourceforge.net/projects/fprobe/|fprobe]] - prostą próbę NetFlow dla Linuksa:<code> wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/onielsen/openSUSE_Factory/x86_64/fprobe-1.1-3.107.x86_64.rpm rpm -i fprobe-1.1-3.107.x86_64.rpm fprobe -i em1 localhost:2055 </code> - Zainstaluj i uruchom [[http://nfdump.sourceforge.net/|nfcapd]] - prosty kolektor NetFlow dla Linuksa:<code> wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/smflood:/SLE_11_SPn_General/SLE_11_SP2/x86_64/nfdump-1.6.10-7.1.x86_64.rpm rpm -i nfdump-1.6.10-7.1.x86_64.rpm mkdir /tmp/flows nfcapd -p 2055 -l /tmp/flows -t 60s -w -D </code> - Generuj ruch sieciowy przez 2 minuty - Zobacz przy pomocy programu nfdump jak wyglądają zebrane dane: <code> cd /tmp/flows/ nfdump -r nfcapd.… </code> <html><small></html>W pliku ''nfcapd.current.*'' nie należy spodziewać się zawartości.<html></small></html> Przykładowy wynik:<html><small></html><code> lab-sec-15:/tmp/flows # nfdump -r nfcapd.201710271346 Date first seen Duration Proto Src IP Addr:Port Dst IP Addr:Port Packets Bytes Flows Verify map id 0: ERROR: Expected 7 elements in map, but found 2! 2017-10-27 13:45:26.079 0.000 UDP 150.254.32.65:53 -> 150.254.32.80:60831 1 160 1 2017-10-27 13:45:26.027 0.000 UDP 150.254.32.80:60831 -> 150.254.32.65:53 1 74 1 2017-10-27 13:45:29.362 0.000 UDP 150.254.32.80:33229 -> 150.254.32.65:53 1 51 1 2017-10-27 13:45:25.992 0.000 UDP 150.254.32.80:40612 -> 150.254.32.65:53 1 53 1 2017-10-27 13:45:26.016 0.000 ICMP 150.254.32.80:0 -> 213.180.141.140:8.0 1 84 1 2017-10-27 13:45:26.016 0.000 UDP 150.254.32.65:53 -> 150.254.32.80:40612 1 228 1 2017-10-27 13:45:26.027 0.000 ICMP 213.180.141.140:0 -> 150.254.32.80:0.0 1 84 1 2017-10-27 13:45:30.447 0.000 ICMP 212.77.98.9:0 -> 150.254.32.80:0.0 1 84 1 2017-10-27 13:45:30.438 0.000 ICMP 150.254.32.80:0 -> 212.77.98.9:8.0 1 84 1 2017-10-27 13:45:30.438 0.000 UDP 150.254.32.65:53 -> 150.254.32.80:33229 1 162 1 2017-10-27 13:45:30.507 0.000 UDP 150.254.32.65:53 -> 150.254.32.80:43414 1 161 1 2017-10-27 13:45:30.447 0.000 UDP 150.254.32.80:43414 -> 150.254.32.65:53 1 70 1 2017-10-27 13:45:39.583 0.000 UDP 150.254.32.80:36886 -> 150.254.32.65:53 2 106 1 2017-10-27 13:45:40.492 0.000 UDP 150.254.32.80:55274 -> 150.254.32.65:53 2 114 1 2017-10-27 13:45:40.664 0.817 TCP 150.254.32.80:45678 -> 184.172.220.163:443 12 1209 1 2017-10-27 13:45:40.662 0.002 UDP 150.254.32.65:53 -> 150.254.32.80:55274 2 414 1 2017-10-27 13:45:40.826 0.655 TCP 184.172.220.163:443 -> 150.254.32.80:45678 11 13341 1 2017-10-27 13:45:40.138 0.001 UDP 150.254.32.65:53 -> 150.254.32.80:36886 2 362 1 2017-10-27 13:45:40.140 1.339 TCP 150.254.32.80:55444 -> 184.172.220.163:80 6 425 1 2017-10-27 13:45:40.302 1.177 TCP 184.172.220.163:80 -> 150.254.32.80:55444 4 649 1 Summary: total flows: 20, total bytes: 17915, total packets: 53, avg bps: 9253, avg pps: 3, avg bpp: 338 Time window: 2017-10-27 13:45:25 - 2017-10-27 13:45:41 Total flows processed: 20, Blocks skipped: 0, Bytes read: 1168 Sys: 0.001s flows/second: 11117.3 Wall: 0.000s flows/second: 33670.0 </code><html></small></html> ==== Mikrotik + NetFlow ==== https://wiki.mikrotik.com/wiki/Manual:IP/Traffic_Flow ==== Analiza danych z NetFlow ==== Zdecydowana większość dobrych aplikacji do analizy danych zebranych z użyciem NetFlow jest płatna. \\ Na zajęciach prezentowane są dwa darmowe programy pozwalające na prostą analizę ruchu. === ntop === [[https://en.wikipedia.org/wiki/Ntop|ntop]] to program (też 'klasyczny') do przeglądania statystyk bieżącego ruchu sieciowego. Posiada wtyczkę odbierającą komunikaty NetFlow. <html><small></html> Dostępna jest też nowsza inkarnacja programu ([[https://www.ntop.org/|ntopng]]), ta jednak do użycia NetFlow wymaga zakupienia licencji. <html></small></html> - Przeanalizuj konfigurację kolektora NetFlow programu ntop. - Znajdź: * wykres bieżącego użycia sieci * listę połączeń które wymienają najwięcej danych * jaki jest udział protokołu UDP w ruchu sieciowym * jaki jest dominujący protokół na warstwie aplikacyjnej * rozkład wielkości pakietów (<html><small></html>porównaj z: [[https://en.wikipedia.org/wiki/Internet_Mix|IMIX]]<html></small></html>) === nfsen === Nfsen to aplikacja webowa prezentująca statystyki ruchu, współpracująca z kolektorem nfcapd i programem nfdump. - Porównaj wykresy ilości: przepływów (flows)/ pakietów / bajtów - Znajdź jaki flow wymienił najwięcej danych 20÷10 minut temu - Znajdź jaki flow najszybciej wymieniał dane 20÷10 minut temu - Zobacz jaki jest rozkład ruchu na protokoły (== porty źródłowe / docelowe) - Zagreguj strumienie po sieciach IP - Zobacz który host lokalny wygenerował najwięcej ruchu i z jakiego hosta zdalnego przyszło najwięcej danych - Podaj jaka była szczytowa przepustowość z ostatniej godziny <html><!-- cisco: bridge irb bridge 1 protocol ieee bridge 1 route ip int fa0/0 bridge-group 1 no shut ip route-cache flow int fa0/1 bridge-group 1 no shut int BVI 1 ip address dhcp ip route-cache flow ip flow-export version 9 ip flow-export destination 150.254.32.68 2055 też nie łapie flow na mostku :/ show ip cache flow ntp server 193.219.28.147 do show clock zypper in ntopng $EDITOR /etc/ntopng/ntopng.conf <code> --interface em1 --local-networks 150.254.0.0/16 </code> redis-server systemctl start ntopng hasła: admin/admin --></html>
zsk/netflow.1509124240.txt.gz
· ostatnio zmienione: 2017/10/27 19:10 (edycja zewnętrzna)
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Złóż / rozłóż wszystko
Do góry