()

Wstęp

Dziś również mamy wpis gościnny Oskara. Poprosiłem go, aby napisał o monitorowaniu sieci w warunkach domowych. Ostatnio często dostawałem pytanie, kiedy o tym napiszę, a niestety czas nie jest z gumy i nie mogłem go wygospodarować, aby opisać taką konfigurację jak poniżej. Poprosiłem więc Oskara, by przygotował mi ten oto piękny wpis, zapraszam Cię do przeczytania go. A jeśli Ty masz wiedzę na temat jakiegoś rozwiązania, które pomoże naszym Einherjarom i masz ochotę napisać o tym artykuł, zgłoś się :).

Monitoring sieci domowej – w jakim celu?

Monitorowanie ruchu w sieci jest ważne nie tylko w dużych firmach. Również sieć domowa narażona jest na ataki. Aby im przeciwdziałać, należy monitorować ruch w naszej sieci domowej. Pozwala to na wykrycie otwartych portów na routerze, kontrolowanie stanu zapory ogniowej (firewall) i wyeliminowanie wielu innych luk w zabezpieczeniach. Dzięki zarządzaniu adresami fizycznymi i logicznymi można wykryć niepowołane urządzenia lub te generujące nadmierny ruch w sieci.

Wycinek z programu Wireshark

W artykule opisane jest nadzorowanie ruchu sieciowego oparte o Raspberry Pi, połączone z siecią za pomocą Wi-Fi.

Raspberry Pi – mniejszy nie znaczy gorszy

Raspberry Pi to komputer wielkości karty kredytowej, posiadający cztery porty USB, wyjście HDMI, Display Port i inne użyteczne elementy. Jest używany do wielu rozmaitych zadań – od stawiania serwerów po sterowanie układami elektronicznymi za pomocą pinów GPIO. W popkulturze znany dzięki serialowi „Mr. Robot”, gdzie służył jako backdoor przy włamywaniu się do sieci.

Charakteryzuje się znikomym zużyciem prądu w porównaniu z pecetem. Wiąże się to jednak z ograniczonymi możliwościami procesora (ok. 1.5 GHZ taktowania CPU dla wersji 3B+ i 4B) i ograniczoną pamięcią RAM (1GB dla wersji 3B+, 4GB dla wersji 4B).

Raspberry Pi 3B+. Źródło: https://pixabay.com/pl/photos/malinowa-pi-raspberry-pi-3-komputer-5414142/

Raspberry Pi, pieszczotliwie nazywane malinką, może nawiązać połączenie z Internetem na dwa sposoby. Pierwszym z nich jest bezpośrednie połączenie poprzez złącze Ethernet, zaś drugim użycie wbudowanego modułu WiFi. Poniżej szczegółowo został opisany sposób podłączania Raspberry Pi do sieci Wi-Fi.

W jaki sposób podłączyć Raspberry Pi do Internetu?

Domyślnym systemem dla Raspberry Pi jest Raspberry Pi OS (dawniej Raspbian). Ten system to dystrybucja Linuksa dostosowana do działania na Raspberry. Można również korzystać z wielu innych systemów z rodziny Linuksa, takich jak Ubuntu Server (wersja dostosowana do RPi) lub Kali Linux, stosowany powszechnie wśród etycznych hakerów.

Konfiguracja interfejsów sieciowych odbywa się poprzez wprowadzanie zmian w pliku dhcpcd.conf, znajdującym się w katalogu /etc/. Składa się on z następujących linii (wraz z przykładową konfiguracją):

interface wlan0 – określenie interfejsu, jakiemu nadajemy statyczny adres IP.

static ip_address=192.168.25.180/24 – statyczne IP wraz z maską

static routers=192.168.25.1 – IP routera (gateway)

static domain_name_servers=1.1.1.1 – statyczne IP serwera DNS

Aby sprawdzić poprawność konfiguracji, należy wpisać komendę ifconfig wlan0

Jak widać, interfejs wlan0 ma nadany ustawiony wcześniej adres IP wraz z maską. Aby Raspberry Pi mogło łączyć się bezprzewodowo z Internetem, należy wpisać mu SSID i hasło sieci Wi-Fi, z którą ma się połączyć. Dokonuje się tego poprzez edycję pliku wpa_supplicant.conf w katalogu /etc/wpa_supplicant:

W cudzysłowie w linii zaczynającej się od ssid należy wpisać identyfikator sieci. Hasło wpisuje się w linii zaczynającej się od psk. Na screenie zarówno hasło, jak i SSID zostały zakryte.

