Wprowadzenie do SNMP
Na rynku istnieje wiele narzędzi, które służą do monitoringu infrastruktury. Aktualnie rozwiązane tego typu mają szeroki wachlarz zastosowań, poprzez monitorowanie aktywności urządzeń lub stron www, wykorzystanie pamięci RAM, czy dysku twardego, logowania użytkowników, zmian w plikach, atakach, nawet po temperaturę urządzeń oraz wiele, wiele innych.
Po co mi to?
Monitoring w czasie rzeczywistym parametrów danego urządzenia, które nas interesują, pozwala nam na szybką reakcję w krytycznych momentach. możemy ustawić alerty dotyczące problemów lub awarii, które pojawią się w naszej sieci. Oznacza to, że nie musimy fizycznie cały czas monitorować naszych hostów, a na informacje, które są kluczowe dla poprawnego działania urządzeń, możemy reagować, gdy dostaniemy kluczowy dla nas alert.
Rozwiązania tego typu mają zazwyczaj gotowe szablony do monitorowania poszczególnych elementów. Oznacza to, że możemy znaleźć pełną konfigurację do naszego hosta, bez mozolnego klepania regułek, a jeżeli zajdzie potrzeba, wprowadzić dodatkowe poprawki.
Dodatkowo są też wykresy, które przedstawiają dane w przejrzysty sposób.
Przykładem są narzędzia takie jak Zabbix, czy PRTG… jest tez sporo komercyjnych rozwiązań na rynku, tak więc można dobrać rozwiązanie, do naszych indywidualnych potrzeb.
Do bezpieczeństwa też sie nada?
Jest możliwość, aby zintegrować takie narzędzia np z systemami wykrywania intruzów takimi jak Snort/Suricata lub innymi narzedziami security.
Czym jest Suricata możecie się dowiedzieć na naszym Youtubie, zapraszamy:
https://www.youtube.com/watch?v=U-7D2CTBCXM
https://www.youtube.com/watch?v=VL8JpwD9PzA
Dzięki temu można otrzymywać powiadomienia, gdy IDS wykryje potencjalne zagrożenia.
Narzędzia służące do monitoringu mogą nawet monitorować logi systemowe z serwerów, aplikacji oraz urządzeń sieciowych, co umożliwia wykrywanie podejrzanych aktywności. Choć nie są to narzędzia do tego stworzone i należy mocno uważać a rozmiar bazy danych, często moża posłużyć się regexami (o tym też napiszemy w w przyszłości)

Skąd te programy mają dostęp do tak dużej ilości informacji o naszym sprzęcie?
Do monitoringu urządzeń możemy wykorzystać protokół SNMP (Simple Network Management Protocol).
Simple Network Management Protocol (SNMP) to protokół używany do monitorowania i zarządzania urządzeniami sieciowymi, takimi jak routery, switche, serwery, drukarki i inne urządzenia podłączone do sieci. Jest to standardowy protokół komunikacyjny w sieciach komputerowych, który umożliwia administratorom sieci zdalne zbieranie informacji o stanie i działaniu urządzeń, a także zarządzanie nimi. Dzięki SNMP możliwe jest monitorowanie wydajności, identyfikacja problemów oraz zarządzanie konfiguracją urządzeń w sieci.
SNMP odgrywa kluczową rolę w nowoczesnych sieciach, umożliwiając administratorom efektywne monitorowanie i zarządzanie infrastrukturą sieciową, co jest niezbędne do utrzymania wysokiej dostępności i wydajności usług sieciowych.
OID i MIB – Kluczowe pojęcia
Co to jest OID (Object Identifier)?
OID (Object Identifier) to unikalny identyfikator obiektów w bazie MIB (Management Information Base). Każdy OID składa się z szeregu liczb oddzielonych kropkami, które tworzą hierarchiczną strukturę.
Przykładem OID może być 1.3.6.1.2.1.1.1, który identyfikuje konkretny obiekt w drzewie MIB. Mówiąc wprost, ten ciąg liczb, kryje pod sobą konkretna metrykę która chcemy monitorować. Ale skąd mam wiedzieć jaka metryka się kryje pod tym ciągiem znaków?? Pomoże tutaj MIB.
Co to jest MIB (Management Information Base)?
MIB (Management Information Base) to zbiór obiektów dostępnych do monitorowania za pomocą SNMP. Czyli taki słownik, który mapuje OID na bardziej zrozumiały zapis metryk. Każdy obiekt w MIB jest identyfikowany za pomocą OID, co umożliwia łatwe i precyzyjne odwoływanie się do poszczególnych parametrów urządzeń.
Przykładowe mapowanie:
- OID: 1.3.6.1.2.1.1.5.0 mapuje się na MIB: sysName.0.
Dobrym narzędziem gdzie możemy sprawdzić to mapowanie jest „MIB Browser” https://mibbrowser.online/mibdb_search.php

Konfiguracja
Konfiguracja SNMP na linuxie (w moim wypadku jest to Ubuntu w wersji 22.04). Aby skonfigurować. Więc tak, zbieranie danych za pomocą SNMP wymaga kilku kroków. Na początek musimy zainstalować niezbędne oprogramowanie i skonfigurować SNMP demon.
sudo apt install snmp
sudo apt update
sudo apt install snmp snmpd snmp-mibs-downloader
sudo apt install snmp snmpd
Następnie wejść w plik konfiguracyjny naszego snmp demona (snmpd) oraz za pomocą ”#” wykomentować całą podstawową konfigurację.
· sudo nano /etc/snmp/snmpd.conf
Później uzupełnić nową konfigurację, która prezentuje się w następujący sposób:

