Simple Network Management Protocol (SNMP) jest protokołem

Transkrypt

Simple Network Management Protocol (SNMP) jest protokołem
SNMP - WPROWADZENIE
Simple Network Management Protocol (SNMP)
jest protokołem warstwy aplikacji, który ułatwia wymianę informacji
zarządzania miedzy urządzeniami sieciowymi. Został stworzony dla sieci
TCP/IP (później przystosowany także do protokołów IPX/SPX, DECNet i
AppleTalk). Umożliwia administratorom sieci zarządzanie wydajnością
sieci, znajdowanie i rozwiązywanie problemów związanych z siecią oraz
planowanie rozwoju sieci.
Sieć zarządzana SNMP składa się z 3 głównych części:
urządzeń zarządzanych, czyli węzłów sieci, które zawierają
agentów SNMP; urządzenia te zbierają i przechowują
informacje
zarządzania
i
udostępniają
je
NMSs
wykorzystującym SNMP
agentów, czyli modułów oprogramowania zarządzaną siecią;
znają lokalne informacje zarządzania i zamieniają te informacje
na formę zrozumiałą dla SNMP
systemów zarządzania siecią (NMSs), które wykonują
aplikacje
dotyczące
monitorowania
i
kontrolowania
zarządzanych urządzeń; w całej sieci musi się znajdować
przynajmniej jeden moduł zarządcy.
SNMP – PODSTAWOWE KOMPONENTY
Relacje między trzema głównymi komponentami
SNMP – PODSTAWOWE POLECENIA
Zarządzane urządzenia są monitorowane i kontrolowane przy użyciu
czterech rodzajów poleceń SNMP
– Read jest używane przez NMS do monitorowania zarządzanych
urządzeń. NMS sprawdza różne zmienne określające urządzenia
– Write jest używane przez NMS do kontrolowania zarządzanych
urządzeń. NMS zmienia wartości zmiennych przechowywanych w
bazie danych MIB
– Trap jest używane przez zarządzane urządzenia do
asynchronicznego raportowania wydarzeń NMS-owi
– Traversal operations (operacje przeglądania) są używane przez
NMS do określenia, które zmienne (dot. zarządzanego urządzenia)
należy utrzymywać i sekwencyjnie zbierać informacje o nich w
tablicy zmiennych (np. tablicy routingu).
SNMP – MANAGEMENT INFORMATION BASE
MIB jest zbiorem informacji, które są zorganizowane hierarchicznie.
MIBs są dostępne przy użyciu protokołu zarządzania siecią.
Składają się z zarządzanych obiektów i są identyfikowane przez
identyfikatory obiektów.
Każda własność albo cecha systemu podlegająca zarządzaniu jest
odzwierciedlana w postaci jakiejś informacji zawartej w tej bazie,
zmiany zaś informacji w MIB przekładają się bezpośrednio na
zmianę stanu urządzenia, konfiguracji czy wykonanie jakiejś akcji.
Zarządzany obiekt (obiekt MIB) to jedna z wielu specyficznych
cech zarządzanego urządzenia
Istnieją dwa typy zarządzanych obiektów:
Obiekty skalarne, które definiują pojedyncze wystąpienie
obiektu
Obiekty tabularne, które definiują wiele powiązanych ze sobą
wystąpień obiektów
Unikalny identyfikator obiektu wskazuje zarządzany obiekt w
hierarchii MIB
HIERARCHIA W MIB
Hierarchia MIB może być
przedstawiona jako
drzewo z wyróżnionym
korzeniem, a poziomy
tego drzewa są
przydzielone różnym
organizacjom
PROTOKÓŁ SNMP v1
Bazowa implementacja protokołu SNMP
Działa na protokołach:
User Datagram Protocol (UDP)
Internet Protocol (IP)
OSI Connectionless Network Service (CLNS)
AppleTalk Datagram Delivery Protocol (DDP)
Novell Internet Packet Exchange (IPX)
Wykorzystuje notację ASN.1 (ang. Abstract Syntax Notation One)
Zabezpieczenia - brak mechanizmów uwierzytelnienia
OPERACJE SNMP v1
Protokół działa na zasadzie żądanie-odpowiedź
NMS wysyła żądanie, a urządzenie zarządzane odsyła odpowiedź
W protokole dostępne są 4 operacje:
Get jest używany przez NMS w celu uzyskania wartości
jednego lub większej ilości wystąpień obiektów od agenta
GetNext jest używany przez NMS w celu uzyskania wartości
następnego wystąpienia obiektu w tabeli/liście agenta
Set jest używany przez NMS w celu ustawienia wartości
wystąpienia obiektu agenta
Trap jest używane przez agentów do asynchronicznego
informowania NMS-a o ważnych wydarzeniach
FORMAT WIADOMOŚCI SMNP v1
Wiadomości składają się z dwóch części:
– Nagłówka wiadomości, który składa się z dwóch części:
Numeru wersji
Nazwy ośrodka (definiuje dostęp środowiska dla grup NMS;
służy jako słaba forma autentykacji, ponieważ urządzenia,
które nie znają właściwej nazwy ośrodka są wyłączone z
operacji SNMP)
– Protocol Data Unit (PDU)
Zawiera specyficzne polecenia (Get, Set, itd.) i operandy,
które wskazują wystąpienie obiektu
Pola PDU mają zmienną długość, jak nakazuje ASN.1
PROTOCOL DATA UNIT w SMNP v1
PDU type (Typ PDU) - specyfikuje typ transmitowanej jednostki
PDU
Request ID (ID żądania) – kojarzy żądanie SNMP z odpowiedzią
Error status – wskazuje numer i typ błędu; dotyczy tylko operacji
response, inne operacje ustawiają wartość tego pola na 0
Error index – kojarzy błąd ze szczególnym wystąpieniem obiektu;
dotyczy tylko operacji response, inne operacje ustawiają wartość
tego pola na 0
Variable bindings – służy jako pole danych dla PDU; każda
lamówka kojarzy szczególne wystąpienie obiektu z jego obecną
wartością (z wyjątkiem operacji Get i GetNext, dla których ta
wartość jest ignorowana)
FORMAT PUŁAPKI SNMP
Enterprise – identyfikuje typ zarządzanego urządzenia, który
wygenerował pułapkę
Agent address – zapewnia adres zarządzanego urządzenia, który
wygenerował pułapkę
Generic trap type – wskazuje typ pułapki
Specific trap code – wskazuje specyficzny kod pułapki
Time stamp – podaje ilość czasu, który upłynął między ostatnia
reinicjalizacją sieci a wygenerowaniem pułapki
Variable bindings - służy jako pole danych dla pułapki PDU; każda
lamówka kojarzy szczególne wystąpienie obiektu z jego obecną
wartością
WADY SMNPv1
komunikaty o błędach
powiadamianie
wydajność
protokół transportowy
brak zabezpieczeń
Atakujący może śledzić informacje wymieniane przez menedżera i agenta
i w ten sposób poznać wartość zarządzanych obiektów oraz uzyskać
informacje o wydarzeniach
spoofing – podszycie się pod menadżera
modyfikacja treści komunikatu, aby
niedozwolonej operacji zarządzania
doprowadzić
do
wykonania
modyfikacja kolejności i czasu komunikatów lub powtarzanie
komunikatów, aby doprowadzić do wykonania niedozwolonych operacji
BEZPIECZEŃSTWO W SNMP v2
Model oparty o społeczności SNMPv2C (community)
Model oparty o użytkowników (user) SNMPv2U
UWIERZYTELNIANIE
partyAuthProtocol – określa protokół uwierzytelniania stosowany do
potwierdzania pochodzenia i nienaruszalności wysyłanych komunikatów,
noAuth wskazuje, że komunikaty wysyłane przez stronę nie podlegają
uwirzytelnianiu
partyAuthClock – określa aktualny czas lokalny danej strony
partyAuthPrivate – tajna wiadomość wymagana przez protokół
uwierzytelniania. Może to być wartość „hash” z komunikatów, klucz szyfru
symetrycznego lub asymetrycznego
partyAuthPublic – dowolna, jawna wartość potrzebna w protokole
uwierzytelniania
partyAuthLifetime – narzucona administracyjnie górna granica
akceptowanego opóźnienia dostarczania komunikatów generowanych
przez daną stronę
BEZPIECZEŃSTWO W SNMP v2 - CD
Prywatność w SNMPv2 wprowadza szyfrowanie z użyciem DES
i wymaga, aby obie strony dzieliły wspólny klucz szyfrujący
partyPrivProtocol – określa protokół prywatności i mechanizm ochrony
komunikatów otrzymywanych przez daną stronę. Wartość noPriv
oznacza, że komunikaty otrzymywane przez stronę nie są chronione
przed ujawnieniem
partyPrivPrivate – tajna wartość, której wymaga protokół prywatności
partyPrivPublic – dowolna wartość jawna potrzebna w protokole
prywatności.
PROTOKOŁY TRANSPORTOWE
SNMPv1
●
UDP
SNMPv2
●
TCP, UDP, IPX, ...
ZMIANY W KOMUNIKATACH - GET
●
Podobny do SNMPv1 za wyjątkiem „wyjątków” - - exceptions, możliwe
wyjątki:
–
noSuchObject
–
noSuchInstance
Wyjątki nie są błędem.
ZMIANY W KOMUNIKATACH - GET - NEXT
●
Podobny do SNMPv1 za wyjątkiem „wyjątków”, możliwe wyjątki:
–
endOfMibView
ZMIANY W KOMUNIKATACH - GET - BULK
nowy w SNMPv2
pozwala odczytać wiele wartości
zwiększa wydajność
ZMIANY W KOMUNIKATACH - SET
Podobny do SNMPv1