Mając tę wiedzę i działające połączenie z siecią, możemy przystąpić do monitorowania sieci domowej.

Monitorowanie sieci – oprogramowanie

Nagios

Nagios to oprogramowanie służące do monitorowania sieci. Charakteryzuje się łatwym dostępem do panelu kontrolnego – wszystkie dane dotyczące monitorowania dostępne są z poziomu przeglądarki, zaś konfiguracji dokonuje się poprzez zmiany w plikach za pomocą edytorów tekstowych (nano, vi itd.).

Instalacja Apache

Nagios do poprawnego działania wymaga serwera Apache, czyli linuksowego serwera http. Do jego instalacji wystarczy użycie komendy:

sudo apt-get install apache2

Następnie należy uruchomić serwer:

sudo systemctl start apache2

Poprawność działania możemy sprawdzić na dwa sposoby. Pierwszym z nich jest użycie polecenia:

sudo systemctl status apache2

Jak widać, serwer jest aktywny i działa poprawnie.

Drugim z nich jest wejście na domyślną stronę generowaną przez Apache. Wystarczy wpisać adres IP swojego Raspberry Pi w pasku adresu przeglądarki. Zgodnie z konfiguracją naszej maliny, adres to 192.168.25.180.

Po wpisaniu adresu wyświetla się domyślna strona serwera Apache.

Instalacja Nagiosa

Przy poprawnie działającym Apache’u można przystąpić do instalacji Nagiosa. Aby poprawnie działał, należy stworzyć użytkownika nagios w grupie nagcmd (sudo useradd nagios, sudo groupadd nagcmd, sudo usermod nagcmd nagios). Następnie należy nadać grupie uprawnienie www-data (sudo usermod nagcmd www-data). Sprawdzenie tego, czy użytkownik nagios znajduje się w grupie nagcmd dokonywane jest za pomocą polecenia groups nagios.

Pobieranie Nagiosa może nastąpić za pomocą ściągnięcia pliku przez przeglądarkę lub użycia komendy wget. Oficjalna strona programu to https://www.nagios.com.

Po rozpakowaniu Nagiosa, najłatwiej skonfigurować go za pomocą komendy. Pliki powinny znajdować się w katalogu, którego nazwa odpowiada wersji programu. W moim przypadku to katalog /nagios-4.4.5/. Komenda pozwalająca uniknąć złożonego procesu nadawania uprawnień to:

sudo ./configure –with-nagios-group=nagios –with-command-group=nagcmd –with-httpd_conf=/etc/apache2/sites-enabled/

Po instalacji za pomocą sudomake all i sudomakeinstall, należy pobrać odpowiednie pluginy ze strony Nagiosa. Dokonuje się tego identycznie jak w przypadku pobierania samego programu.

Uruchomienie Nagiosa

Aby uruchomić Nagiosa, należy przejść do katalogu zawierającego plik konfiguracyjny (cd /usr/local/nagios/etc/nagios.cfg) i uruchomić go tak jak serwer Apache (sudo systemctl start Nagios).

Poprawność działania Nagiosa wykaże polecenie sudo systemctl status nagios

Konfiguracja Nagiosa

Główny plik konfiguracyjny znajduje się w katalogu /usr/local/nagios/etc/. Nazywa się nagios.cfg. Aby dodać hostów, którzy będą obserwowani, należy w pliku konfiguracyjnym zawrzeć ścieżkę do pliku zawierającego grupy i użytkowników. Należy ją wpisać jako ostatnią linijkę. Dla pliku hostgroups.cfg wygląda następująco:

Plik powinien zawierać wpis o grupach (w tym przypadku hosts i devices) i adresach IP urządzeń. Na screenie widać część konfiguracji dla mojej sieci domowej.

Po zakończeniu konfiguracji należy zrestartować program za pomocą komendy:

sudo systemctl restart nagios

Korzystanie z Nagiosa

Aby nadzorować sieć, należy połączyć się przez przeglądarkę. Do połączenia należy w pasku adresu wpisać adres IP/nagios. Zgodnie z konfiguracją w mojej przeglądarce muszę wpisać 192.168.25.180/nagios.

Po zalogowaniu widać stan wszystkich hostów. Przy wyłączeniu PC2 i TV zakładka Hosts prezentuje się następująco:

