Nfsen i Nfdump – monitoring sieci – Netflow
Na początek mam pytania do Ciebie.
Czy monitorujesz sieć?
Oczywiście, że monitorujesz sieć. Odpytujesz urządzenia o stan portów, ilość sesji na firewallu, stan peerów BGP i wiele innych parametrów.
Czy wiesz ile masz “ruchu” na porcie TCP 53?
Ok, dosyć tych pytań, przechodzimy do meritum. Dzisiaj będzie o monitoringu sieci z wykorzystaniem Netflow.
Co to jest Netflow?
Jest to protokół opracowanym przez Cisco System (Ci od routerów) i służy do zbierania informacji o ruchu w sieci. Korzystając z Netflow dostaniesz informacje np.: o adresach IP (źródłowym i docelowym) jak i o portach. Dowiesz się ile ruchu masz do pojedynczych ASN.
Netflow został opracowany przez Cisco. Czy tylko urządzenia Cisco wspierają Netflow?
Nie, Netflow jest wspierany na urządzeniach Juniper Networks, Nokia, Huawei i kilku innych.
Podobnym protokołem do Netflow jest sFlow. Listę urządzeń wspierających sFlow znajdziesz na: https://sflow.org/products/network.php
Zalety stosowanie Netflow.
Dzięki zbieraniu flow z sieci możesz dowiedzieć się nie tylko, w jakim stopniu są obciążone interface-y, ale też jakie usługi sieciowe i hosty wysycają łącza.
Uzyskasz informację o wolumenie ruchu jaki masz do konkretnych systemów autonomicznych. Dzięki tej informacji możesz świadomie dobierać dostawców łącz i kształtować politykę routingu BGP.
W przypadku ataku DDoS zobaczysz, na jakie adresy atak jest skierowany.
Dobrze, dosyć teorii. Przejdźmy do działania.
Zainstalujemy Nfdump który jest kolektorem Netflow i Nfsen, który jest interfacem graficznym dla Nfdump.
Nfsen i Nfdump założenia przed instalacją
Nfdump i Nfsen będą instalowane na dedykowanym serwerze z systemem operacyjnym Ubuntu 16.04-server. System nie świadczy żadnych usług i jest dedykowanym systemem dla zbierania flow z sieci.
Przed instalacją na systemie, który już działa i świadczy jakieś usługi, należy zachować dużą ostrożność w implementacji poniższych poleceń. Niektóre polecenie mogą spowodować zmiany w istniejącej konfiguracji, co może być przyczyną niedostępności usług.
Instalacja
Przed instalacją Nfsen i Nfdump musisz zainstalować aplikacja potrzebne do działania.
apt install make gcc flex rrdtool librrd-dev libpcap-dev php librrds-perl libsocket6-perl apache2 libapache2-mod-php7.0 libtool autoconf pkg-config libbz2-1.0 libbz2-dev libbz2-ocaml libbz2-ocaml-dev bison doxygen
Instalacja Nfdump
Po instalacji zależności pobierz Nfdump. Od jakiegoś czasu Nfdump jest dostępny na github.
git clone https://github.com/phaag/nfdump.git
Wchodzimy do katalogu nfdump i wydajemy polecenie:
./autogen.sh
Gdy skrypt autogen.sh zakończy działanie sukcesem, możesz przejść do następnego punktu.
Aby móc wykorzystać pełne możliwości Nfdump musisz dodać parametry do skryptu configure.
–enable-nsel – kompilacja Nfdump, masz możliwość przetwarzania i czytania danych NSEL/NEL
–enable-nfprofile – dodanie nfprofile, aplikacji wymaganej przez Nfsen. Nprofile “czyta” dane z plików utworzonych przez nfcapd. Pozwala również na filtrowanie danych i zachowywania ich w plikach.
–enable-sflow – dodany zostaje sfcapd, który jest kolektorem sflow
–enable-readpcap – opcja pozwala na dodanie do nfcapd opcji czytania danych z plików pcap (opcja deweloperska)
–enable-nfpcapd – dodanie kolektora nfpcapd, który pozwala na przetwarzanie danych zebranych z interface-ów i plików pcap na postać netflow (opcja deweloperska)
Pełne polecenie wygląda tak:
./configure –enable-nsel –enable-nfprofile –enable-sflow –enable-readpcap –enable-nfpcapd
Gdy skrypt configure zakończy działanie sukcesem możemy wydać polecenie:
make
a następnie
make install
Gdy mamy zainstalowany Nfdump, możemy sprawdzić czy działa. Wydaj polecenie:
nfdump -V
Powyższe polecenie pokazuje wersję Nfdump, którą zainstalowałeś.
Instalacja Nfsen
Musisz pobrać Nfsen. Aktualna i stabilna wersja jest dostępna na https://sourceforge.net/projects/nfsen/files/stable/
Pobrane archiwum rozpakuj, a następnie wejdź do katalogu nfsen.
Nfsen wymaga kilku modułów PERLa. Aby łatwo dodać moduły, musimy zainstalować cpanm:
cpan App::cpanminus
Gdy masz już zainstalowany cpanm, możesz dodać modułu Mail::Header i Mail::Internet
cpanm Mail::Header
cpanm Mail::Internet
Po instalacji możesz przejść do edycji pliku nfsen-dist.conf. Jest on w katalogu etc:
nano etc/nfsen-dist.conf
Plik nfsen-dist.conf jest plikiem konfiguracyjnym dla skryptu install.pl Możemy zmienić domyślne wartości tj.: miejsce instalacji, przechowywania zebranych danych, użytkownika.
Większość wartości możemy pozostawić w konfiguracji domyślnej.
Musimy skonfigurować źródła danych:
%sources = (
'Nazwa_źródła’ => { 'port’ => '9001′, 'col’ => '#0000FF’, 'IP’ => 'adres_IP’ },
Nazwa_żródła – nazwa hosta lub interface-u, z którego będą zbierane dane. Nazwa źródła nie może zawierać znaków specjalnych.
port – port na jaki host, z którego zbieramy dane będzie się łączył
col – kolor jakim będą prezentowane dane na wykresie. Kolor musi być wyrażony heksadecymalnie.
IP – adres IP źródła
Domyślnie wszystkie dane są analizowane jako Netflow. Możemy zmienić na sFlow, poprzez dodanie type => ‘sflow’
Po zmianach w pliku nfsen-dist.conf, musimy dodać użytkownika. W domyślnej konfiguracji jest to netflow.
useradd -M -s /bin/false -G www-data netflow
Dodajemy również katalog w którym będzie Nfsen
mkdir -p /data/nfsen
Na koniec przechodzimy do instalacji Nfsen. Wydaj polecenie ./install.pl i jako parameter podaj ścieżkę do pliku nfsen-dist.conf
./install.pl ./etc/nfsen-dist.conf
Podczas instalacji może pojawić się błąd, związany z wersją RRDTools. Aby go rozwiązać, musisz zmienić linie w pliku NfSenRRD.pm, który znajduje się w katalogu libexec
if ( $rrd_version >= 1.2 && $rrd_version < 1.5 ) {
zmień na:
if ( $rrd_version >= 1.2 && $rrd_version < 1.6 ) {
Kolejnym błędem, który może pojawić się podczas instalacji jest:
Can’t use string („live”) as a HASH ref while „strict refs” in use at libexec/NfProfile.pm line 1238.
Rozwiązanie znajdziesz na https://github.com/p-alik/nfsen/issues/1. Polega ono na aktualizacji plików.
Gdy wprowadzisz zmiany, musisz jeszcze raz uruchomić skrypt install.pl
./install.pl ./etc/nfsen-dist.conf
Po instalacji, możesz skonfigurować serwer www, w twoim przypadku apache, aby wskazywał jako domyślną stronę plik nfsen.php.
Musisz zmienić konfigurację pliku 000-default.conf, który znajduje się w /etc/apache2/sites-available
Dodaj do pliku:
DocumentRoot /var/www/nfsen
DirectoryIndex nfsen.php
Gotowe
Po instalacji możemy uruchomić przeglądarkę i połączyć się z adresem serwera.
Powyższa konfiguracja zawiera podstawowe elementy, które są wymagane do działania Nfsen i Nfdump.
Może Cię zainteresować:
Podstawy BGP – co to jest BGP i do czego służy
Stany i wiadomości BGP – jakie wygląda sesja, jakie ma stany i jak jest zestawiana.
Tomasz Mikołajek
Założyciel Showroute.pl
Inżynier sieciowy lubiący dzielić się wiedzą i pomagać innym zrozumieć zawiłości działania sieci i Internetu.