heise networks

Wiadomości i artykuły heise Networks

21 maja 2009, 13:28

Johannes Endres, Adam Rudziński

Analizowanie sieci za pomocą programu Wireshark

Sniffer szuka błędów

Nieważne czy mamy do czynienia z nieuprawnionym łączeniem się z Internetem przez router, z nieudanymi próbami połączenia się z siecią LAN albo z dziwnym zachowaniem aplikacji internetowych – podczas diagnozowania wielu problemów pomocne okazuje się narzędzie do podsłuchiwania ruchu sieciowego. Przy okazji można się dowiedzieć, jak naprawdę działa sieć komputerowa.

Sniffery przechwytują i zapisują informacje o pakietach danych bezpośrednio z poziomu sterownika karty sieciowej. Wybór tego rodzaju programów dla niemal wszystkich systemów operacyjnych jest spory, a analiza wybranego protokołu pozwala znaleźć szkodliwe lub nieprawidłowe pakiety. Aplikacja podsłuchująca ruch powinna charakteryzować się kilkoma cechami ułatwiającymi życie administratora: podczas poszukiwania błędów pomaga graficzna prezentacja pakietów, dekoder dla możliwie wielu protokołów sieciowych oraz funkcje wyszukiwania i filtrowania. Tym wszystkim może pochwalić się otwartoźródłowy analizator sieci – Wireshark.

Niezbędny sprzęt

Pierwszym krokiem na drodze do przeprowadzenia diagnozy sieci jest wyszukanie komputera, na którym powinien działać analizator. System operacyjny nie odgrywa w tym wypadku właściwie żadnej roli, ponieważ autorzy Wiresharka przygotowali wersje swojego pakietu dla Windows, Mac OS-a X i najróżniejszych wariantów platform uniksowych.

Jeśli zamierzamy analizować ruch sieciowy na konkretnym komputerze, sensownym rozwiązaniem będzie zainstalowanie Wiresharka właśnie na nim. Trzeba jednak pamiętać, że niezbędne do nadzorowania sieci wywołania systemowe sięgają bardzo głęboko w stos sieciowy, a w efekcie wybrana maszyna może się zachowywać inaczej niż w sytuacji, gdy nie uruchamia się na niej Wiresharka. W takich wypadkach w charakterze stacji podsłuchującej powinien działać dodatkowy komputer.

Nie wystarczy jednak podłączyć komputer do działającego w sieci przełącznika – ten ostatni dla każdego pakietu danych realizuje połączenie tylko między portami zaangażowanymi w konkretny proces transmisji. Pozostałe porty nie są przy tym w ogóle uwzględniane, więc nie ma jak zbierać danych. W takiej sytuacji osobna stacja podsłuchująca w ogóle nie zanotuje ruchu sieciowego innych komputerów. Niektóre profesjonalne switche mają specjalny port służący do monitoringu ruchu sieciowego – właśnie na nim odbywa się odwzorowywanie wszystkich pakietów przepływających przez przełącznik. Znajdziemy też modele pozwalające skonfigurować jeden ze standardowych portów w taki sposób, aby posłużył za port monitorujący. Jednak w typowych przełącznikach do zastosowań domowych udogodnienia tego rodzaju spotyka się rzadko.

0.jpeg
Jeśli przełącznik nie zawiera portu monitorującego, pomocny w zbieraniu danych o ruchu sieciowym okaże się zwykły, tani koncentrator
W takim wypadku rozwiązaniem może być najtańszy 10-megabitowy koncentrator (hub), ponieważ w tego rodzaju urządzeniach wszystkie porty są ze sobą wzajemnie połączone. Huby pracujące w dwóch trybach (dual speed) często uniemożliwiają rejestrowanie ruchu sieciowego, ponieważ oddzielnie obsługują połączenia 10- i 100-megabitowe. Niezłym pomysłem wydaje się więc sięgnięcie po dwie karty sieciowe i wydzielenie osobnej stacji roboczej, która będzie służyła wyłącznie do monitoringu. Pisaliśmy o tym w artykule "Mostek sieciowy do analizy transferu".

Instalacja oprogramowania

Oprogramowanie służące do podsłuchiwania ruchu sieciowego składa się z dwóch części: narzędzia Wireshark i biblioteki pcap, która realizuje właściwy proces monitorowania pakietów. Instalator Wiresharka dla Windows zawiera obydwa komponenty, jednak sama biblioteka WinPcap (Windows Packet Capture Library) jest również oferowana oddzielnie.

W przypadku Linuksa kernel powinien zostać skompilowany z włączoną opcją CONFIG_PACKET. W przypadku większości standardowych dystrybucji warunek ten jest domyślnie spełniony. Sam Wireshark dla Pingwina (i biblioteka libpcap) są dostarczane wraz z aktualnymi dystrybucjami. Trzeba jednak pamiętać, że w niektórych wersjach programu występują luki w zabezpieczeniach – nie zaszkodzi więc od czasu do czasu złożyć wizytę na stronie projektu, aby pobrać wolne od usterek wydanie pakietu.

W systemie archiwów RPM Wireshark składa się z następujących plików: wireshark-base (zawierający podstawowy moduł), wireshark-gtk+ (powłoka graficzna) oraz wireshark-usermode – ten ostatni zestaw pozwala na uruchomienie aplikacji bez konieczności logowania się jako administrator (root). Nadmieńmy jeszcze, że niektóre dystrybucje Linuksa zawierają cały pakiet jeszcze pod jego starą nazwą – Ethereal.

Aby wydobywać informacje o pakietach ze sterownika karty sieciowej (który pracuje na najniższym poziomie i komunikuje się wprost ze sprzętem), w każdym systemie wymagane są najwyższe prawa dostępu. W przypadku systemów Windows NT/2000/XP/Vista trzeba zalogować się jako administrator lub też wcześniej utworzyć skrót do aplikacji i zmienić jego właściwości (Uruchom jako), wybierając opcję Administrator.

  • Podziel się
  • Wykop.pl
  • StumbleUpon
  • del.icio.us
  • OSnews.pl