SNMP, wersje 1, 2c i 3
SNMP v1 operacje zarządcy: get(oid1, OID2,..., OIDN) odczytanie wartości obiektu o zadanym identyfikatorze dla każdego argumentu getnext (OID1, OID2,..., OIDN) odczytanie identyfikatora i wartości obiektu następnego leksykograficznie po zadanym dla każdego argumentu set (OID1, val1, OID2, val2,..., OIDN, valn) ustawienie zadanej wartości obiektu o zadanym identyfikatorze, dla każdego argumentu; operacja jest atomowa ustawienie wartości wszystkich instancji obiektów albo żadnej trap (pułapka) wyjątek, zgłaszany spontanicznie przez agenta, w przypadku: uruchomienia agenta (cold start), zatrzymania agenta (shutdown) i tylko pięciu innych sytuacjach (w wersjach 2c/3 spektrum poszerzono) mechanizm bezpieczeństwa nazwa społeczności (ang. community name), przesyłana w sposób jawny GetRequest GetNextRequest SetRequest Zarządca GetResponse Trap Agent
SNMPv1 - ograniczenia Brak: mechanizmów bezpieczeństwa możliwości dynamicznego tworzenia nowych wierszy w tablicach efektywnych operacji odczytywania dużych fragmentów bazy MIB (wiele operacji getnext) mechanizmów komunikacji pomiędzy zarządcami
SNMPv2c nieudana próba dołączenia mechanizmów bezpieczeństwa pozostał taki, jak w wersji 1 - v2c, od ang. version 2 community-based usprawnienia względem wersji 1: - rozszerzenia języka SMI opisu bazy MIB (SMIv2) - nowa operacja getbulk, dla efektywnego odczytywania dużych fragmentów bazy MIB - nowa operacja inform dla komunikacji pomiędzy zarządcami - możliwość tworzenia nowych wierszy w już istniejących tablicach
SNMPv3 rozszerzalna, modularna architektura agenta usprawnienia względem wersji 2 wbudowane mechanizmy bezpieczeństwa - USM (ang. User-based Security Model) - VACM (ang. View-based Access Control Model) engineid identyfikator konkretnej jednostki SNMP aktywnej w danej maszynie
Architektura SNMPv3 Źródło: W. Stallings, Protokoły SNMP i RMON, Helion 2003 Blok nadawczy Podsystem przetwarzania wiadomości Podsystem bezpieczeństwa (USM lub inny) Podsystem kontroli dostępu (VACM lub inny) Engine SNMP Aplikacje (wykonawca poleceń, nadawca powiadomień itd.) Obsługa bazy MIB Rysunek. Typowy agent SNMP Aplikacje SNMP Standardowe interfejsy dla komunikacji pomiędzy modułami umożliwiają wymianę jednego modułu na inny (np. zamianę algorytmu DES na AES)
SNMPv3 - bezpieczeństwo USM uwierzytelnianie zarządców i poufność transmisji algorytmy kryptograficzne: DES/DES3, AES funkcje skrótu: MD5, SHA0/1 VACM autoryzacja zarządców nazwa bezpieczeństwa (ang. security name) dla wersji 1 i 2c wiąże nazwę społeczności z lokalizacją, dla wersji 3 jest równa nazwie użytkownika grupa (ang. group) zbiór zarządców, wiążący różne nazwy bezpieczeństwa i odpowiadające im modele bezpieczeństwa (v1, v2c lub usm) widok (ang. view) zbiór obiektów zarządzania, najczęściej poddrzewo identyfikatorów zasady dostępu (ang. access) wiążą grupy z trzema poziomami dostępu (read, write i notify) do różnych widoków
SNMPv3 - bezpieczeństwo opcjonalne, dla SNMPv1/v2c all community location security name security model... (v1, v2c, usm) security name security model group1 view1 view2 community location security name security model group2... Access read write notify group1 all all view2 group2 view1 none view1
Implementacja pakiet net-snmp Język implementacji: C POLECENIA snmpd agent SNMP snmpget, snmpgetnext, snmpset polecenia odpowiadające podstawowym komendom protokołu snmpwalk odczytanie całej bazy MIB lub wybranej grupy snmpwalk odczytanie całej tablicy snmptrapd aplikacja odbierająca pułapki od agentów PLIKI KONFIGURACYJNE snmpd.conf plik konfiguracyjny agenta SNMP dyrektywy: [ro/rw]community (SNMPv1/v2c), rouser, rwuser (uproszczone dla SNMPv3), createuser (USM), com2sec, group, view, access (VACM), trapsink, authtrapenable (zarządzanie pułapkami) snmptrapd.conf plik konfiguracyjny procesu snmptrapd dyrektywa traphandle (wywołanie zewnętrznego programu obsługi pułapki)