SNMP

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 20. května 2020; kontroly vyžadují 4 úpravy .
SNMP
název Simple Network Management Protocol
Úroveň (podle modelu OSI ) Aplikovaný
Rodina UDP
Port/ID 161/ UDP ,162/ UDP
Účel protokolu Správa síťových zařízení
Specifikace RFC 1155 , RFC 1212 , RFC 1213 , RFC 1157 , RFC 3411
Hlavní implementace (klienti) Vestavěný do všech síťových operačních systémů
 Mediální soubory na Wikimedia Commons

SNMP ( anglicky  Simple Network Management Protocol  - jednoduchý protokol pro správu sítě) je standardní internetový protokol pro správu zařízení v sítích IP založených na architektuře TCP / UDP . Mezi zařízení s podporou SNMP patří směrovače, přepínače, servery, pracovní stanice, tiskárny, stojany na modemy a další. Protokol se běžně používá v systémech správy sítě k monitorování zařízení připojených k síti za podmínek, které vyžadují pozornost správce. SNMP je definován Internet Engineering Task Force (IETF) jako součást TCP/IP . Skládá se ze sady standardů pro správu sítě, včetně protokolu aplikační vrstvy, schématu databáze a sady datových objektů.

Přehled a základní pojmy

Při použití SNMP jeden nebo více administrativních počítačů (nazývaných manažeři ) monitoruje nebo spravuje skupinu hostitelů nebo zařízení v počítačové síti. Každý spravovaný systém má trvale spuštěný program nazývaný agent , který sděluje informace manažerovi prostřednictvím SNMP .

Sítě spravované SNMP se skládají ze tří klíčových součástí:

Spravované zařízení  je síťový prvek (hardware nebo software), který implementuje rozhraní pro správu (ne nutně SNMP), které umožňuje jednosměrný (pouze pro čtení) nebo obousměrný přístup ke konkrétním informacím o prvku. Spravovaná zařízení sdílejí tyto informace se správcem. Spravovaná zařízení mohou označovat jakýkoli druh zařízení: směrovače, přístupové servery, přepínače, mosty, rozbočovače, IP telefony, IP kamery, hostitelské počítače, tiskárny atd.

Agent je softwarový modul pro správu sítě umístěný na spravovaném zařízení nebo na zařízení připojeném k rozhraní pro správu spravovaného zařízení. Agent zná místní informace o správě a překládá tyto informace do nebo z formuláře specifického pro SNMP (zprostředkování dat).

Network Management System ( NMS ) je aplikace, která monitoruje a řídí spravovaná zařízení. NMS zajišťují většinu zpracování dat potřebných pro správu sítě. Každá spravovaná síť může mít jeden nebo více NMS.

Manažerské informační databáze (MIB)

Protože adresy objektů zařízení jsou definovány v digitálním formátu, je obtížné je zapamatovat. Pro jednoduchost se používají manažerské informační báze (MIB). MIB popisují strukturu spravovaných dat na subsystému zařízení; používají hierarchický jmenný prostor obsahující identifikátory objektů (OID). Každé OID se skládá ze dvou částí: textového názvu a číselné adresy SNMP. MIB jsou volitelné a hrají podpůrnou roli při překladu názvu objektu z lidského (slova) do SNMP (numerického) formátu. Velmi podobné serverům DNS . Jelikož se struktura objektů na zařízeních různých výrobců neshoduje, je téměř nemožné určit digitální SNMP adresy požadovaných objektů bez MIB báze. MIB používají notaci specifikovanou v ASN.1 .

Podrobnosti protokolu

SNMP funguje na aplikační vrstvě TCP/IP (vrstva 7 modelu OSI). SNMP agent přijímá požadavky na UDP portu 161. Manažer může odesílat požadavky z libovolného dostupného zdrojového portu na port agenta. Odpověď agenta bude odeslána zpět na zdrojový port na manažeru. Manažer přijímá oznámení (Traps a InformRequests) na portu 162. Agent může generovat oznámení z libovolného dostupného portu. Při použití TLS nebo DTLS jsou požadavky přijímány na portu 10161 a depeše jsou odesílány na portu 10162.

SNMPv1 specifikuje pět základních protokolových datových jednotek (PDU). Dvě další PDU, GetBulkRequest a InformRequest, byly představeny v SNMPv2 a portovány na SNMPv3.

