SNMP

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. május 20-án felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek .
SNMP
Név Egyszerű hálózatkezelési protokoll
Szint ( az OSI modell szerint ) Alkalmazott
Család UDP
Port/ID 161/ UDP ,162/ UDP
A protokoll célja Hálózati eszközkezelés
Leírás RFC 1155 , RFC 1212 , RFC 1213 , RFC 1157 , RFC 3411
Főbb megvalósítások (kliensek) Minden hálózati operációs rendszerbe beépítve
 Médiafájlok a Wikimedia Commons oldalon

Az SNMP ( angolul  Simple Network Management Protocol  – egy egyszerű hálózatkezelési protokoll) egy szabványos internetes protokoll IP-hálózatok eszközeinek TCP / UDP architektúrákon alapuló kezelésére . Az SNMP-képes eszközök közé tartoznak az útválasztók, kapcsolók, szerverek, munkaállomások, nyomtatók, modem állványok és mások. A protokollt általánosan használják a hálózatfelügyeleti rendszerekben a hálózatra csatlakoztatott eszközök figyelésére olyan állapotok esetén, amelyek rendszergazdai figyelmet igényelnek. Az SNMP-t az Internet Engineering Task Force (IETF) határozza meg a TCP/IP összetevőjeként . Hálózatkezelési szabványok készletéből áll, beleértve egy alkalmazási réteg protokollt, egy adatbázissémát és egy adatobjektumkészletet.

Áttekintés és alapfogalmak

SNMP használatakor egy vagy több adminisztratív számítógép (úgynevezett menedzser ) figyeli vagy kezeli a számítógépes hálózaton lévő gazdagépek vagy eszközök csoportját. Minden felügyelt rendszernek van egy állandóan futó programja, az úgynevezett ügynök , amely SNMP-n keresztül továbbítja az információkat a menedzsernek .

Az SNMP által felügyelt hálózatok három fő összetevőből állnak:

A felügyelt eszköz  egy hálózati elem (hardver vagy szoftver), amely olyan felügyeleti interfészt (nem feltétlenül SNMP-t) valósít meg, amely lehetővé teszi az egyirányú (csak olvasási) vagy kétirányú hozzáférést az elemre vonatkozó meghatározott információkhoz. A felügyelt eszközök megosztják ezeket az információkat a kezelővel. A felügyelt eszközök bármilyen eszközre vonatkozhatnak: útválasztók, hozzáférési szerverek, kapcsolók, hidak, hubok, IP-telefonok, IP-kamerák, gazdagépek, nyomtatók stb.

Az ügynök egy hálózatfelügyeleti szoftvermodul, amely egy felügyelt eszközön vagy egy felügyelt eszköz felügyeleti interfészéhez csatlakoztatott eszközön található. Az ügynök helyi ismeretekkel rendelkezik a felügyeleti információkról, és lefordítja ezeket az információkat SNMP-specifikus formára vagy onnan (adatközvetítés).

A Network Management System ( NMS ) egy olyan alkalmazás, amely felügyeli és vezérli a felügyelt eszközöket. Az NMS biztosítja a hálózatkezeléshez szükséges adatfeldolgozás nagy részét. Bármely felügyelt hálózatnak egy vagy több NMS-je lehet.

Menedzsment információs bázisok (MIB)

Mivel az eszközobjektumok címei digitális formátumban vannak meghatározva, nehéz megjegyezni őket. Az egyszerűség kedvéért menedzsment információs bázisokat (MIB) használnak. A MIB-k leírják a felügyelt adatok szerkezetét egy eszközalrendszeren; objektumazonosítókat (OID) tartalmazó hierarchikus névteret használnak. Minden OID két részből áll: egy szöveges névből és egy numerikus SNMP-címből. A MIB-k nem kötelezőek, és támogató szerepet játszanak az objektum nevének emberi (szó) formátumról SNMP (numerikus) formátumra történő fordításában. Nagyon hasonlít a DNS szerverekhez. Mivel a különböző gyártóktól származó eszközökön lévő objektumok szerkezete nem egyezik, szinte lehetetlen meghatározni a szükséges objektumok digitális SNMP-címét a MIB-bázis nélkül. A MIB-ek az ASN.1 -ben meghatározott jelölést használják .

