Analiza ruchu sieciowego ze Sniffnetem

Ruch sieciowy dla wielu z nas jest zupełną zagadką. Mniej doświadczeni użytkownicy mogą łatwo monitorować go u siebie programem Sniffnet.

Monitoring ruchu sieciowego to chleb powszedni administratora. Większość adminów korzysta z graficznego narzędzia Wireshark ze względu na bogactwo funkcji i dostępność w repozytoriach większości dystrybucji. Adresatami Wiresharka są przede wszystkim profesjonaliści, więc korzystanie z tego narzędzia wymaga solidnej wiedzy. Nowy projekt Sniffnet kierowany jest zaś do osób mniej doświadczonych, którym dostarczy klarownych wyników w prostym, jednoznacznym i intuicyjnym interfejsie.

Instalacja

Sniffnet jest wieloplatformową aplikacją napisaną w Rust [1]. Jeśli w systemie nie ma środowiska tego języka, to najpierw trzeba je skonfigurować poleceniem z linii 2 w Listingu 1. Proces instalacji wymaga od nas nieco interaktywności i przy znaku zachęty wyświetla kilka komunikatów o stanie. Sniffnet jako taki instalujemy także z terminala menedżerem pakietów dla Rusta o nazwie Cargo (linia 4).

Listing 1: Instalacja Sniffneta

01 ### Instalacja Rusta

02 $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

03 ### Konfiguracja Sniffneta przez Rusta

04 $ cargo install sniffnet

05 ### Instalacja Sniffneta z paczki DEB

06 $ sudo apt install sniffnet_Linux.deb

07 ### Instalacja zależności

08 $ sudo apt install libpcap-dev libfontconfig libfontconfig1-dev

Jeśli korzystamy z dystrybucji Linuksa z menedżerem pakietów DEB, możemy za to zainstalować już skompilowany pakiet DEB [2] z GitHuba projektu, co oszczędzi nam wcześniejszej instalacji środowiska Rust (linia 6).

Aby program działał poprawnie, należy też oczywiście spełnić kilka zależności [3] (linia 8), niezależnie od tego, gdzie będzie instalowany. Po wszystkim uruchamiamy program poleceniem sudo sniffnet.

Otwiera się okno startowe z opcjami filtrowania (Rysunek 1). Po prawej, zaznaczając odpowiedni przycisk, można wybrać wersję protokołów internetowego i transportowego. W obu przypadkach domyślnie aktywne są wszystkie dostępne wersje (tzn. IPv4 i IPv6, a także TCP i UDP). Po prawej z brzegu, spośród kilkunastu opcji na liście, wybieramy protokół aplikacji. Również tutaj Sniffnet domyślnie uwzględnia wszystkie protokoły.

W lewej części okna widać interfejsy sieciowe dostępne w naszym systemie – zarówno fizyczne, jak i wirtualne. Sniffnet zawsze aktywuje pierwszy dostępny interfejs fizyczny, dlatego w razie potrzeby musimy przełączyć się na inny. Po wprowadzeniu podstawowych ustawień klikamy przycisk Run!.

Rysunek 1: W uporządkowanym oknie startowym Sniffneta wyświetla się tylko to, co niezbędne.
Rysunek 2: Sniffnet podsumowuje wszystkie dane o ruchu sieciowym w jednym oknie.

Sniffnet pracuje przez chwilę nad zebraniem dostępnych danych, po czym otwiera właściwe okno monitoringu (Rysunek 2). U góry widzimy aktualizowany na bieżąco wykres z liczbą pakietów na sekundę przechodzących przez aktywny interfejs sieciowy. Kolorami rozróżniono pakiety wychodzące i przychodzące. Objętość przesyłanych danych w bajtach na sekundę zobaczymy natomiast po wybraniu drugiego przycisku pod Plotted data (Dane na wykresie). W małej ramce obok wykresu znajdziemy trochę statystyk o połączeniu sieciowym, w tym liczbie filtrowanych pakietów, ich rozmiar w megabajtach oraz liczbę odfiltrowanych pakietów z podziałem na protokoły aplikacji.

Najciekawszym elementem jest chyba ramka Relevant connections (Powiązane połączenia) pod wykresem, która zawiera dokładne dane o poszczególnych połączeniach – adres źródłowy i docelowy, wykorzystywane porty, protokół transportowy i protokół aplikacji, a także liczbę przesłanych pakietów. Przy prawym brzegu okna, w kolumnie Bytes, jest także rozmiar danych przesłanych w ramach danego połączenia.

