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