Faza 1: dokonanie wielu sprawdzeń

Faza 2: dokonanie zmiany
Dodano nowe kody błędów.
ZMIANY W KOMUNIKATACH – SET - cd
ZMIANY W KOMUNIKATACH - TRAP
●
MIB może wysyłać powiadomienia w postaci makra
Używa tego samego formatu co inne PDU
ZMIANY W KOMUNIKATACH - INFORM
●
●
powiadomienie z potwierdzeniem
używany przede wszystkim do informowania menadżera wyższego
poziomu.
ZMIANY W KOMUNIKATACH - REPORT
●
nowy komunikat służący do przekazywania błędów/wyjątków protokołu
●
brak końcowej definicji w SNMPv2
BEZPIECZEŃSTWO W SNMP v3
security model – zastosowany model bezpieczeństwa:
party na społecznościach (SNMPv2)
oparty na użytkownikach
security name – nazwa osoby, organizacji itp. wykonującej
czynności zarządzania,
security Level - wymagany poziom bezpieczeństwa
bez autentykacji i poufności (NoAuthNoPriv)
z autentykacją ale bez poufnością (authNoPriv)
z autentykacją i poufnością (authPriv)
MODEL BEZPIECZEŃSTWA W SNMP v3
Opisywany przez liczbę czterobajtową
Możliwość spamiętywania parametrów bezpieczeństwa (jeśli inne
niż wynegocjowane)
Co daje:
Sprawdza czy komunikat nie został naruszony
Sprawdza autentyczność jednostki, która wygenerowała
komunikat
Wykrywa, czy komunikat nie jest zbyt przestarzały
Odszyfrowuje komunikat jeśli był zaszyfrowany
Określa czy wskazana przez SecurityName osoba ma dostęp, do
wykonywania określonej operacji na wskazanym obiekcie
Ma operację zapytania,
(isAccessAllowed)
czy
dostęp
jest
dozwolony
BEZPIECZEŃSTWO OPARTE NA UŻYTKOWNIKU USM
Podział na moduły:
Moduł uwierzytelnienia (uwierzytelnienie pochodzenia i
integralność danych)
Moduł czasowy (150 sekund) (ochrona przed
powtórzeniami i opóźnieniami)
Moduł ochrony prywatności (poufność danych)
Zapewniane usługi :
Integralność usług
Uwierzytelnienie pochodzenia danych
Poufność danych
Ograniczona ochrona przed powtórzeniami
FORMAT PAKIETU SMNPv3
FORMAT PAKIETU SMNPv3 - cd
W
podsystemie przetwarzania wiadomości
następujące pola nagłówka SNMPv3 :
analizowane
są
msgVersion - wersja protokołu (3)
msgID - unikatowy identyfikator używany pomiędzy dwoma
wejściami SNMP do koordynacji wymiany komunikatów typu
pytanie i odpowiedź; przyjmuje wartości w zakresie od 0 do 231
msgMaxSize - maksymalna wielkość komunikatu obsługiwana
przez nadawcę (od 484 do 231)
msgFlags - zawiera trzy flagi. Jeżeli flaga reportableFlag jest
ustawiona na TRUE, oznacza to, że odpowiedź jest wymagana.
Ustawiona flaga privFlag oznacza włączone szyfrowanie. Flaga
authFlag odpowiada za włączanie trybu uwierzytelniania
msgSecurityModel - identyfikator z zakresu od 0 do 231
oznaczający użyty model bezpieczeństwa. Zarezerwowane
wartości 1, 2 i 3 oznaczają po prostu kolejne wersje protokołu
SNMP
ZARZĄDCA SNMPv3
AGENT SNMPv3