Všechny SNMP PDU jsou sestaveny následovně:

IP hlavička (IP hlavička) UDP hlavička (UDP hlavička) verze (verze) komunita (heslo) PDU-type (PDU-type) request-id (ID požadavku) error-status (chybový stav) error-index (index chyb) proměnné vazby (vázané proměnné)

Níže je uvedeno sedm výměnných jednotek protokolu SNMP:

Získejte žádost

Požadavek manažera na objekt získat hodnotu proměnné nebo seznamu proměnných. Požadované proměnné jsou specifikovány v poli pro vazby proměnných (část pole hodnot se nepoužívá). Načtení hodnot zadané proměnné musí agent provést jako atomickou operaci . Manažerovi bude vrácena odpověď s aktuálními hodnotami.

setrequest

Požadavek manažera na objekt na změnu proměnné nebo seznamu proměnných. Vázané proměnné jsou uvedeny v těle požadavku. Změny všech specifikovaných proměnných musí agent provést jako atomickou operaci. Správci bude vrácena odpověď s (aktuálními) novými hodnotami proměnných.

GetNextRequest

Požadavek manažera na objekt, aby zjistil dostupné proměnné a jejich hodnoty. Odpověď s přidruženými proměnnými bude vrácena správci pro proměnnou, která je další v MIB v lexikografickém pořadí . Obejití celého MIB agenta lze provést iterativně pomocí GetNextRequest počínaje OID 0. Řádky tabulky lze číst zadáním sloupců OID v přidružených proměnných v požadavku.

GetBulkRequest

Vylepšená verze GetNextRequest. Požadavek od manažera na objekt pro více iterací GetNextRequest. Odpověď bude vrácena správci s několika přidruženými proměnnými počínaje přidruženými proměnnými v požadavku. Pole PDU-specifické non-repeaters a max-repetitions se používají k řízení chování odezvy. GetBulkRequest byl představen v SNMPv2.

Odpověď

Vrátí přidružené proměnné a hodnoty od agenta manažerovi pro GetRequest, SetRequest, GetNextRequest, GetBulkRequest a InformRequest. Oznámení o chybách poskytují pole chybového stavu a indexu chyb.

Tato jednotka se používá jako odpověď na požadavky Get a Set a v SNMPv1 se nazývá GetResponse.

Past

Asynchronní oznámení od agenta manažerovi. Zahrnuje aktuální hodnotu sysUpTime, OID identifikující typ depeše a volitelné související proměnné. Cílové adresování pro depeše je určeno pomocí konfiguračních proměnných depeší v MIB. Formát zprávy depeše byl změněn na SNMPv2 a PDU byla přejmenována na SNMPv2-Trap.

Žádost o informace

Asynchronní upozornění od manažera k manažerovi nebo od agenta k manažerovi. Oznámení mezi manažery a správci byla možná již v SNMPv1 (pomocí Trap), ale SNMP obvykle běží na UDP, kde není zaručeno doručení zpráv a nejsou hlášeny žádné ztracené pakety. InformRequest to řeší zasláním zpět potvrzení o přijetí. Příjemce odpoví Response, která opakuje všechny informace z InformRequest. Tento PDU byl představen v SNMPv2.

Vývoj a použití

Verze 1

SNMP verze 1 (SNMPv1) je původní implementace protokolu SNMP. SNMPv1 pracuje s protokoly jako UDP, IP, CLNS, DDP a IPX. SNMPv1 je široce používaný a je de facto protokolem pro správu sítě v internetové komunitě.

První RFC pro SNMP, nyní známé jako SNMPv1, se objevily v roce 1988:

Tyto protokoly byly revidovány v následujících RFC:

Po nějaké době byl RFC 1156 (MIB-1) nahrazen běžnějším:

Verze 1 byla kritizována za špatnou bezpečnost. Autentizace klientů byla prováděna pouze pomocí tzv. "common string" (community string), ve skutečnosti heslo, které bylo přenášeno v čisté podobě. Vývoj SNMPv1 v 80. letech 20. století provedla skupina lidí, kteří považovali oficiálně financovanou práci HEMS/CMIS/CMIP organizací OSI/IETF/NSF za nerealizovatelnou na tehdejších počítačových platformách a za potenciálně nefunkční. SNMP byl schválen z přesvědčení, že se jedná o přechodný protokol potřebný k podniknutí kroků k rozsáhlému nasazení internetu a jeho komercializaci. V té době byl autentizační/bezpečnostní standard snem a byl zmařen skupinami pro vývoj protokolů.