Protokoll részletei

Az SNMP a TCP/IP alkalmazásrétegen működik (az OSI modell 7. rétege). Az SNMP-ügynök a 161-es UDP-porton fogadja a kéréseket. A menedzser bármely elérhető forrásportról küldhet kéréseket az ügynökportra. Az ügynök válaszát a rendszer visszaküldi a kezelő forrásportjára. A menedzser a 162-es porton kap értesítéseket (Traps és InformRequests). Az ügynök bármely elérhető portról generálhat értesítéseket. Ha TLS -t vagy DTLS -t használ , a kérések az 10161-es porton érkeznek, a csapdák pedig az 10162-es porton kerülnek elküldésre.

Az SNMPv1 öt alapvető protokolladat-egységet (PDU) határoz meg. Két további PDU, a GetBulkRequest és az InformRequest került be az SNMPv2-be, és portolták át az SNMPv3-ra.

Minden SNMP PDU a következőképpen épül fel:

IP-fejléc (IP-fejléc) UDP-fejléc (UDP-fejléc) verzió (verzió) közösség (jelszó) PDU-típus (PDU-típus) kérésazonosító (kérelemazonosító) hibaállapot (hibaállapot) hibaindex (hibaindex) változó kötések (kötött változók)

Az alábbiakban felsoroljuk a hét SNMP protokollcsere-egységet:

Kérelem lekérése

Kérelem egy menedzsertől egy objektumhoz egy változó értékének vagy a változók listájának lekérésére. A szükséges változók a Változókötések mezőben vannak megadva (az értékek mező szakasza nem használatos). A megadott változó értékeinek lekérését az ügynöknek Atomic műveletként kell végrehajtania . A menedzser egy választ kap vissza az aktuális értékekkel.

setrequest

Kérelem egy menedzsertől egy objektumhoz egy változó vagy változólista módosítására. A kötött változók a kérés törzsében vannak megadva. Az összes megadott változó módosítását az ügynöknek atomi műveletként kell végrehajtania. A válasz visszaküldésre kerül a menedzsernek a változók (aktuális) új értékeivel.

GetNextRequest

Kérelem egy menedzsertől egy objektumhoz az elérhető változók és értékük felderítésére. A kapcsolódó változókat tartalmazó választ visszaküldi a menedzsernek a MIB-ben lexikográfiai sorrendben következő változóhoz . A teljes ügynök MIB megkerülése elvégezhető a GetNextRequest iteratív használatával, a 0 OID-től kezdve. A táblázat sorai olvashatók az oszlop OID-k megadásával a kérés kapcsolódó változóiban.

GetBulkRequest

A GetNextRequest továbbfejlesztett változata. Kérelem a kezelőtől az objektumhoz a GetNextRequest többszöri iterációjához. A válasz visszaküldésre kerül a menedzsernek több kapcsolódó változóval, amelyek a kérésben szereplő kapcsolódó változó(k)tól kezdődnek. A PDU-specifikus non-repeaters és max-repetitions mezők a válasz viselkedésének szabályozására szolgálnak. A GetBulkRequest az SNMPv2-ben jelent meg.

Válasz

A társított változókat és értékeket adja vissza az ügynöktől a GetRequest, SetRequest, GetNextRequest, GetBulkRequest és InformRequest kezelőjének. A hibaértesítéseket a hibaállapot és a hibaindex mezők biztosítják.

Ezt az egységet a Get és a Set kérések válaszaként használják, és az SNMPv1-ben GetResponse-nak hívják.

Csapda

Aszinkron értesítés az ügynöktől a menedzser felé. Tartalmazza a sysUpTime aktuális értékét, a csapdatípust azonosító OID-t és az opcionális kapcsolódó változókat. A csapdák célcímzése a MIB-ben található trap konfigurációs változók segítségével történik. A csapdaüzenet formátuma SNMPv2-re módosult, a PDU pedig SNMPv2-Trap-re lett átnevezve.

Információkérés

