R. Tomczak, Metody analizy ruchu sieciowego
Transkrypt
R. Tomczak, Metody analizy ruchu sieciowego
Metody analizy ruchu sieciowego Robert Tomczak Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok III Politechnika Częstochowska [email protected] 1 Streszczenie Celem niniejszej pracy jest przedstawienie metod analizy ruchu sieciowego, W oparciu o statystyki generowane przez urządzenia IP (routery, przełączniki warstwy 3). W tym celu powstały standardy takie jak NetFlow, JFlow, SFlow. Wszystkie te rozwiązania bazują na gromadzeniu informacji o przepływających przez urządzenie sieciowe pakietach. Poprzez analizę tych informacji możliwe jest m.in. monitorowanie pracy sieci komputerowej, rozwiązywanie problemów. W tym artykule zostały zaprezentowane przykładowe narzędzia służące do gromadzenia informacji NetFlow jak i narzędzia służące do analizowania zgromadzonych informacji. 1 Wstęp NetFlow jest to protokół sieciowy stworzony przez Cisco Systems Inc w celu zbierania informacji na temat ruchu IP w sieci. Przy użyciu kolektora zbierane są informacje z routerów lub przełączników warstwy 3. Obsługa NetFlow została zaimplementowana w niemal każdym routerze Cisco, który jest obsługiwany przez IOS (ang. Internetwork Operating System). Pakiety NetFlow zawierają wszystkie niezbędne informacje odnośnie pakietów przepływających przez urządzenie IP, np. takie jak adres źródłowy pakietu, adres docelowy, next hop czy też rozmiar. Analiza pojedynczego flow nie daje zbyt wiele możliwości. Z pomocą przychodzą jednak analizatory NetFlow, umożliwiając nam analizę większej ilości Flow. Za pomocą tych narzędzi możemy przeanalizować zebrane pakiety pod kątem: - użytych protokołów - adresów oraz numerów portów docelowych jak i źródłowych - obciążenia interfejsów - możliwe jest dokładne przeanalizowanie wielkości ruchu sieciowego - diagnostyki sieci. 1 2 Historia NetFlow NetFlow w wersji v1 został zaprezentowany w 1990 roku. Pierwsza implementacja w IOS 11, dla routerów Cisco 7000,7200,7500. Najnowszą wersją jest v10. Wersja NetFlow V1 V2,V3,V4 V5 Opis Wersja pierwsza, ograniczona do IPv4 Nigdy nieopublikowana Najbardziej popularna, ograniczona do IPv4 jednak w stosunku do V1 wspiera maski IP oraz numery AS V6 Niewspierany V7 NetFlow v5 z dodatkowym polem ‘source router’ przeznaczony dla switchy Cisco Catalyst V8 Inny sposób prezentacji V5 V9 Wsparcie IPv6, MPLS, BPG nexthop V10 Inaczej IPFIX, najnowszy standard w zasadzie V9 z dodatkowymi definiowalnymi polami. Powyższa tabela przedstawia zmiany, które zaszły w poszczególnych wersjach NetFlow. Pogrubione zostały obecnie najpopularniejsze standardy. Standardy te nie są wspieranie tylko przez Cisco Systems, na ich implementacje zdecydowali się również producenci tacy jak NetFlow v5 (Huawei, Juniper, Packeteer, Riverbed), NetFlow v9 (EnteraSys). 3 Budowa pakietów NetFlow v5 oraz NetFlow v9 Fundamentalną różnicą pomiędzy NetFlow v5 oraz v9 jest to, iż NetFlow v5 w przeciwieństwie do v9 ma stały format struktury danych: Budowa rekordu NetFlow v5 Adres źródłowy (IP) Adres docelowy (IP) Next hop(IP) Znacznik interfejsu wejściowego Znacznik interfejsu wyjściowego Liczba pakietów Liczba bajtów Czas rozpoczęcia Flow Czas zakończenia Flow Port źródłowy Padding Flagi TCP TCP/UDP Źródłowy AS Długość maski (źródło) Długość maski (docelowo) 2 Port docelowy Type of Service Docelowy AS padding Budowa rekordu NetFlow v9 NetFlow v9 natomiast jest dużo bardziej elastyczny w porównaniu do v5. Budowa rekordu definiowana jest w tzw. Template flow-set. Rekord ten poprzedza właściwy rekord zawierający informacje NetFlow definiując jednocześnie jego strukturę. Konfigurując NetFlow v9 na urządzeniach Cisco można wybrać spośród następujących pól: Umożliwia to elastyczne dopasowanie exportowanego Flow do konkretnych potrzeb. 4 Konfiguracja routera Topologia testowa R2(config)#interface fastEthernet 1/1 R2(config-if)#ip route-cache flow R2(config)#ip flow-export destination 192.168.2.2 9001 R2(config)#ip flow-export version 5 Po wprowadzeniu takiej konfiguracji, ruch występujący pomiędzy hostami zostanie zapisany w cache NetFlow v5, następnie po jego przepełnieniu przesłany do kolektora znajdującego się pod adresem 192.168.2.2 na porcie 9001. 3 5 Kolektor Przykładowym kolektorem jest nfcapd zawarty w NFdump. Nfdump jest zestawem narzędzi do zbierania oraz przetwarzania NetFlow. - Wspiera NetFlow w wersji v1,v5,v7,v9 oraz IPFix. - Napisany w c – szybkość (kolektor musi być szybki) np. 25 gb/dzień - Obsługiwany z poziomu linii komend -p (port, na który przesyłany jest NetFlow) -l (folder do zapisu NetFlow) -w (parametr określający czas rotacji w minutach) -D (uruchamianie, jako deamon) 6 Analiza zgromadzone NetFlow W zestawie Nfdump znajduje się również narzędzie do prostej analizy zgromadzonego przy pomocy nfcapd NetFlow. Po wykonaniu polecenia nfdump z podanym katalogiem, w którym znajdują się nasze NetFlow, uzyskujemy czytelne statystyki przedstawiające informacje na temat: - czasu rozpoczęcia jak i zakończenia flow - adresu źródłowego - adresu docelowego - portu źródłowego - portu docelowego - ilości przesłanych danych. Przy pomocy nfdump możliwe jest również proste filtrowanie zgromadzonego NetFlow. Ponieważ nfdump jako argument przyjmuje filtry zgodnie z pcap, możliwe jest ograniczenie wyświetlonych rezultatów na przykład do danego source ip: 4 7 Graficzne analizatory Przykładowym graficznym analizatorem NetFlow, jest Nfsen. NFsen jest aplikacją webową przeznaczoną do analizy danych zebranych przypomocy nfcapd. Aplikacja ta składa się z dwóch części: - programu napisanego w Perl działającego w tle Nfsend uruchamiającego nfcapd oraz graficznego interfejsu napisanego w PHP. Instalacja oraz podstawowa konfiguracja sprowadza się tylko do modyfikacji pliki konfiguracyjnego. Niezbędne jest podanie urządzeń, z których chcemy zbierać netflow. Przy czym określamy nazwę urządzenia, port, na którym prowadzony będzie nasłuch oraz typ zbieranego flow. Możliwe jest jednoczesne zbieranie informacji z wielu urządzeń. Fragment pliku konfiguracyjnego: %sources = ( 'Urzadzenie' => { 'port' => '9995', 'col' => '#ff0000', 'type' => 'netflow' },); Interfejs graficzny nfsen umożliwia wygodną interpretacje ruchu sieciowego z nadzorowanych urządzeń. Udostępniając przy tym wszystkie niezbędne narzędzia do przeszukiwania, filtrowania zgromadzonego flow. 5 8 Podsumowanie W powyższym artykule zostały zaprezentowane przykładowe narzędzia służące do zbierania oraz analizy danych o strumieniach przepływających przez urządzenia sieciowe określane jako NetFlow. Wszystkie przedstawione narzędzia są narzędziami udostępnianymi na licencji Freeware. Zapewniają one podstawowe funkcjonalności oraz niezbędną wydajność do podstawowej analizy ruchu sieciowego. Istnieją również komercyjne rozwiązania takie jak np. „NetFlow Traffic Analyzer” firmy SolarWinds udostępniające możliwość bardziej wnikliwej analizy oraz lepszej prezentacji ruchu sieciowego. 9 Bibliografia [1] http://en.wikipedia.org/wiki/NetFlow [2] http://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/iosnetflow/prod_white_paper0900aecd80406232.html [3] http://www.lancope.com/blog/netflow-v5-vs-netflow-v9/ [4] http://nfsen.sourceforge.net/ [5] http://www.manageengine.com/products/netflow/help/cisco-netflow/cisco-ios-netflow.html [6] http://en.wikipedia.org/wiki/NetFlow [7] http://nfdump.sourceforge.net/ 6