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 |