Różnice między wybraną wersją a wersją aktualną.
| Nowa wersja | Poprzednia wersja | ||
|
zsk:netflow [2017/10/27 19:10] jkonczak utworzono |
zsk:netflow [2017/10/28 09:47] (aktualna) jkonczak [MRTG] |
||
|---|---|---|---|
| Linia 1: | Linia 1: | ||
| - | ==== Konfiguracja potrzeba do drugiej części zajęć ==== | + | Tematem przewodnim zajęć jest zbieranie informacji o ruchu sieciowym. \\ |
| Do części zajęć przyda się ruch sieciowy wygenerowany w trakcie zajęć. \\ | Do części zajęć przyda się ruch sieciowy wygenerowany w trakcie zajęć. \\ | ||
| Stąd na początku zajęć skonfiguruj zbieranie informacji o ruchu. | Stąd na początku zajęć skonfiguruj zbieranie informacji o ruchu. | ||
| - | - Skonfiguruj mikrotik: | + | ==== Konfiguracja potrzeba do drugiej części zajęć ==== |
| + | |||
| + | - Skonfiguruj router Mikrotik: | ||
| * stwórz mostek na 2 interfejsach (eth2 i eth3) | * stwórz mostek na 2 interfejsach (eth2 i eth3) | ||
| - | * dodaj klienta dhcp do eth1 | + | * dodaj klienta DHCP na interfejsie eth1 |
| - | * dodaj adres IP z sieci lokalnej do mostka | + | * dodaj adres IP z wybranej przez siebie sieci lokalnej do mostka |
| - | * serwer dhcp na mostku: | + | * uruchom serwer DHCP na mostku: |
| * stwórz pulę adresów w ''IP'' / ''Pool'' | * stwórz pulę adresów w ''IP'' / ''Pool'' | ||
| * dodaj sieć lokalną w ''IP'' / ''DHCP Server'' / ''Networks'' z bramą przez router | * 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 | + | * 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 | + | * ustaw maskaradę – w ''IP'' / ''Firewall'' / ''NAT'' dodaj regułę z celem ''masquerade'' dla pakietów wychodzących po eth1 |
| - | * włącz klienta ntp: ''System'' / ''NTP Client'' | + | * włącz klienta NTP: ''System'' / ''NTP Client'' |
| - | - Wepnij router między sieć a komputer (lub: dwa komputery) | + | - Wepnij router między sieć a komputer (lub: sieć a dwa komputery) |
| - Skonfiguruj router tak, żeby wysyłał flowy do dwóch celi: | - Skonfiguruj router tak, żeby wysyłał flowy do dwóch celi: | ||
| - | * ''ip'' / ''traffic flow'' / ''targets'' / ''add'': | + | * ''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ę wysłać na grupę multicastową, ale wymaga to więcej konfiguracji kolektorów)</small></html> |
| - | * 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'' |
| - | * ''ip'' / ''traffic flow'': zaznacz enabled | + | - Użyj dockera, aby uruchomić program ''nfsen'' i ''nfcapd'' [[https://hub.docker.com/r/koprajs/nfsen/]]:<code> |
| - | - Użyj dockera, aby uruchomić program nfsen i nfcapd [[https://hub.docker.com/r/koprajs/nfsen/]]:<code> | + | |
| systemctl start docker | systemctl start docker | ||
| docker pull koprajs/nfsen | docker pull koprajs/nfsen | ||
| Linia 25: | Linia 25: | ||
| docker run --detach --name nfsen -e NFSEN_SOURCES="router,2055,#0000ff" -p 8080:80 -p 2055:2055/udp -v `pwd`/nfsenData:/data koprajs/nfsen | 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> | </code> | ||
| - | - Zainstaluj i uruchom: <code> | + | - Zainstaluj i uruchom program ''ntop'': <code> |
| zypper addrepo https://download.opensuse.org/repositories/server:/monitoring/openSUSE_Leap_42.3/server:monitoring.repo | zypper addrepo https://download.opensuse.org/repositories/server:/monitoring/openSUSE_Leap_42.3/server:monitoring.repo | ||
| zypper in ntop | zypper in ntop | ||
| Linia 32: | Linia 32: | ||
| ntop --interface none --http-server 3000 --daemon | ntop --interface none --http-server 3000 --daemon | ||
| </code> | </code> | ||
| - | - skonfiguruj program ntop: | + | - skonfiguruj program ''ntop'': |
| - | * wejdź w przeglądarce na adres localhost:3000 | + | * wejdź w przeglądarce na adres http://localhost:3000 |
| * wybierz ''plugins'' / ''netflow'' / ''activate'' | * wybierz ''plugins'' / ''netflow'' / ''activate'' | ||
| * podaj port i zatwierdź kliknięciem ''set port'' | * podaj port i zatwierdź kliknięciem ''set port'' | ||
| Linia 41: | Linia 41: | ||
| 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 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. | + | 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 na stronie www. |
| - Uruchom serwer apache:<code> | - Uruchom serwer apache:<code> | ||
| Linia 62: | Linia 62: | ||
| indexmaker /tmp/mrtg.cfg > /srv/www/htdocs/mrtg/index.html | 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 | 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> | + | chmod a+x /srv/www/cgi-bin/14all.cgi |
| + | cp /tmp/mrtg.cfg /srv/www/cgi-bin | ||
| + | </code> Uwaga: skrypt CGI w OpenSUSE potrzebuje łatki poprawiającej ścieżki do plików:<code diff 01_14all.cgi_opensuse_paths.patch> | ||
| --- 14all.cgi.orig 2017-10-27 11:45:40.820157082 +0200 | --- 14all.cgi.orig 2017-10-27 11:45:40.820157082 +0200 | ||
| +++ 14all.cgi 2017-10-27 11:46:29.328157992 +0200 | +++ 14all.cgi 2017-10-27 11:46:29.328157992 +0200 | ||
| Linia 74: | Linia 76: | ||
| # if RRDs (rrdtool perl module) is not in the module search path (@INC) | # if RRDs (rrdtool perl module) is not in the module search path (@INC) | ||
| # uncomment the following line and change the path appropriatly | # uncomment the following line and change the path appropriatly | ||
| - | </code> | + | |
| - | - Przejrzyj konfgurację MRTG (plik ''/tmp/mrtg.cfg''). | + | </code><html><small></html>Automatyczna aplikacja łatki: ''patch /srv/www/cgi-bin/14all.cgi < 01_14all.cgi_opensuse_paths.patch'' <html></small></html> |
| + | - Przejrzyj konfgurację MRTG (plik ''/tmp/mrtg.cfg'') | ||
| * Jakie OID są używne do odpytywania o zajętość łącza? | * Jakie OID są używne do odpytywania o zajętość łącza? | ||
| * Skąd MRTG wziął nazwy interfejsów i adresy IP? | * Skąd MRTG wziął nazwy interfejsów i adresy IP? | ||
| + | - Podejrzyj wiresharkiem zapytania wygenerowane przez MRTG | ||
| - Wejdź przeglądarką na stworzoną przez siebie stronę: http://localhost/mrtg/ | - Wejdź przeglądarką na stworzoną przez siebie stronę: http://localhost/mrtg/ | ||
| Linia 90: | Linia 94: | ||
| (adres sieciowy, protokół, numer portu, …) do tego samego celu (adres sieciowy, protokół, numer portu, …). | (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. | + | 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. | 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) | [[https://www.juniper.net/us/en/local/pdf/app-notes/3500204-en.pdf|J-Flow]] (Juniper) | ||
| Linia 98: | Linia 102: | ||
| <html><small></html> | <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]]. | + | 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ść. | 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> | <html></small></html> | ||
| Linia 108: | Linia 112: | ||
| Informacje te są eksportowane – wysyłane z użyciem protokołu NetFlow. \\ | 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. | + | Protokół NetFlow używa UDP, nie ma jednego standardowego portu. |
| Informacje są następnie odbierane i gromadzone przez **kolektor**. | Informacje są następnie odbierane i gromadzone przez **kolektor**. | ||
| Linia 114: | Linia 118: | ||
| Zgromadzone dane można analizować odpowiednimi narzędziami. | 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]] | + | <html><small></html> |
| + | Szczegółowy opis działania NetFlow i różnice między wersjami: [[http://etutorials.org/Networking/network+management/Part+II+Implementations+on+the+Cisco+Devices/Chapter+7.+NetFlow/Fundamentals+of+NetFlow/|[1] ]] | ||
| + | [[http://etutorials.org/Networking/network+management/Part+II+Implementations+on+the+Cisco+Devices/Chapter+7.+NetFlow/New+Features+Supported+with+NetFlow+Version+9/|[2] ]] | ||
| + | <html></small></html> | ||
| ==== Prosta próba i kolektor ==== | ==== Prosta próba i kolektor ==== | ||
| Linia 130: | Linia 136: | ||
| </code> | </code> | ||
| - Generuj ruch sieciowy przez 2 minuty | - Generuj ruch sieciowy przez 2 minuty | ||
| - | - Zobacz przy pomocy programu nfdump jak wyglądają zebrane dane: <code> | + | - Zobacz przy pomocy programu ''nfdump'' jak wyglądają zebrane dane: <code> |
| cd /tmp/flows/ | cd /tmp/flows/ | ||
| nfdump -r nfcapd.… | nfdump -r nfcapd.… | ||
| - | </code> | + | </code><html><small></html>W pliku ''nfcapd.current.*'' nie należy spodziewać się zawartości.<html></small></html> |
| - | <html><small></html>W pliku ''nfcapd.current.*'' nie należy spodziewać się zawartości.<html></small></html> | + | |
| Przykładowy wynik:<html><small></html><code> | Przykładowy wynik:<html><small></html><code> | ||
| Linia 185: | Linia 190: | ||
| - Przeanalizuj konfigurację kolektora NetFlow programu ntop. | - Przeanalizuj konfigurację kolektora NetFlow programu ntop. | ||
| - | - Znajdź: | + | - W sebranych danych znajdź: |
| * wykres bieżącego użycia sieci | * wykres bieżącego użycia sieci | ||
| * listę połączeń które wymienają najwięcej danych | * listę połączeń które wymienają najwięcej danych | ||
| Linia 223: | Linia 228: | ||
| ip flow-export destination 150.254.32.68 2055 | ip flow-export destination 150.254.32.68 2055 | ||
| - | też nie łapie flow na mostku :/ | + | nie łapie flow na mostku :/ |
| show ip cache flow | show ip cache flow | ||