Główne funkcje Nagiosa

  • Tworzenie mapy urządzeń
  • Kontrolowanie stanu usług dla danych hostów – na screenie podstawowe usługi localhosta
  • Nadzorowanie działania każdej z grup
  • Łatwy dostęp do listy wszystkich aktualnych problemów w działaniu
  • Możliwość stworzenia raportów dla określonych hostów grup z wybranego przedziału czasowego
  • Możliwość otrzymywania powiadomień mailowych lub SMS w razie awarii

Dlaczego warto wybrać Nagiosa? – główne zalety

  1. Czytelny interfejs graficzny
  2. Prostota w konfiguracji – wymaga jednak podstawowej znajomości komend w Linuksie
  3. Dostęp poprzez przeglądarkę internetową
  4. Powiadomienia w razie problemów w działaniu

Vnstat

Vnstat to prosty program oferujący statystyki dotyczące zużycia sieci z danego okresu. Instalowany jest z poziomu terminala z repozytorium Raspberry Pi OS, za pomocą polecenia:

sudo apt-get install vnstat

Vnstat dostarcza podstawowych informacji o ruchu na danym interfejsie sieciowym. Za pomocą odpowiednich parametrów można wyświetlać statystyki z określonego przedziału czasowego lub w czasie rzeczywistym.

W celu graficznego przedstawienia zgromadzonych danych, należy doinstalować vnstati za pomocą polecenia sudo apt-get install vnstati

Automatycznie sporządza wykresy dotyczące ruchu sieciowego na danym interfejsie, zgodnie ze wpisanymi parametrami.

Iftop

Iftop to kolejny program działający bez interfejsu graficznego. Jest prosty w instalacji – wystarczy użyć komendy sudo apt-get install iftop.

Iftop dostarcza informacji odnośnie pakietów przesyłanych pomiędzy poszczególnymi adresami IP. Pozwala to na wykrycie podejrzanego ruchu lub innych niechcianych aktywności.

Domyślnie sortuje połączenia według ilości przesłanych danych.

Pi-hole

Pi-hole jest bardzo popularny wśród sympatyków Raspberry Pi. Poza monitorowaniem sieci pozwala stworzyć lokalny DNS, dodawać domeny do czarnej listy, zarządzać dostępem do sieci wśród hostów i wiele innych. Cechuje się również prostą instalacją – wystarczy użyć polecenia curl -sSL https://install.pi-hole.net | sudo bash.

Instalacji dokonuje się poprzez prosty interfejs, który pozwala również mniej wprawionym w Linuksie osobom na bezproblemową instalację. Po zakończonej instalacji naszym oczom ukazuje się informacja o adresie, pod jakim możemy połączyć się z Pi-hole przy użyciu przeglądarki internetowej. W ostatniej linii komunikatu znajduje się hasło, które jest wykorzystywane do logowania się do Pi-hole (na screenie zostało ono zasłonięte).

Po wpisaniu wskazanego w komunikacie adresu w przeglądarce należy przejść do zakładki Login i w wyznaczonym miejscu wpisać hasło ze wspomnianego okna dialogowego.

Po pomyślnej autoryzacji możemy przejść do konfiguracji Pi-hole w celu jak najwydajniejszego monitorowania sieci. Warto skupić się na zakładce Group Managment, która pozwala na zarządzanie poszczególnymi użytkownikami sieci. Kolejnym ważnym aspektem jest możliwość nadzorowania temperatury CPU.

Pi-hole – filtrowanie szkodliwych domen

Zakładka Query Log pozwala prześledzić domeny łączące się z poszczególnymi adresami IP. Dzięki Pi-hole możemy zmniejszyć ryzyko napotkania zainfekowanej witryny. Zmniejsza to również zakres ruchu sieciowego, który będziemy monitorować – część adresów zostanie automatycznie zablokowana przez Pi-hole. Zrzut ekranu zawiera część logów wygenerowanych podczas łączenia się z dwoma popularnymi w Polsce stronami internetowymi.

Dzięki temu, że wykorzystujemy oprogramowanie open-source, możemy być pewni co do tego, że nasz ruch nie jest przechwytywany przez niepowołane osoby. Skutecznie blokowane są również wszelkie reklamy i monitorowanie naszego ruchu na stronach internetowych.

W czym pomaga Pi-hole odnośnie monitorowania sieci?

Pi-hole pozwala tworzyć raporty dotyczące wielu aspektów działania naszej sieci domowej, takich jak ruch sieciowy na przestrzeni czasu lub adresy, z którymi łączą się użytkownicy. Oprócz monitorowania sieci ułatwia on bezpieczne korzystanie z Internetu. Dzięki blokowaniu niepożądanych treści stosunkowo mniej ruchu sieciowego musi pozostać pod naszym nadzorem.