Verze 2

SNMPv2 ( RFC 1441 - RFC 1452 ) reviduje verzi 1 a zahrnuje vylepšení výkonu, zabezpečení, soukromí a komunikace mezi manažery. Protokol zavedl GetBulkRequest, alternativu k iterativnímu použití GetNextRequest k získání velkého množství řídicích dat v jediném požadavku. Zároveň nové zabezpečení založené na SNMPv2 nikdy nezískalo široké přijetí, protože jej mnozí považovali za příliš složité.

Komunitní SNMPv2 (SNMPv2c) je definováno v RFC 1901 - RFC 1908 . Ve svých počátcích byla tato verze neformálně známá jako SNMPv1.5. SNMPv2c obsahuje SNMPv2 bez jeho kontroverzního bezpečnostního modelu; místo toho je použito jednoduché komunitní bezpečnostní schéma z SNMPv1. SNMPv2c byl často považován za de facto standard SNMPv2, přestože to byl oficiálně pouze „Návrh standardu“.

User Based SNMPv2 (SNMPv2u) je definován v RFC 1909 - RFC 1910 . V podstatě se jedná o kompromis, který se snaží nabídnout větší zabezpečení než SNMPv1, ale bez přidané složitosti SNMPv2. Jedna varianta této verze, SNMP v2*, byla komercializována a samotný mechanismus byl nakonec přijat jako jeden ze dvou bezpečnostních rámců v SNMP v3.

Interakce mezi SNMPv1 a SNMPv2c

Nyní bylo zjištěno, že SNMPv2c není kompatibilní s SNMPv1 ve dvou klíčových oblastech: formáty zpráv a operace protokolů. Zprávy SNMPv2c používají jiné formáty záhlaví a datových jednotek protokolu (PDU) než SNMPv1. SNMPv2c také používá dvě protokolové operace, které nejsou definovány v SNMPv1. Kromě toho RFC 2576 definuje dvě možné strategie koexistence SNMPv1/v2c: proxy agenty a dvojjazyčné systémy správy sítě.

Proxy agenti

Agent SNMPv2 může působit jako proxy agent jménem zařízení spravovaných SNMPv1 následovně:

  • Systém správy sítě (NMS) SNMPv2 vydává příkazy určené pro agenta SNMPv1.
  • NMS odešle zprávu SNMP agentovi proxy SNMPv2.
  • Proxy agent předává zprávy Get, GetNext a Set agentovi SNMPv1 bez úprav.
  • Zprávy GetBulk jsou převedeny agentem proxy na zprávy GetNext a poté předány agentovi SNMPv1.

Proxy agent mapuje depeše SNMPv1 na depeše SNMPv2 a poté je předává NMS.

Dvojjazyčné systémy správy sítě

Dvojjazyčné systémy správy sítě SNMPv2 podporují SNMPv1 i SNMPv2. Pro podporu takového prostředí musí řídicí aplikace v dvojjazyčném NMS komunikovat s agentem. NMS poté analyzuje informace uložené v místní databázi, aby zjistil, zda agent podporuje SNMPv1 nebo SNMPv2. Na základě těchto informací NMS komunikuje s agentem pomocí příslušné verze SNMP.

Verze 3

I když SNMPv3 nepřináší do protokolu žádné změny kromě přidání kryptografického zabezpečení, jedná se o vylepšení prostřednictvím nových textových konvencí, konceptů a terminologie.

Bezpečnost je velkým problémem SNMP od jeho počátku. Autentizace v SNMP verze 1 a 2 nebyla ničím jiným než heslem (řetězcem komunity), které bylo zasláno jako prostý text mezi manažerem a agentem.

Na rozdíl od SNMPv1 a v2 obsahuje v SNMPv3 každá zpráva bezpečnostní parametry, které jsou zakódovány jako oktetový řetězec. Význam těchto parametrů závisí na modelu zabezpečení, který používáte.

SNMPv3 poskytuje důležité bezpečnostní funkce:

  • Autentizace – určení původu zprávy.
  • Důvěrnost – šifrování paketů pro ochranu před zachycením.
  • Integrita - prevence změn zpráv při přenosu, včetně dodatečného mechanismu ochrany proti opětovnému přenosu zachyceného paketu.