Aszinkron értesítések menedzsertől vezetőig vagy ügynöktől vezetőig. A menedzserek közötti értesítések már az SNMPv1-ben is lehetségesek voltak (Trap használatával), de az SNMP jellemzően UDP-n fut, ahol az üzenetek kézbesítése nem garantált, és nincs jelentés az elveszett csomagokról. Az InformRequest ezt az átvételi elismervény visszaküldésével javítja ki. A fogadó válaszul válaszol, amely megismétli az InformRequest összes információt. Ezt a PDU-t az SNMPv2-ben vezették be.

Fejlesztés és felhasználás

1. verzió

Az SNMP 1-es verziója (SNMPv1) az SNMP protokoll eredeti megvalósítása. Az SNMPv1 olyan protokollokkal működik, mint az UDP, IP, CLNS, DDP és IPX. Az SNMPv1 széles körben használatos, és ez a de facto hálózatkezelési protokoll az internetes közösségben.

Az első RFC-k az SNMP-hez, mai nevén SNMPv1, 1988-ban jelentek meg:

Ezeket a protokollokat a következő RFC-k módosították:

Egy idő után az RFC 1156 (MIB-1) helyett a gyakrabban használt:

Az 1-es verziót bírálták a gyenge biztonság miatt. Az ügyfelek hitelesítése kizárólag az ún. "közös karakterlánc" (közösségi sztring), valójában a jelszó, amelyet tisztán továbbítottak. Az SNMPv1 fejlesztését az 1980-as években egy olyan embercsoport végezte, akik az OSI/IETF/NSF szervezetek hivatalosan finanszírozott HEMS/CMIS/CMIP munkáját egyszerre megvalósíthatatlannak és potenciálisan kivitelezhetetlennek tartották a korabeli számítástechnikai platformokon. Az SNMP-t abból a meggyőződésből hagyták jóvá, hogy ez egy köztes protokoll, amely szükséges ahhoz, hogy lépéseket tegyenek az internet nagyarányú kiépítése és kereskedelmi forgalomba hozatala felé. Abban az időben a hitelesítési/biztonsági szabvány álom volt, és a protokollfejlesztő csoportok meghiúsították.

2. verzió

Az SNMPv2 ( RFC 1441RFC 1452 ) felülvizsgálja az 1-es verziót, és javítja a teljesítményt, a biztonságot, az adatvédelmet és a vezetők közötti kommunikációt. A protokoll bevezette a GetBulkRequest-et, a GetNextRequest iteratív használatának alternatíváját, amellyel nagy mennyiségű vezérlőadatot kaphat egyetlen kérelemben. Ugyanakkor az új SNMPv2 oldalalapú biztonság soha nem terjedt el széles körben, mivel sokak szerint túl bonyolult.

A közösségi alapú SNMPv2-t (SNMPv2c) az RFC 1901 - RFC 1908 határozza meg . Gyerekcipőjében ez a verzió informálisan SNMPv1.5 néven volt ismert. Az SNMPv2c tartalmazza az SNMPv2-t a vitatott biztonsági modellje nélkül; ehelyett az SNMPv1 egyszerű közösségi alapú biztonsági sémáját használjuk. Az SNMPv2c-t gyakran de facto SNMPv2 szabványnak tekintették, annak ellenére, hogy hivatalosan csak "szabványtervezet" volt.

A felhasználó alapú SNMPv2 (SNMPv2u) az RFC 1909 - RFC 1910 szabványban van meghatározva . Lényegében ez egy kompromisszum, amely az SNMPv1-nél nagyobb biztonságot próbál kínálni, de az SNMPv2 bonyolultsága nélkül. Ennek a verziónak az egyik változata, az SNMP v2*, kereskedelmi forgalomba került, és magát a mechanizmust végül az SNMP v3 két biztonsági keretrendszere egyikeként fogadták el.

Kölcsönhatás az SNMPv1 és az SNMPv2c között

Az SNMPv2c-ről mostanra megállapították, hogy két kulcsfontosságú területen nem kompatibilis az SNMPv1-gyel: az üzenetformátumok és a protokollműveletek. Az SNMPv2c üzenetek eltérő fejléc- és protokolladat-egység- (PDU) formátumokat használnak, mint az SNMPv1. Ezenkívül az SNMPv2c két olyan protokollműveletet használ, amelyek nincsenek definiálva az SNMPv1-ben. Ezenkívül az RFC 2576 két lehetséges SNMPv1/v2c együttélési stratégiát határoz meg: proxy ügynököket és kétnyelvű hálózatkezelő rendszereket.