Kolejnym krokiem jest restart naszego snmpd, aby wczytać nową utworzoną przez nas konfigurację

Gotowe! Możemy zacząć działać.
Narzędzia do monitorowania z SNMP
SNMPwalk
SNMPwalk to potężne narzędzie do iteracyjnego przeszukiwania drzewa MIB, które umożliwia administratorom sieci pobieranie informacji o wielu obiektach SNMP z urządzenia. Używając SNMPwalk, można przeglądać hierarchiczną strukturę MIB i uzyskać kompleksowe dane dotyczące różnych aspektów monitorowanych urządzeń. Przykładowe użycie SNMPwalk może wyglądać następująco:
snmpwalk -v 3 -l authPriv -u myUser -a SHA -A myAuthPass -x AES -X myPrivPass 192.168.1.1
W tym przykładzie:
-v 3
określa wersję SNMP (SNMPv3),-l authPriv
ustawia poziom bezpieczeństwa na uwierzytelnianie i prywatność,-u myUser
to nazwa użytkownika,-a SHA
określa algorytm uwierzytelniania (SHA),-A myAuthPass
to hasło uwierzytelniania,-x AES
ustawia algorytm prywatności (AES),-X myPrivPass
to hasło prywatności,192.168.1.1
to adres IP urządzenia.
Snmpget
Snmpget to narzędzie używane do pobierania wartości konkretnego OID z urządzenia SNMP. Jest to przydatne, gdy potrzebne są szczegółowe informacje na temat pojedynczego obiektu w bazie MIB. Snmpget umożliwia precyzyjne zapytania i jest niezbędnym narzędziem w codziennym monitorowaniu sieci. Przykładowe użycie Snmpget dla wersji SNMPv3:
snmpget -v 3 -l authPriv -u myUser -a SHA -A myAuthPass -x AES -X myPrivPass 192.168.1.1 1.3.6.1.2.1.1.5.0
W tym przykładzie:
-v 3
określa wersję SNMP (SNMPv3),-l authPriv
ustawia poziom bezpieczeństwa na uwierzytelnianie i prywatność,-u myUser
to nazwa użytkownika,-a SHA
określa algorytm uwierzytelniania (SHA),-A myAuthPass
to hasło uwierzytelniania,-x AES
ustawia algorytm prywatności (AES),-X myPrivPass
to hasło prywatności,192.168.1.1
to adres IP urządzenia,1.3.6.1.2.1.1.5.0
to OID odnoszący się do nazwy systemu.
Używamy tutaj wersji 3 z pełną premedytacją. Chociaż składnia i skonfigurowanie mogą wydawać się nieco trudniejsze, ponieważ SNMPv3 wprowadza zaawansowane mechanizmy bezpieczeństwa, które nie są obecne w wersjach SNMPv1 i SNMPv2c.
SNMPv1, SNMPv2c nie zapewnia odpowiednich mechanizmów uwierzytelnienia ani szyfrowania komunikacji, co oznacza, że dane przesyłane w sieci są podatne na przechwycenie i podsłuch. Przesyłanie danych w postaci nieszyfrowanej, brak zaawansowanych mechanizmów uwierzytelniania i brak ochrony integralności danych sprawiają, że są podatne na różnorodne ataki. Z tego powodu, SNMPv3, które wprowadza uwierzytelnianie i szyfrowanie, jest rekomendowane dla nowoczesnych i bezpiecznych wdrożeń monitorowania i zarządzania sieciami.
Jest to ważne bo z tych danych mozna naprawde duzo odczytać:

Teraz już wiesz, jak odpytać o listę dostępnych metryk lub konkretną, która Cie interesuje. Wiesz, że istnieje mapowanie, które znacznie ułatwia życie, bo nie trzeba pamiętać skomplikowanych ciągów znaków oraz wiesz, że nie trzeba tego robić ręcznie, bo istnieją narzędzia, które nas w tym wspierają.
Podsumowanie
Podsumowując, dane do monitoringu naszej infrastruktury, są na wyciągniecie ręki, dzięki nim wiemy, jaki jest status naszych uprzedzeń i możemy zareagować z odpowiednim wyprzedzeniem, zanim zapełni nam się podsystem dyskowy czy przestanie działać jakaś usługa. To tylko wstęp do obszernego tematu jakim jest monitoring, ale mam nadzieję, że zainteresował Cię ten temat i zachęcił od sprawdzenia, co kryje się w Twojej infrastrukturze.
Kacper Micek
Praktykant w dziale Cyberbezpieczeństwa w firmie Advatech, student renomowanego Wydziału Informatyki i Telekomunikacji Politechniki Wrocławskiej. Jego zainteresowania skupiają się wokół sieci bezprzewodowych oraz bezpieczeństwa danych, które wędrują w kanałach sieciowych. Jako praktykant w Advatech zajmuje się monitoringiem sieci, zbieraniem informacji oraz automatyzacją kontroli sieciowej.