Od roku 2004 IETF uznává SNMPv3, jak je definováno v RFC 3411 , RFC 3418 (také známý jako STD0062) jako aktuální standardní verzi SNMP. IETF označila SNMPv3 za úplný internetový standard, což je nejvyšší úroveň připravenosti RFC. Zároveň jsou starší verze považovány za zastaralé (označované jako „historické“ – Historic).

V praxi implementace SNMP často podporují více verzí: v1, v2c a v3.

Problémy s implementací

Implementace SNMP se u jednotlivých prodejců platforem liší. V některých případech není SNMP považováno za dostatečně závažné pro základní vývojovou položku, a je proto pouze volitelnou funkcí. Někteří hlavní výrobci hardwaru mají tendenci příliš rozšiřovat svá vlastní rozhraní příkazového řádku (CLI) a řídicí systémy.

Zdánlivě jednoduchá stromová struktura a lineární indexování v SNMP není vždy dobře pochopeno v rámci interních datových struktur, které jsou prvky základního návrhu platformy. Zpracování požadavků SNMP na určité datové sady proto může vést k větší režii CPU, než je nutné. Jedním příkladem tohoto problému jsou velké směrovací tabulky, jako jsou BGP a IGP.

Indexování zdrojů

Modulární zařízení mohou dynamicky zvyšovat nebo snižovat své SNMP indexy (také nazývané případy), jak je hardware přidáván nebo odebírán. Nejčastěji se to používá s hardwarem, ačkoli virtuální rozhraní mají stejný účinek. Hodnoty indexu jsou obvykle přiřazeny při spouštění a zůstávají nezměněny až do dalšího restartu. Hardwarové indexy nebo virtuální entity přidané během živého zařízení mohou být přiřazeny na konci stávajícího rozsahu a případně znovu přiřazeny při příštím restartu.

Zabezpečení

  • Verze SNMP 1 a 2c jsou náchylné k čichání paketů pomocí řetězců zpráv, protože nepoužívají šifrování.
  • Všechny verze SNMP jsou náchylné na hrubou sílu a slovníkové útoky za účelem uhodnutí řetězců komunity, ověřovacích řetězců, ověřovacích klíčů, šifrovacích řetězců nebo šifrovacích klíčů, protože nepoužívají handshake výzva-odpověď.
  • Zatímco SNMP pracuje s TCP a dalšími protokoly, obvykle se používá s protokolem UDP, který je bez připojení a je zranitelný vůči útokům falšování IP adres. Přístupové seznamy zařízení lze použít k omezení přístupu SNMP, ale bezpečnostní mechanismy SNMPv3 mohou také úspěšně bránit útokům.
  • Rozsáhlé možnosti konfigurace SNMP mnoho prodejců plně nevyužívá, částečně kvůli nedostatečnému zabezpečení ve verzích SNMP před SNMPv3 a také proto, že mnoho zařízení jednoduše nelze nakonfigurovat se změnami jednoho objektu MIB.
  • SNMP se umístilo na prvním místě seznamu „Common Default Configuration Issues“ organizace SANS Institute s problémem počátečního nastavení komunitních řetězců na „veřejné“ a „soukromé“ a umístilo se na desátém místě v žebříčku SANS Top 10 nejkritičtějších hrozeb pro zabezpečení internetu v roce 2000.

Automatické ladění

Samotný SNMP je pouze protokol pro sběr a organizaci informací. Většina sad nástrojů pro implementaci SNMP nabízí určitou formu mechanismu zjišťování (standardizovanou sbírku dat společnou pro většinu platforem a zařízení) pro získání nového uživatele nebo umělce při spuštění. Jednou z těchto funkcí je často forma automatické konfigurace, při které jsou nová zařízení objevená v síti automaticky dotazována. V případě SNMPv1 a SNMPv2c se jedná o bezpečnostní riziko, protože komunity pro čtení SNMP budou na cílovém zařízení vysílány v čistém textu. I když se požadavky na zabezpečení v jednotlivých organizacích liší, při používání této funkce je třeba dbát opatrnosti, zejména v prostředích, jako jsou smíšená datová centra tenantů, zařízení pro hostování serverů a podobná prostředí.

Příklady použití SNMP utilit

snmpset a restartujte Cisco as53xx

  • Konfigurace SNMP na Cisco as53xx