Meghatalmazott ügynökök

Az SNMPv2 ügynök proxy ügynökként működhet az SNMPv1 által felügyelt eszközök nevében, az alábbiak szerint:

  • Hálózatfelügyeleti rendszer (NMS) Az SNMPv2 parancsokat ad ki az SNMPv1 ügynök számára.
  • Az NMS SNMP üzenetet küld az SNMPv2 proxy ügynöknek.
  • A proxy ügynök módosítás nélkül továbbítja a Get, GetNext és Set üzeneteket az SNMPv1 ügynöknek.
  • A GetBulk üzeneteket a proxy ügynök alakítja GetNext üzenetekké, majd továbbítja az SNMPv1 ügynöknek.

A proxy ügynök leképezi az SNMPv1 csapdákat SNMPv2 csapdákra, majd továbbítja azokat az NMS-nek.

Kétnyelvű hálózatkezelő rendszerek

A kétnyelvű SNMPv2 hálózatfelügyeleti rendszerek az SNMPv1-et és az SNMPv2-t is támogatják. Egy ilyen környezet támogatásához a kétnyelvű NMS-ben lévő vezérlőalkalmazásnak kommunikálnia kell az ügynökkel. Az NMS ezután elemzi a helyi adatbázisban tárolt információkat, hogy megállapítsa, hogy az ügynök támogatja-e az SNMPv1 vagy SNMPv2 szabványt. Ezen információk alapján az NMS az SNMP megfelelő verzióját használva kommunikál az ügynökkel.

3. verzió

Noha az SNMPv3 a kriptográfiai biztonság növelésén kívül nem hoz semmilyen változtatást a protokollban, az új szövegkonvenciók, fogalmak és terminológia révén előrelépést jelent.

A biztonság a kezdetek óta nagy probléma az SNMP-vel kapcsolatban. Az SNMP 1-es és 2-es verziójában a hitelesítés nem volt több, mint egy jelszó (közösségi karakterlánc), amelyet tiszta szövegben küldtek el a menedzser és az ügynök között.

Az SNMPv1-től és a v2-től eltérően az SNMPv3-ban minden üzenet biztonsági paramétereket tartalmaz, amelyek oktett karakterláncként vannak kódolva. Ezeknek a paramétereknek a jelentése a használt biztonsági modelltől függ.

Az SNMPv3 fontos biztonsági funkciókat kínál:

  • Hitelesítés - az üzenet eredetének meghatározása.
  • Titoktartás – Csomagok titkosítása a lehallgatás elleni védelem érdekében.
  • Integritás – az átvitel közbeni üzenetek változásának megakadályozása, beleértve egy további mechanizmust a rögzített csomagok újraküldése ellen.

2004 óta az IETF az RFC 3411 , RFC 3418 (más néven STD0062) szabványban meghatározott SNMPv3-at az SNMP jelenlegi szabványos verziójaként ismeri el. Az IETF teljes internetes szabványként jelölte meg az SNMPv3-at, amely az RFC készenlét legmagasabb szintjét jelenti. Ugyanakkor a korábbi verziók elavultnak minősülnek ("történelmi" - Történelmi).

A gyakorlatban az SNMP implementációk gyakran több verziót is támogatnak: v1, v2c és v3.

Megvalósítási problémák

Az SNMP-megvalósítások platformonként eltérőek. Egyes esetekben az SNMP nem tekinthető elég komolynak egy alapvető fejlesztési elemhez, ezért csak egy opcionális szolgáltatás. Egyes nagyobb hardvergyártók hajlamosak túlságosan kiterjeszteni saját parancssori felületeiket (CLI) és vezérlőrendszereiket.

Az SNMP látszólag egyszerű fastruktúrája és lineáris indexelése nem mindig érthető jól a belső adatstruktúrákban, amelyek az alapul szolgáló platform kialakításának elemei. Ezért az SNMP-kérelmek feldolgozása bizonyos adatkészleteken a szükségesnél több CPU-többlethez vezethet. A probléma egyik példája a nagy útválasztó táblák, például a BGP és az IGP.