Lista domen uznana za niebezpieczne przez CERT Polska dostępna jest tutaj.

Monitorowanie sieci – oprogramowanie wspomagające nadzorowanie ruchu

Nmap

Nmap to prosty w obsłudze program służący głównie do znajdowania otwartych portów. Jego pierwsza wersja pochodzi z września 1997 roku. Jest to program wykorzystujący interfejs tekstowy (TUI – text-based user interface). Instalowany jest za pomocą polecenia:

sudo apt-get install nmap

Po zainstalowaniu nmapa jest on gotowy do działania. Za pomocą odpowiednich parametrów można na różne sposoby przeskanować porty. Przykładowe parametry to:

  • -A – dostarcza informacji o usługach i sprzęcie
  • -sP – wysyła pingi do hostów, dostarcza jedynie informacji o ich dostępności, bez portów
  • -p – skanowanie danego zakresu portów, np. –p80, -p1-65535
  • -V – wersja programu
  • -v – daje więcej informacji odnośnie postępu skanowania (podwyższenie poziomu raportowania)

Nmap posiada wiele opcji, które można dobrać odpowiednio do naszego zapotrzebowania. Do podstawowego skanowania sieci domowej można użyć prostego polecenia:

nmap –v –A 192.168.X.1-255

Zgodnie z konfiguracją mojej sieci domowej użyłem komendy:

nmap –v –A 192.168.25.1-255

Z racji na brak dodatkowych parametrów program wykaże wiele nieaktywnych hostów.

Następnie, nmap pokaże otwarte porty wraz z adresami IP.

Dla Raspberry Pi wycinek ze skanu wygląda następująco:

Jak widać, port 22 jest używany do połączenia przez SSH.

Po zakończeniu skanowania nmap zostawia krótki komunikat odnośnie czasu skanowania i aktywnych hostów.

tcpdump

Tcpdump to sniffer, czyli program służący do przechwytywania pakietów. Podobnie jak nmap jego działanie możemy ograniczyć do danych adresów IP lub portów, wykorzystując odpowiednie filtry.

Instaluje się go za pomocą komendy sudo apt-get install tcpdump.

Do poprawnego działania wymaga uprawnień roota, dlatego domyślnie wszystkie komendy należy poprzedzić sudo. Do jego zalet należy to, że przechwycone pakiety można zapisać do pliku, który następnie może być poddany analizie w Wiresharku – dzięki temu łatwo można znaleźć niepożądane pakiety, które źle wpływają na sieć.

Przykładowa komenda monitorująca ruch wraz z zapisaniem go do pliku wygląda następująco:

sudo tcpdump –i any >> ruchsieciowy.pcap

Ruch będzie widoczny w prostej postaci przy użyciu dowolnego edytora tekstowego lub komendy less. Na zrzucie ekranu zostały zamazane adresy MAC.

Aby przeglądać ruch przy użyciu Wiresharka, należy odpowiednio sformułować komendę. Przykładowe polecenie to:

sudo tcpdump –i any –s 65535 –w ruch020222.pcap

-s (–snapshot-lenght) – definiuje długość pakietów, które są przechwytywane, aby dostosować je do wyświetlania w Wiresharku

-w – odpowiednik użytego wcześniej zapisywania do pliku (>>)

Aby przenieść plik na komputer, najłatwiej wykorzystać SFTP, przykładowo za pomocą programu FileZilla.

W Wiresharku możemy napisać prosty filtr, który pozwala na dogłębną analizę przechwyconych pakietów. Na zrzucie ekranu przedstawiony jest ruch przychodzący i wychodzący dla adresu IP „malinki”, czyli 192.168.25.180.

Podsumowanie

Monitorowanie ruchu w sieci domowej pozwala na wzmocnienie bezpieczeństwa naszych danych. Warto kontrolować to, co dzieje się w naszej sieci, aby móc zlokalizować usterki lub wykryć luki w zabezpieczeniach. Każdy adres MAC, do którego nie możemy przypisać znanego nam urządzenia, powinien zwrócić naszą uwagę. Zdecydowanie lepiej monitorować sieć, niż narażać się na niebezpieczeństwo, które może czaić się również w naszej sieci lokalnej.

Pozdrawiam Oskar

The form you have selected does not exist.

Jak przydatny był ten Artykuł

Kliknij gwiazdke by zagłosować

Średni / 5. Liczba głosów

Doceń naszą prace

Przepraszam że ten post nie był dla Ciebie przydatny

Popraw ten post!

Napisz mi co mogę poprawić