as5350>cs Heslo: as5350#conf t Zadejte konfigurační příkazy, jeden na řádek. Konec CNTL/Z. Seznam #1: Povolit přístup ze sítě 10.26.95.224/27 nebo 255.255.255.224
  • Seznam #1: Povolit přístup ze sítě 10.26.95.224/27 nebo 255.255.255.224
as5350(config)#access-list 1 povolení 10.26.95.224 0.0.0.31
  • Seznam #2: Povolit přístup z IP 10.26.95.254 a 10.26.95.251
as5350(config)#access-list 2 povolit hostitele 10.26.95.254 as5350(config)#access-list 2 povolit hostitele 10.26.95.251
  • Konfigurace snmp-serveru pro čtení a zápis pomocí komunitního řetězce xxas5300xx. Přístup SNMP je povolen pouze pro přístupový seznam 2 (pro 2 IP adresy, implicitně odepřen pro ostatní IP adresy)
as5350(config)#snmp-server community xxas5300xx rw 2
  • Povolit restart Cisco přes SNMP.
as5350(config)#snmp-server system-shutdown as5350(config)#exit
  • Proveďme příkaz pro restart Cisco (parametry **.1.3.6.1.4.1.9.2.9.9.0 i 2** jsou převzaty z MIB ):
snmpset -v 2c -c xxas5300xx 10.26.95.231 ".1.3.6.1.4.1.9.2.9.9.0" i 2

RFC odkazy

  • RFC 1155 (STD 16) - Struktura a identifikace řídicích informací v sítích na základě sady protokolů TCP/IP
  • RFC 1156 (historický) – Informační báze pro správu pro správu sítě v sítích na základě sady protokolů TCP/IP
  • RFC 1157 (historický) – Simple Network Management Protocol (SNMP)
  • RFC 1213 (STD 17) - Informační báze pro správu pro správu sítě v sítích na základě sady protokolů TCP/IP: MIB-II
  • RFC 1452 (informační) – 'Koexistence verzí 1 a 2 standardu Internet Standard Network Management Framework (revidováno v RFC 1908 )
  • RFC 1901 (experimentální) - Úvod do komunitního SNMPv2
  • RFC 1902 (Draft Standard) – Řídicí informační rámec pro SNMPv2 (revidováno v RFC 2578 )
  • RFC 1908 (Standards Track) – Koexistence verzí 1 a 2 standardu Internet Standard Network Management Framework
  • RFC 2570 (informační) – Úvod do verze 3 standardu Internet Standard Network Management Framework (revidováno v RFC 3410 )
  • RFC 2578 (STD 58) – Control Information Framework verze 2 (SMIv2)
  • RFC 3410 (informační) – úvahy o zavedení a aplikaci internetového standardu Network Management Framework
  • STD62
    • RFC 3411  - Architektura pro popis SNMP Management Framework
    • RFC 3412  - Zpracování a odesílání zpráv pro SNMP
    • RFC 3413  - Aplikace SNMP
    • RFC 3414  – User Based Security Model (USM) pro SNMPv3
    • RFC 3415  - View-based Access Control Model (VACM) pro SNMP
    • RFC 3416  - Operace protokolu verze 2 pro SNMP
    • RFC 3417  - Transportní vazby pro SNMP
    • RFC 3418  - Management Information Base (MIB) pro SNMP
  • RFC 3430 (experimentální) - SNMP přes transportní vazby v TCP
  • RFC 3584 (BCP 74) – Koexistence verzí 1, 2 a 3 standardu Internet Standard Network Management Framework
  • RFC 3826 (navrženo) – šifrovací algoritmus Advanced Encryption Standard (AES) v uživatelském modelu zabezpečení v SNMP
  • RFC 5343 (navrženo) – Context EngineID Discovery v SNMP
  • RFC 5590 (Draft) - Transportní subsystém pro SNMP
  • RFC 5591 (Draft) - Model zabezpečení dopravy pro SNMP
  • RFC 5592 (navržený) - Secure Shell Transport Model pro SNMP
  • RFC 5608 (navrhováno) – Použití služby vytáčení vzdáleného ověřování (RADIUS) v modelech přenosu v SNMP
  • RFC 6353 (Draft) - Transportní model TLS pro SNMP

Odkazy

Poznámky

  1. Systém správy sítě