Erőforrások indexelése

A moduláris eszközök dinamikusan növelhetik vagy csökkenthetik SNMP-indexeiket (más néven eseteket), amikor hardvert adnak hozzá vagy eltávolítanak. Ezt leggyakrabban hardverrel használják, bár a virtuális interfészek ugyanazt a hatást fejtik ki. Az indexértékek általában rendszerindításkor kerülnek hozzárendelésre, és a következő újraindításig változatlanok maradnak. Az élő eszköz során hozzáadott hardverindexek vagy virtuális entitások hozzárendelhetők a meglévő tartomány végén, és esetleg a következő újraindításkor újra hozzárendelhetők.

Biztonság

  • Az 1-es és 2c-es SNMP-verziók érzékenyek az üzenetkarakterláncokkal történő csomagszippantásra, mivel nem használnak titkosítást.
  • Az SNMP minden verziója ki van téve a nyers erőnek és a szótári támadásoknak , hogy kitalálja a közösségi karakterláncokat, hitelesítési karakterláncokat, hitelesítési kulcsokat, titkosítási karakterláncokat vagy titkosítási kulcsokat, mivel nem használják a kihívás-válasz kézfogást.
  • Míg az SNMP TCP-vel és más protokollokkal működik, általában az UDP-vel használják, amely kapcsolat nélküli és sebezhető az IP-hamisítási támadásokkal szemben. Az eszközhozzáférési listák felhasználhatók az SNMP-hozzáférés korlátozására, de az SNMPv3 biztonsági mechanizmusok is sikeresen meghiúsíthatják a támadásokat.
  • A kiterjedt SNMP konfigurációs lehetőségeket sok gyártó nem használja ki teljesen, részben az SNMP SNMPv3 előtti verzióiban a biztonság hiánya miatt, és azért is, mert sok eszköz egyszerűen nem konfigurálható egyetlen MIB objektum módosításával.
  • Az SNMP vezette a SANS Institute "Common Default Configuration Issues" listáját azzal a kérdéssel, hogy a közösségi karakterláncokat kezdetben "nyilvános" és "privát" értékre állította, és a tizedik helyet foglalta el a SANS 2000. évi 10 legkritikusabb internetes biztonsági fenyegetés listáján.

Automatikus hangolás

Az SNMP maga csak egy protokoll az információk összegyűjtésére és rendszerezésére. A legtöbb SNMP-megvalósító eszközkészlet kínál valamilyen felderítési mechanizmust (a legtöbb platformon és eszközön közös adatgyűjtemény), hogy az indításkor új felhasználót vagy előadót szerezzenek. Az egyik ilyen funkció gyakran az automatikus konfigurálás egyik formája, amelyben a hálózaton felfedezett új eszközök automatikusan lekérdezésre kerülnek. Az SNMPv1 és SNMPv2c esetében ez biztonsági kockázatot jelent, mivel az SNMP olvasási közösségek tiszta szöveggel kerülnek sugárzásra a céleszközön. Bár a biztonsági követelmények szervezetenként eltérőek, óvatosnak kell lenni ennek a funkciónak a használatakor, különösen olyan környezetekben, mint a vegyes bérlői adatközpontok, szervertárhely-létesítmények és hasonló környezetek.

Példák az SNMP segédprogramok használatára

snmpset , és indítsa újra a Cisco as53xx-et

  • Az SNMP konfigurálása a Cisco as53xx rendszeren
as5350>en Jelszó: as5350#conf t Adja meg a konfigurációs parancsokat, soronként egyet. Vége a CNTL/Z-vel. 1. lista: Hozzáférés engedélyezése a 10.26.95.224/27 vagy 255.255.255.224 hálózatról
  • 1. lista: Hozzáférés engedélyezése a 10.26.95.224/27 vagy 255.255.255.224 hálózatról
as5350(config)#access-list 1 engedély 10.26.95.224 0.0.0.31
  • 2. lista: Hozzáférés engedélyezése a 10.26.95.254 és 10.26.95.251 IP-címekről
as5350(config)#access-list 2 engedélyezési gazdagép 10.26.95.254 as5350(config)#access-list 2 engedély gazdagép 10.26.95.251
  • Az snmp-szerver beállítása az xxas5300xx közösségi karakterlánc olvasásához és írásához. Az SNMP-hozzáférés csak a 2. hozzáférési listához engedélyezett (2 IP-cím esetén, más IP-címeknél hallgatólagosan megtagadva)
as5350(config)#snmp-server közösség xxas5300xx rw 2
  • Engedélyezze a Cisco újraindítását SNMP-n keresztül.
as5350(config)#snmp-server system-shutdown as5350(config)#exit
  • Végezzük el a parancsot a Cisco újraindításához (a **.1.3.6.1.4.1.9.2.9.9.0 i 2** paraméterek a MIB -ből származnak ):
snmpset -v 2c -c xxas5300xx 10.26.95.231 ".1.3.6.1.4.1.9.2.9.9.0" i 2

RFC linkek

  • RFC 1155 (STD 16) – A hálózatok vezérlési információinak szerkezete és azonosítása a TCP/IP protokollverem alapján
  • RFC 1156 (Historic) – Menedzsment információs bázis a hálózatkezeléshez a TCP/IP protokollveremen alapuló hálózatokban
  • RFC 1157 (történelmi) – Simple Network Management Protocol (SNMP)
  • RFC 1213 (STD 17) – Menedzsment információs bázis hálózatkezeléshez a TCP/IP protokollveremen alapuló hálózatokban: MIB-II
  • RFC 1452 (információs) – „Az Internet Standard Network Management Framework 1. és 2. verziójának együttélése (az RFC 1908 -ban felülvizsgálva )
  • RFC 1901 (kísérleti) – Bevezetés a közösségi alapú SNMPv2-be
  • RFC 1902 (szabványtervezet) – SNMPv2 vezérlési információs keretrendszere ( RFC 2578 -ban felülvizsgálva )
  • RFC 1908 (Standards Track) – Az Internet Standard Network Management Framework 1. és 2. verziójának együttélése
  • RFC 2570 (Informational) – Bevezetés az Internet Standard Network Management Framework 3. verziójába (az RFC 3410 -ben felülvizsgálva )
  • RFC 2578 (STD 58) – Vezérlési információs keretrendszer, 2. verzió (SMIv2)
  • RFC 3410 (információs) – Megfontolások a Network Management Framework internetes szabványának bevezetéséhez és alkalmazásához
  • STD62
    • RFC 3411  – Az SNMP felügyeleti keretrendszer leírásának architektúrája
    • RFC 3412  – Üzenetek kezelése és küldése SNMP-hez
    • RFC 3413  – SNMP alkalmazások
    • RFC 3414  – Felhasználó alapú biztonsági modell (USM) az SNMPv3-hoz
    • RFC 3415  – Nézetalapú hozzáférés-vezérlési modell (VACM) SNMP-hez
    • RFC 3416  – Protokollműveletek 2. verziója SNMP-hez
    • RFC 3417  – Szállítási kötések SNMP-hez
    • RFC 3418  – Menedzsment információs bázis (MIB) az SNMP-hez
  • RFC 3430 (kísérleti) – SNMP a TCP-ben a szállítási kötéseken keresztül
  • RFC 3584 (BCP 74) – Az Internet Standard Network Management Framework 1., 2. és 3. verziójának együttélése
  • RFC 3826 (javasolt) – Advanced Encryption Standard (AES) titkosítási algoritmus a felhasználó alapú biztonsági modellben az SNMP-ben
  • RFC 5343 (javasolt) – Context EngineID Discovery az SNMP-ben
  • RFC 5590 (vázlat) – SNMP szállítási alrendszere
  • RFC 5591 (vázlat) – SNMP szállításbiztonsági modellje
  • RFC 5592 (javasolt) – Secure Shell Transport Model for SNMP
  • RFC 5608 (javasolt) – Távoli hitelesítési telefonos szolgáltatás (RADIUS) használata szállítási modellekben az SNMP-ben
  • RFC 6353 (vázlat) – TLS szállítási modell SNMP-hez

Linkek

Jegyzetek

  1. Hálózatkezelő rendszer