Sniffing pakietów to głęboka analiza sieci, w której dekodowane są szczegóły ruchu sieciowego do analizy. Jest to jedna z najważniejszych umiejętności rozwiązywania problemów, które powinien posiadać administrator sieci. Analiza ruchu sieciowego to skomplikowane zadanie. Aby poradzić sobie z zawodnymi sieciami, dane nie są przesyłane w jednym ciągłym strumieniu. Zamiast tego jest posiekany na fragmenty wysyłane pojedynczo. Analiza ruchu sieciowego obejmuje możliwość zebrania tych pakietów danych i ponownego złożenia ich w coś znaczącego. Nie jest to coś, co można zrobić ręcznie, więc utworzono sniffery pakietów i analizatory sieci. Dzisiaj przyjrzymy się siedmiu najlepszym snifferom pakietów i analizatorom sieci.
Rozpoczynamy dzisiejszą podróż od podania podstawowych informacji o tym, czym są sniffery pakietów. Spróbujemy ustalić, jaka jest różnica – lub jeśli jest różnica – między snifferem pakietów a analizatorem sieci. Następnie przejdziemy do sedna naszego tematu i nie tylko wymienimy, ale także pokrótce przejrzymy każdy z naszych siedmiu typów. To, co mamy dla Ciebie, to połączenie narzędzi GUI i narzędzi wiersza poleceń, które działają w różnych systemach operacyjnych.
Kilka słów o snifferach pakietów i analizatorach sieci
Zacznijmy od ustalenia czegoś. Na potrzeby tego artykułu załóżmy, że sniffery pakietów i analizatory sieci to jedno i to samo. Niektórzy twierdzą, że są inni i mogą mieć rację. Ale w kontekście tego artykułu przyjrzymy się im razem, głównie dlatego, że chociaż mogą działać inaczej – ale czy naprawdę? – służą temu samemu celowi.
Sniffery pakietów zwykle robią trzy rzeczy. Po pierwsze, przechwytują wszystkie pakiety danych wchodzące lub wychodzące z interfejsu sieciowego. Po drugie, opcjonalnie stosują filtry, aby zignorować niektóre pakiety i zapisać inne na dysku. Następnie wykonują jakąś formę analizy przechwyconych danych. W tej ostatniej funkcji snifferów pakietów różnią się one najbardziej.
Do faktycznego przechwytywania pakietów danych większość narzędzi korzysta z modułu zewnętrznego. Najpopularniejszymi są libpcap w systemach Unix/Linux i Winpcap w systemie Windows. Zazwyczaj nie trzeba instalować tych narzędzi, ponieważ są one zwykle instalowane przez różne instalatory narzędzi.
Kolejną ważną rzeczą, o której należy wiedzieć, jest to, że Packet Sniffers – nawet najlepszy – nie zrobią za Ciebie wszystkiego. To tylko narzędzia. To jak młotek, który sam nie wbije żadnego gwoździa. Musisz więc upewnić się, że nauczyłeś się jak najlepiej korzystać z każdego narzędzia. Sniffer pakietów pozwoli Ci tylko zobaczyć ruch, ale od Ciebie zależy, czy wykorzystasz te informacje, aby znaleźć problemy. Na temat korzystania z narzędzi do przechwytywania pakietów pojawiły się całe książki. Ja sam kiedyś uczestniczyłem w trzydniowym kursie na ten temat. Nie próbuję cię zniechęcać. Staram się tylko ustalić twoje oczekiwania.
Jak korzystać ze sniffera pakietów
Jak już wyjaśniliśmy, sniffer pakietów przechwyci i przeanalizuje ruch. Jeśli więc próbujesz rozwiązać konkretny problem — co zwykle jest powodem, dla którego używasz takiego narzędzia — najpierw musisz upewnić się, że przechwytywany ruch to właściwy ruch. Wyobraź sobie sytuację, w której wszyscy użytkownicy narzekają, że dana aplikacja działa wolno. W takiej sytuacji najlepszym rozwiązaniem byłoby prawdopodobnie przechwytywanie ruchu w interfejsie sieciowym serwera aplikacji. Możesz wtedy zdać sobie sprawę, że żądania docierają do serwera normalnie, ale serwerowi zajmuje dużo czasu, aby wysłać odpowiedzi. To wskazywałoby na problem z serwerem.
Z drugiej strony, jeśli zauważysz, że serwer odpowiada w odpowiednim czasie, prawdopodobnie oznacza to, że problem występuje gdzieś w sieci między klientem a serwerem. Następnie przesuniesz sniffer pakietów o jeden przeskok bliżej klienta i sprawdzisz, czy odpowiedzi są opóźnione. Jeśli tak nie jest, bardziej zbliżasz się do klienta i tak dalej i tak dalej. W końcu dotrzesz do miejsca, w którym występują opóźnienia. A kiedy już zidentyfikujesz lokalizację problemu, jesteś o krok bliżej do jego rozwiązania.
Teraz możesz się zastanawiać, jak udaje nam się przechwycić pakiety w określonym punkcie. To całkiem proste, wykorzystujemy funkcję większości przełączników sieciowych zwaną dublowaniem portów lub replikacją. Jest to opcja konfiguracji, która replikuje cały ruch do iz określonego portu przełącznika do innego portu tego samego przełącznika. Załóżmy, że twój serwer jest podłączony do portu 15 przełącznika, a port 23 tego samego przełącznika jest dostępny. Podłączasz sniffer pakietów do portu 23 i konfigurujesz przełącznik tak, aby replikował cały ruch z portu 15 do portu 23. W rezultacie na porcie 23 otrzymujesz odbicie lustrzane — stąd nazwa portu lustrzanego — tego, co przechodzi przez port 15.
Najlepsze sniffery pakietów i analizatory sieci
Teraz, gdy lepiej rozumiesz, czym są sniffery pakietów i analizatory sieci, zobaczmy siedem najlepszych, jakie mogliśmy znaleźć. Staraliśmy się dołączyć mieszankę narzędzi wiersza poleceń i GUI, a także włączyć narzędzia działające w różnych systemach operacyjnych. W końcu nie wszyscy administratorzy sieci korzystają z systemu Windows.
1. Narzędzie SolarWinds Deep Packet Inspection and Analysis (BEZPŁATNA PRÓBA)
SolarWinds jest dobrze znany z wielu przydatnych bezpłatnych narzędzi i najnowocześniejszego oprogramowania do zarządzania siecią. Jedno z jego narzędzi nazywa się Narzędziem Głębokiej Inspekcji i Analizy Pakietów . Jest częścią flagowego produktu SolarWinds, Network Performance Monitor. Jego działanie różni się od bardziej „tradycyjnych” snifferów pakietów, chociaż służy podobnemu celowi.
Podsumowując funkcjonalność narzędzia: pomoże Ci znaleźć i rozwiązać przyczynę opóźnień w sieci, zidentyfikować aplikacje, których dotyczy problem, oraz określić, czy spowolnienie jest spowodowane przez sieć, czy przez aplikację. Oprogramowanie będzie również wykorzystywać techniki głębokiej inspekcji pakietów, aby obliczyć czas odpowiedzi dla ponad tysiąca aplikacji. Będzie również klasyfikować ruch sieciowy według kategorii, biznesu i społeczności oraz poziomu ryzyka, pomagając zidentyfikować ruch niezwiązany z działalnością firmy, który może wymagać filtrowania lub w inny sposób wyeliminowania.
I nie zapominaj, że narzędzie SolarWinds Deep Packet Inspection and Analysis Tool jest częścią Network Performance Monitor. NPM, jak często się go nazywa, jest imponującym oprogramowaniem z tak wieloma komponentami, że można by mu poświęcić cały artykuł. W swej istocie jest to kompletne rozwiązanie do monitorowania sieci, które łączy najlepsze technologie, takie jak SNMP i głęboka inspekcja pakietów, aby dostarczyć jak najwięcej informacji o stanie sieci. Narzędzie, które jest w rozsądnej cenie, jest dostarczane z 30-dniowym bezpłatnym okresem próbnym, dzięki czemu możesz upewnić się, że naprawdę odpowiada Twoim potrzebom, zanim zdecydujesz się go kupić.
Oficjalny link do pobrania: https://www.solarwinds.com/topics/deep-packet-inspection
2. tcpdump
Tcpdump jest prawdopodobnie oryginalnym snifferem pakietów. Został stworzony w 1987 roku. Od tego czasu jest utrzymywany i ulepszany, ale pozostaje zasadniczo niezmieniony, przynajmniej w sposobie, w jaki jest używany. Jest preinstalowany w praktycznie każdym systemie operacyjnym typu Unix i stał się de facto standardem, gdy potrzebne jest szybkie narzędzie do przechwytywania pakietów. Tcpdump używa biblioteki libpcap do przechwytywania pakietów.
Domyślnie. tcpdump przechwytuje cały ruch na określonym interfejsie i „zrzuca” go – stąd jego nazwa – na ekranie. Zrzut można również przesłać do pliku przechwytywania i przeanalizować później za pomocą jednego lub kombinacji kilku dostępnych narzędzi. Kluczem do siły i użyteczności tcpdump jest możliwość zastosowania różnego rodzaju filtrów i przesłania jego danych wyjściowych do grep – innego popularnego narzędzia wiersza poleceń systemu Unix – w celu dalszego filtrowania. Ktoś z dobrą znajomością tcpdump, grep i powłoki poleceń może zmusić go do precyzyjnego przechwytywania odpowiedniego ruchu dla dowolnego zadania debugowania.
3. Windump
Windump jest w zasadzie tylko portem tcpdump na platformę Windows. Jako taki zachowuje się w bardzo podobny sposób. Nierzadko można zobaczyć takie porty udanych programów narzędziowych z jednej platformy na drugą. Windump to aplikacja Windows, ale nie oczekuj wyszukanego GUI. Jest to narzędzie dostępne tylko z wiersza poleceń. Korzystanie z Windumpa jest zatem zasadniczo takie samo, jak korzystanie z jego uniksowego odpowiednika. Opcje wiersza poleceń są takie same, a wyniki są prawie identyczne. Dane wyjściowe z Windumpa można również zapisać do pliku w celu późniejszej analizy za pomocą narzędzia innej firmy.
Jedną z głównych różnic w stosunku do tcpdump jest to, że Windump nie jest wbudowany w system Windows. Musisz go pobrać ze strony Windump . Oprogramowanie jest dostarczane jako plik wykonywalny i nie wymaga instalacji. Jednak tak jak tcpdump używa biblioteki libpcap, Windump używa Winpcap, który, podobnie jak większość bibliotek Windows, musi być osobno pobrany i zainstalowany.
4. Wireshark
Wireshark jest punktem odniesienia w snifferach pakietów. Stał się de facto standardem i większość innych narzędzi ma tendencję do naśladowania go. To narzędzie nie tylko przechwytuje ruch, ale ma również dość potężne możliwości analityczne. Tak potężny, że wielu administratorów używa tcpdump lub Windump do przechwytywania ruchu do pliku, a następnie ładuje plik do Wireshark w celu analizy. Jest to tak powszechny sposób używania Wireshark, że po uruchomieniu pojawia się monit o otwarcie istniejącego pliku pcap lub rozpoczęcie przechwytywania ruchu. Kolejną mocną stroną Wireshark są wszystkie filtry, które zawiera, które umożliwiają skupienie się na dokładnie tych danych, które Cię interesują.
Szczerze mówiąc, to narzędzie ma stromą krzywą uczenia się, ale warto się go nauczyć. Raz po raz okaże się nieoceniony. A kiedy już się go nauczysz, będziesz mógł go używać wszędzie, ponieważ został przeniesiony do prawie każdego systemu operacyjnego i jest darmowy i open-source.
5. rekin
Tshark jest czymś w rodzaju skrzyżowania tcpdump i Wireshark. To świetna rzecz, ponieważ są to jedne z najlepszych snifferów pakietów. Tshark jest jak tcpdump, ponieważ jest narzędziem dostępnym tylko z wiersza poleceń. Ale jest również podobny do Wireshark, ponieważ nie tylko przechwytuje, ale także analizuje ruch. Tshark pochodzi od tych samych programistów co Wireshark. Jest to mniej więcej wersja programu Wireshark z wiersza poleceń. Wykorzystuje ten sam rodzaj filtrowania, co Wireshark, dzięki czemu może szybko wyizolować ruch, który chcesz przeanalizować.
Ale dlaczego, możesz zapytać, ktoś miałby chcieć wersji wiersza poleceń Wireshark? Dlaczego nie po prostu użyć Wireshark; z interfejsem graficznym ma być prostszy w obsłudze i nauce? Głównym powodem jest to, że pozwoliłoby to na użycie go na serwerze bez GUI.
6. Górnik sieci
Network Miner jest bardziej narzędziem kryminalistycznym niż prawdziwym snifferem pakietów. Network Miner podąży za strumieniem TCP i zrekonstruuje całą rozmowę. To naprawdę jedno potężne narzędzie. Może działać w trybie offline, w którym można zaimportować plik przechwytywania, aby umożliwić Network Minerowi działanie magii. Jest to przydatna funkcja, ponieważ oprogramowanie działa tylko w systemie Windows. Możesz użyć tcpdump w systemie Linux, aby przechwycić część ruchu, a Network Miner w systemie Windows, aby go przeanalizować.
Network Miner jest dostępny w wersji darmowej, ale w przypadku bardziej zaawansowanych funkcji, takich jak geolokalizacja i skrypty oparte na IP, musisz kupić licencję Profesional. Kolejną zaawansowaną funkcją wersji profesjonalnej jest możliwość dekodowania i odtwarzania połączeń VoIP.
7. Skrzypek (HTTP)
Niektórzy z naszych bardziej doświadczonych czytelników mogą twierdzić, że Fiddler nie jest snifferem pakietów ani analizatorem sieci. Prawdopodobnie mają rację, ale uznaliśmy, że powinniśmy uwzględnić to narzędzie na naszej liście, ponieważ jest bardzo przydatne w wielu sytuacjach. Fiddler faktycznie przechwyci ruch, ale nie jakikolwiek ruch. Działa tylko z ruchem HTTP. Możesz sobie wyobrazić, jak cenny może być pomimo swoich ograniczeń, biorąc pod uwagę, że tak wiele współczesnych aplikacji jest opartych na sieci WWW lub korzysta z protokołu HTTP w tle. A ponieważ Fiddler przechwytuje nie tylko ruch przeglądarki, ale prawie każdy HTTP, jest bardzo przydatny w rozwiązywaniu problemów
Przewaga narzędzia takiego jak Fiddler nad snifferem pakietów działającym w dobrej wierze, takim jak na przykład Wireshark, polega na tym, że Fiddler został zbudowany w celu „zrozumienia” ruchu HTTP. Wykryje na przykład pliki cookie i certyfikaty. Znajdzie również rzeczywiste dane pochodzące z aplikacji opartych na protokole HTTP. Fiddler jest darmowy i jest dostępny tylko dla systemu Windows, chociaż można pobrać kompilacje beta dla systemów OS X i Linux (przy użyciu frameworka Mono).
Wniosek
Kiedy publikujemy listy takie jak ta, często jesteśmy pytani, która z nich jest najlepsza. W tej konkretnej sytuacji, gdybym zadał to pytanie, musiałbym odpowiedzieć „na wszystkie”. Wszystkie są darmowymi narzędziami i wszystkie mają swoją wartość. Dlaczego nie mieć ich wszystkich pod ręką i zapoznać się z każdym z nich. Kiedy dojdziesz do sytuacji, w której będziesz musiał ich użyć, będzie to znacznie łatwiejsze i wydajniejsze. Nawet narzędzia wiersza poleceń mają ogromną wartość. Na przykład mogą być oskryptowane i zaplanowane. Wyobraź sobie, że masz problem, który pojawia się codziennie o godzinie 2:00. Możesz zaplanować zadanie, aby uruchomić tcpdump z Windump między 1:50 a 2:10 i przeanalizować plik przechwytywania następnego ranka. Nie musisz siedzieć całą noc.