W oknie monitoringu Sniffnet wyróżnia dane kolorami – połączenia przychodzące są czerwono-brązowe, a wychodzące – niebieskie. Ten widok można zmienić, wybierając przycisk most packets (najwięcej pakietów), co pokaże nam połączenia według pakietów wysłanych lub odebranych, albo most bytes (najwięcej bajtów), gdzie połączenia zostaną posortowane malejąco według objętości przesłanych danych.

Rysunek 3: Wszystkie połączenia i aktywności na interfejsie sieciowym można przejrzeć również w formie tekstowej.

Kompleksowo

Na wykresie Sniffnet zawsze pokazuje najnowsze zdarzenia przesyłania danych. Aby śledzić ruch sieciowy w ujęciu czasowym, Sniffnet loguje wszystkie połączenia i aktywność na nich w formie tabeli pod $HOME/sniffnet_report/report.txt. Aby obejrzeć ten plik tekstowy, klikamy Open fill report, a otworzy się w naszym standardowym edytorze tekstu (Rysunek 3). Aplikacja aktualizuje ten dziennik niemal w czasie rzeczywistym.

Jeśli w trakcie analizowania ruchu chcemy coś zmienić w ustawieniach programu, klikamy ikonę strzałki w lewym górnym rogu (Rysunek 2), aby wrócić do głównego okna. Warto pamiętać, że Sniffnet usuwa plik dziennika przy każdym nowym uruchomieniu. W razie potrzeby logi można zapisać po zakończeniu działania aplikacji, czyli przed jej restartem.

Podsumowanie

Kiedy chcemy przyjrzeć się ruchowi na swojej sieci, Sniffnet jest prostym, niewymagającym nauki rozwiązaniem dla użytkowników na każdym poziomie biegłości. Narzędziu brakuje funkcjonalności analizy – jeżeli chcemy namierzyć problemy z siecią, trzeba będzie samodzielnie czytać logi.

W trakcie testów programu znalazłem w nim kilka bugów. Na Kubuntu 22.04 program nie otworzył raportu po kliknięciu przycisku Open full report, ale bez problemu można to obejść, otwierając plik ręcznie. Bardziej poważny problem to usuwanie plików dziennika bez żadnej dostrzegalnej prawidłowości. Ponadto Sniffnet nie tłumaczy adresów IP na nazwy urządzeń – do ciągu 104.26.7.95 trzeba samodzielnie dopasować nazwę urządzenia. Kolejny problem to niemożność kopiowania fragmentów pliku dziennika tworzonego na żywo. Interesujące nas fragmenty trzeba pozyskać po wygenerowaniu całego loga (przy założeniu, że ten nagle nie zniknie po sesji). Z całą pewnością w programie Sniffnet nie brakuje rzeczy do poprawki. 

Źródła:

[1] Sniffnet: https://github.com/GyulyVGC/sniffnet

[2] Pakiet DEB: https://github.com/GyulyVGC/sniffnet/releases

[3] Instrukcja instalacji: https://github.com/GyulyVGC/sniffnet#installation

Podziel się postem:

Najnowsze:

Oprogramowanie

Kompilator JIT w PHP. Czy to szansa na przyspieszenie stron i sklepów?

PHP jako język interpretowany od dawna zmagał się z trudnym zadaniem poprawy swojej wydajności, szczególnie na tle konkurencyjnych języków programowania używanych w rozwiązaniach webowych. Pośród tego co nowe w PHP 8 na szczególną uwagę zasługuje kompilator JIT, który zdecydowano się oficjalnie dołączyć do najnowszej wersji.

Oprogramowanie

LibreOffice 24.8.2 dostępny do pobrania. Usunięto ponad 80 błędów

LibreOffice 24.8.2 to kolejna aktualizacja darmowego pakietu biurowego, którą warto zainstalować, by ułatwić sobie codzienną pracę. W oprogramowaniu usunięto ponad 80 błędów i zadbano o jeszcze lepszą zgodność ze znanymi formatami dokumentów. LibreOffice ma też działać stabilniej.

Oprogramowanie

Zen Browser – bardzo ciekawa alternatywa dla Firefoxa

Rynek przeglądarek można podzielić na pierwszą ligę – gdzie znajdziemy Chrome, Edge, Safari oraz Firefoxa – oraz drugą (gdzie umieściłbym Vivaldi, Operę i podobne przeglądarki), a także “poczekalnię”, w której propozycje od mniej znanych firm dopiero raczkują. Zen Browser znajduje się w tej ostatniej kategorii, a właśnie ukazała się jej wersja 1.0.0 Alpha. I już zwraca uwagę ciekawymi rozwiązaniami.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *