SNMP

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 20. maj 2020; checks kræver 4 redigeringer .
SNMP
Navn Simpel netværksstyringsprotokol
Niveau (ifølge OSI-modellen ) Anvendt
Familie UDP
Port/ID 161/ UDP ,162/ UDP
Formål med protokollen Administration af netværksenheder
Specifikation RFC 1155 , RFC 1212 , RFC 1213 , RFC 1157 , RFC 3411
Vigtigste implementeringer (klienter) Indbygget i alle netværksoperativsystemer
 Mediefiler på Wikimedia Commons

SNMP ( engelsk  Simple Network Management Protocol  - en simpel netværksstyringsprotokol) er en standard internetprotokol til styring af enheder på IP-netværk baseret på TCP / UDP -arkitekturer . SNMP-aktiverede enheder omfatter routere, switche, servere, arbejdsstationer, printere, modemstativer og andre. Protokollen bruges almindeligvis i netværksstyringssystemer til at overvåge netværkstilsluttede enheder for forhold, der kræver administratorens opmærksomhed. SNMP er defineret af Internet Engineering Task Force (IETF) som en komponent i TCP/IP . Den består af et sæt standarder for netværksstyring, herunder en applikationslagsprotokol, et databaseskema og et sæt dataobjekter.

Oversigt og grundlæggende begreber

Når du bruger SNMP, overvåger eller administrerer en eller flere administrative computere (kaldet managers ) en gruppe værter eller enheder på et computernetværk. Hvert administreret system har et permanent kørende program kaldet en agent , der kommunikerer information til manageren via SNMP .

SNMP-administrerede netværk består af tre nøglekomponenter:

En administreret enhed  er et netværkselement (hardware eller software), der implementerer en administrationsgrænseflade (ikke nødvendigvis SNMP), der tillader envejs (skrivebeskyttet) eller tovejsadgang til specifik information om elementet. Administrerede enheder deler disse oplysninger med administratoren. Administrerede enheder kan referere til enhver form for enhed: routere, adgangsservere, switche, broer, hubs, IP-telefoner, IP-kameraer, værtscomputere, printere osv.

En agent er et netværksstyringssoftwaremodul, der er placeret på en administreret enhed eller på en enhed, der er forbundet til administrationsgrænsefladen på en administreret enhed. Agenten har lokal viden om ledelsesinformation og oversætter denne information til eller ud af en SNMP-specifik form (dataformidling).

Network Management System ( NMS ) er et program, der overvåger og kontrollerer administrerede enheder. NMS leverer hovedparten af ​​den databehandling, der er nødvendig for netværksstyring. Ethvert administreret netværk kan have en eller flere NMS'er.

Management Information Bases (MIB'er)

Da adresserne på enhedsobjekter er defineret i digitalt format, er de svære at huske. For nemheds skyld anvendes ledelsesinformationsbaser (MIB'er). MIB'er beskriver strukturen af ​​administrerede data på et enhedsundersystem; de bruger et hierarkisk navneområde, der indeholder objektidentifikatorer (OID'er). Hver OID består af to dele: et tekstnavn og en numerisk SNMP-adresse. MIB'er er valgfrie og spiller en understøttende rolle ved oversættelse af objektnavnet fra human (ord) til SNMP (numerisk) format. Meget lig DNS -servere. Da strukturen af ​​objekter på enheder fra forskellige producenter ikke stemmer overens, er det næsten umuligt at bestemme de digitale SNMP-adresser for de nødvendige objekter uden MIB-basen. MIB'er bruger notationen specificeret i ASN.1 .

Protokol detaljer

SNMP opererer på TCP/IP-applikationslaget (lag 7 af OSI-modellen). SNMP-agenten modtager anmodninger på UDP-port 161. Manageren kan sende anmodninger fra enhver tilgængelig kildeport til agentporten. Agentens svar vil blive sendt tilbage til kildeporten på manageren. Manageren modtager notifikationer (Traps og InformRequests) på port 162. Agenten kan generere notifikationer fra enhver tilgængelig port. Når du bruger TLS eller DTLS , modtages anmodninger på port 10161, og traps sendes på port 10162.

SNMPv1 specificerer fem grundlæggende protokoldataenheder (PDU'er). Yderligere to PDU'er, GetBulkRequest og InformRequest, blev introduceret i SNMPv2 og overført til SNMPv3.

Alle SNMP PDU'er er bygget som følger:

IP-header (IP-header) UDP-header (UDP-header) version (version) fællesskab (adgangskode) PDU-type (PDU-type) request-id (request id) fejlstatus (fejlstatus) fejlindeks (fejlindeks) variable bindinger (bundne variable)

De syv SNMP-protokoludvekslingsenheder er anført nedenfor:

Hent anmodning

En anmodning fra en leder til et objekt om at få værdien af ​​en variabel eller en liste over variabler. De nødvendige variabler er angivet i variabelbindingsfeltet (sektionen af ​​værdifeltet bruges ikke). Hentning af værdierne for den specificerede variabel skal udføres af agenten som en atomoperation . Lederen vil få et svar tilbage med de aktuelle værdier.

setrequest

En anmodning fra en leder til et objekt om at ændre en variabel eller liste over variabler. Bundne variabler er angivet i anmodningens brødtekst. Ændringer af alle specificerede variabler skal udføres af agenten som en atomoperation. Et svar vil blive returneret til lederen med de (nuværende) nye værdier af variablerne.

GetNextRequest

En anmodning fra en leder til et objekt om at opdage tilgængelige variabler og deres værdier. Et svar med tilknyttede variable vil blive returneret til manageren for den variabel, der er næste i MIB i leksikografisk rækkefølge . Omgåelse af hele agent-MIB kan ske ved iterativt at bruge GetNextRequest startende fra OID 0. Tabelrækker kan læses ved at angive kolonne-OID'er i de tilknyttede variabler i anmodningen.

GetBulkRequest

En forbedret version af GetNextRequest. Anmodning fra leder til objekt for flere iterationer af GetNextRequest. Et svar vil blive returneret til lederen med flere tilknyttede variabler krydset startende med de tilknyttede variabler i anmodningen. De PDU-specifikke ikke-repeatere og max-repetitions-felter bruges til at kontrollere reaktionens adfærd. GetBulkRequest blev introduceret i SNMPv2.

Svar

Returnerer tilknyttede variabler og værdier fra agenten til administratoren for GetRequest, SetRequest, GetNextRequest, GetBulkRequest og InformRequest. Fejlmeddelelser leveres af fejlstatus- og fejlindeksfelter.

Denne enhed bruges som svar på både Get- og Set-anmodninger og kaldes GetResponse i SNMPv1.

Trap

Asynkron meddelelse fra agenten til lederen. Indeholder den aktuelle værdi af sysUpTime, en OID, der identificerer fældetypen, og valgfrie tilknyttede variabler. Destinationsadressering for traps bestemmes ved hjælp af trap-konfigurationsvariabler i MIB. Trappemeddelelsesformatet er blevet ændret til SNMPv2, og PDU'en er blevet omdøbt til SNMPv2-Trap.

Informer anmodning

Asynkron besked fra leder til leder eller fra agent til leder. Manager-til-manager-meddelelser var allerede mulige i SNMPv1 (ved hjælp af Trap), men SNMP kører typisk på UDP, hvor meddelelseslevering ikke er garanteret, og ingen mistede pakker rapporteres. InformRequest retter dette ved at sende en kvittering for modtagelsen tilbage. Modtageren svarer med et svar, der gentager alle oplysningerne fra InformRequest. Denne PDU blev introduceret i SNMPv2.

Udvikling og brug

Version 1

SNMP version 1 (SNMPv1) er den originale implementering af SNMP-protokollen. SNMPv1 fungerer med protokoller som UDP, IP, CLNS, DDP og IPX. SNMPv1 er meget udbredt og er de facto netværksstyringsprotokol i internetsamfundet.

De første RFC'er til SNMP, nu kendt som SNMPv1, dukkede op i 1988:

Disse protokoller er blevet revideret i følgende RFC'er:

Efter nogen tid blev RFC 1156 (MIB-1) erstattet af den mere almindeligt anvendte:

Version 1 er blevet kritiseret for dårlig sikkerhed. Autentificering af klienter blev kun udført ved hjælp af den såkaldte. "fælles streng" (fællesskabsstreng), faktisk adgangskoden, som blev transmitteret i det klare. Udviklingen af ​​SNMPv1 i 1980'erne blev udført af en gruppe mennesker, der betragtede OSI/IETF/NSF-organisationernes officielt finansierede HEMS/CMIS/CMIP-arbejde som både urealiserbart på datidens computerplatforme og potentielt ubrugeligt. SNMP blev godkendt ud fra den tro, at det var en mellemprotokol, der var nødvendig for at tage skridt i retning af storstilet udrulning af internettet og dets kommercialisering. På det tidspunkt var en autentificerings-/sikkerhedsstandard en drøm og blev forpurret af protokoludviklingsgrupper.

Version 2

SNMPv2 ( RFC 1441 - RFC 1452 ) reviderer version 1 og inkluderer forbedringer i ydeevne, sikkerhed, privatliv og kommunikation mellem ledere. Protokollen introducerede GetBulkRequest, et alternativ til den iterative brug af GetNextRequest for at opnå en stor mængde kontroldata i en enkelt anmodning. Samtidig fik den nye SNMPv2 sidebaserede sikkerhed aldrig udbredt udbredelse, da den af ​​mange blev opfattet som for kompleks.

Fællesskabsbaseret SNMPv2 (SNMPv2c) er defineret i RFC 1901 - RFC 1908 . I sin vorden var denne version uformelt kendt som SNMPv1.5. SNMPv2c inkluderer SNMPv2 uden dens kontroversielle sikkerhedsmodel; i stedet bruges et simpelt fællesskabsbaseret sikkerhedsskema fra SNMPv1. SNMPv2c er ofte blevet set som den de facto SNMPv2 standard, på trods af at det officielt kun var en "Draft Standard".

Brugerbaseret SNMPv2 (SNMPv2u) er defineret i RFC 1909 - RFC 1910 . Grundlæggende er dette et kompromis, der forsøger at tilbyde større sikkerhed end SNMPv1, men uden den ekstra kompleksitet af SNMPv2. En variant af denne version, SNMP v2*, blev kommercialiseret, og selve mekanismen blev til sidst vedtaget som en af ​​de to sikkerhedsrammer i SNMP v3.

Interaktion mellem SNMPv1 og SNMPv2c

SNMPv2c er nu blevet fastslået at være inkompatibel med SNMPv1 på to nøgleområder: meddelelsesformater og protokoloperationer. SNMPv2c-meddelelser bruger andre header- og protokoldataenhedsformater (PDU) end SNMPv1. Desuden bruger SNMPv2c to protokoloperationer, der ikke er defineret i SNMPv1. Derudover definerer RFC 2576 to mulige SNMPv1/v2c-sameksistensstrategier: proxy-agenter og tosprogede netværksadministrationssystemer.

Proxy-agenter

En SNMPv2- agent kan fungere som proxy-agent på vegne af SNMPv1-administrerede enheder, som følger:

  • Network Management System (NMS) SNMPv2 udsteder kommandoer beregnet til SNMPv1-agenten.
  • NMS sender en SNMP-meddelelse til SNMPv2-proxyagenten.
  • Proxyagenten videresender Get-, GetNext- og Set-meddelelserne til SNMPv1-agenten uden ændringer.
  • GetBulk-meddelelser konverteres af proxy-agenten til GetNext-meddelelser og videresendes derefter til SNMPv1-agenten.

Proxyagenten kortlægger SNMPv1-fælder til SNMPv2-fælder og videresender dem derefter til NMS.

Tosprogede netværksstyringssystemer

Tosprogede SNMPv2-netværksadministrationssystemer understøtter både SNMPv1 og SNMPv2. For at understøtte et sådant miljø skal kontrolapplikationen i det tosprogede NMS kommunikere med agenten. NMS'en analyserer derefter informationen, der er gemt i den lokale database, for at bestemme, om agenten understøtter SNMPv1 eller SNMPv2. Baseret på disse oplysninger kommunikerer NMS med agenten ved hjælp af den relevante version af SNMP.

Version 3

Selvom SNMPv3 ikke medfører andre ændringer i protokollen end at tilføje kryptografisk sikkerhed, er det en forbedring gennem nye tekstkonventioner, koncepter og terminologi.

Sikkerhed har været et stort problem med SNMP siden starten. Godkendelse i SNMP version 1 og 2 var ikke mere end en adgangskode (fællesskabsstreng), der blev sendt i klartekst mellem manageren og agenten.

I modsætning til SNMPv1 og v2 indeholder hver besked i SNMPv3 sikkerhedsparametre, der er kodet som en oktetstreng. Betydningen af ​​disse parametre afhænger af den sikkerhedsmodel, du bruger.

SNMPv3 giver vigtige sikkerhedsfunktioner:

  • Autentificering - bestemmelse af meddelelsens oprindelse.
  • Fortrolighed - Kryptering af pakker for at beskytte mod aflytning.
  • Integritet - forebyggelse af ændringer af meddelelser i transit, herunder en ekstra mekanisme til beskyttelse mod gentransmission af en opfanget pakke.

Siden 2004 har IETF anerkendt SNMPv3 som defineret i RFC 3411 , RFC 3418 (også kendt som STD0062) som den aktuelle standardversion af SNMP. IETF har markeret SNMPv3 som en komplet internetstandard, hvilket er det højeste niveau af RFC-beredskab. Samtidig anses tidligere versioner for at være forældede (benævnt "historiske" - Historiske).

I praksis understøtter SNMP-implementeringer ofte flere versioner: v1, v2c og v3.

Implementeringsproblemer

SNMP-implementeringer varierer mellem platformsleverandører. I nogle tilfælde anses SNMP ikke for at være seriøs nok til et kerneudviklingselement og er derfor kun en valgfri funktion. Nogle større hardwareleverandører har en tendens til at overudvide deres egne kommandolinjegrænseflader (CLI) og kontrolsystemer.

Den tilsyneladende simple træstruktur og lineære indeksering i SNMP er ikke altid godt forstået inden for de interne datastrukturer, der er elementer i det underliggende platformdesign. Derfor kan behandling af SNMP-anmodninger på visse datasæt føre til mere CPU-overhead end nødvendigt. Et eksempel på dette problem er store routingtabeller såsom BGP og IGP.

Ressourceindeksering

Modulære enheder kan dynamisk øge eller formindske deres SNMP-indekser (også kaldet tilfælde), når hardware tilføjes eller fjernes. Dette er mest almindeligt brugt med hardware, selvom virtuelle grænseflader har samme effekt. Indeksværdier tildeles typisk ved opstart og forbliver uændrede indtil næste genstart. Hardwareindekser eller virtuelle entiteter, der tilføjes under en live-enhed, kan tildeles i slutningen af ​​det eksisterende interval og muligvis omtildeles ved næste genstart.

Sikkerhed

  • SNMP version 1 og 2c er modtagelige for pakkesniffing med meddelelsesstrenge, fordi de ikke bruger kryptering.
  • Alle versioner af SNMP er modtagelige for brute force og ordbogsangreb for at gætte fællesskabsstrenge, autentificeringsstrenge, autentificeringsnøgler, krypteringsstrenge eller krypteringsnøgler, fordi de ikke bruger challenge-response-håndtrykket.
  • Mens SNMP fungerer med TCP og andre protokoller, bruges det typisk med UDP, som er forbindelsesløst og sårbart over for IP-spoofingangreb. Enhedsadgangslister kan bruges til at begrænse SNMP-adgang, men SNMPv3-sikkerhedsmekanismer kan også med succes forhindre angreb.
  • De omfattende SNMP-konfigurationsmuligheder udnyttes ikke fuldt ud af mange leverandører, dels på grund af manglende sikkerhed i versioner af SNMP før SNMPv3, og også fordi mange enheder simpelthen ikke kan konfigureres med ændringer til et enkelt MIB-objekt.
  • SNMP toppede SANS Institutes liste over "Common Default Configuration Issues" med spørgsmålet om i første omgang at sætte fællesskabsstrenge til "offentlige" og "private" og rangeret som tiende i SANS Top 10 Most Critical Internet Security Threats i 2000.

Automatisk tuning

SNMP i sig selv er blot en protokol til indsamling og organisering af information. De fleste SNMP-implementerende værktøjssæt tilbyder en form for opdagelsesmekanisme (en standardiseret samling af data, der er fælles for de fleste platforme og enheder) for at få en ny bruger eller kunstner ved opstart. En af disse funktioner er ofte en form for automatisk konfiguration, hvor nye enheder opdaget på netværket automatisk bliver pollet. I tilfælde af SNMPv1 og SNMPv2c er dette en sikkerhedsrisiko, fordi SNMP-læsefællesskaberne vil blive udsendt i klartekst på målenheden. Selvom sikkerhedskravene varierer fra organisation til organisation, skal der udvises forsigtighed, når du bruger denne funktion, især i miljøer som blandede lejerdatacentre, serverhostingfaciliteter og lignende miljøer.

Eksempler på brug af SNMP-værktøjer

snmpset og genstart Cisco as53xx

  • Konfiguration af SNMP på Cisco as53xx
as5350>da Adgangskode: as5350#conf t Indtast konfigurationskommandoer, én pr. linje. Slut med CNTL/Z. Liste #1: Tillad adgang fra netværk 10.26.95.224/27 eller 255.255.255.224
  • Liste #1: Tillad adgang fra netværk 10.26.95.224/27 eller 255.255.255.224
as5350(config)#adgangsliste 1 tilladelse 10.26.95.224 0.0.0.31
  • Liste #2: Tillad adgang fra IP 10.26.95.254 og 10.26.95.251
as5350(config)#adgangsliste 2 tillade vært 10.26.95.254 as5350(config)#adgangsliste 2 tillade vært 10.26.95.251
  • Konfiguration af snmp-server til at læse og skrive med fællesskabsstrengen xxas5300xx. SNMP-adgang er kun tilladt for adgangsliste 2 (for 2 IP'er, implicit nægtet for andre IP'er)
as5350(config)#snmp-server-fællesskab xxas5300xx rw 2
  • Aktiver Cisco genstart via SNMP.
as5350(config)#snmp-server system-shutdown as5350(config)#exit
  • Lad os udføre kommandoen for at genstarte Cisco (parametrene **.1.3.6.1.4.1.9.2.9.9.0 i 2** er taget fra MIB ):
snmpset -v 2c -c xxas5300xx 10.26.95.231 ".1.3.6.1.4.1.9.2.9.9.0" i 2

RFC-links

  • RFC 1155 (STD 16) - Struktur og identifikation af kontroloplysninger i netværk baseret på TCP/IP-protokolstakken
  • RFC 1156 (Historisk) - Management Information Base for Network Management i netværk baseret på TCP/IP Protocol Stack
  • RFC 1157 (historisk) - Simple Network Management Protocol (SNMP)
  • RFC 1213 (STD 17) - Management Information Base for Network Management i netværk baseret på TCP/IP Protocol Stack: MIB-II
  • RFC 1452 (informativ) - 'Sameksistens af version 1 og 2 af Internet Standard Network Management Framework (revideret i RFC 1908 )
  • RFC 1901 (eksperimentel) - Introduktion til fællesskabsbaseret SNMPv2
  • RFC 1902 (Draft Standard) - Kontrolinformationsramme for SNMPv2 (revideret i RFC 2578 )
  • RFC 1908 (Standards Track) - Sameksistens af version 1 og 2 af Internet Standard Network Management Framework
  • RFC 2570 (informativ) - Introduktion til version 3 af Internet Standard Network Management Framework (revideret i RFC 3410 )
  • RFC 2578 (STD 58) - Control Information Framework Version 2 (SMIv2)
  • RFC 3410 (informativ) - Overvejelser for introduktion og anvendelse af Network Management Framework's internetstandard
  • STD62
    • RFC 3411  - Arkitektur til beskrivelse af SNMP Management Framework
    • RFC 3412  - Håndtering og afsendelse af meddelelser til SNMP
    • RFC 3413  - SNMP-applikationer
    • RFC 3414  - Brugerbaseret sikkerhedsmodel (USM) til SNMPv3
    • RFC 3415  - View-based Access Control Model (VACM) til SNMP
    • RFC 3416  - Protocol Operations Version 2 til SNMP
    • RFC 3417  - Transportbindinger til SNMP
    • RFC 3418  - Management Information Base (MIB) til SNMP
  • RFC 3430 (eksperimentel) - SNMP over transportbindinger i TCP
  • RFC 3584 (BCP 74) - Sameksistens af version 1, 2 og 3 af Internet Standard Network Management Framework
  • RFC 3826 (forslaget) - Advanced Encryption Standard (AES) krypteringsalgoritme i brugerbaseret sikkerhedsmodel i SNMP
  • RFC 5343 (forslaget) - Context EngineID Discovery i SNMP
  • RFC 5590 (Draft) - Transportundersystem til SNMP
  • RFC 5591 (Draft) - Transportsikkerhedsmodel til SNMP
  • RFC 5592 (forslaget) - Sikker Shell Transport Model for SNMP
  • RFC 5608 (forslaget) - Brug af fjerngodkendelse via opkaldstjeneste (RADIUS) i transportmodeller i SNMP
  • RFC 6353 (Udkast) - TLS Transport Model til SNMP

Links

Noter

  1. Netværksstyringssystem