Das SNMP (=Simple Network Management Protocol) ist ein Protokoll zur zentralen Überwachung, Steuerung und Konfiguration von Netzwerkelementen wie Router, Switches, Firewalls, Server, Drucker oder Computer, aber auch IoT-Geräten wie Kühlschränken oder Sensoren.
Im Grunde genommen ist es ein Informationsaustausch über Netzwerkpakete zwischen Agenten und einem zentralen Manager. Es können Informationen wie Statistik-, Status-, Steuerungs- oder Konfigurationsdaten sein.
Die Agenten sind auf Endgeräten installierte Softwarekomponenten, die Konfigurationen erfassen, Aktionen ausführen oder Einstellungen vornehmen.
Der Manager ist eine Software, die mit den Agenten kommuniziert und deren Meldungen entgegennimmt.
Der Manager sendet eine Anfrage (Request) an einen Agenten, die er ausführt und beantwortet (Response-Paket). Oder ein Agent sendet unaufgeforderte Pakete (Traps) an den Manager.
Es wird verwendet, um in Echtzeit relevante Informationen über ein Gerät zu erhalten und so im Falle von möglichen Problemen diese schnell zu erkennen und beheben zu können.
SNMP verwendet die UDP-Ports 161 und 162.
Zurzeit gibt es drei Versionen von SNMP:
SNMPv1 – Die Version 1 wird seit 1988 im Netzwerk-Management eingesetzt. Die Authentifizierung des Managers am Agenten geschieht über einen Community-String, der in beiden Komponenten identisch sein muss. Die Sicherheit ist bei dieser Version aber stark eingeschränkt, da die Übertragung unverschlüsselt erfolgt. Es wird empfohlen SNMPv1 nur in durch Firewalls geschützten lokalen Netzwerken einzusetzen.
SNMPv2 – Ist eine 1993 eingeführte Version, die Abfragen großer Datenmengen und Kommunikation der SNMP-Managern untereinander ermöglicht. Der Community-String bleibt aber weiter unverschlüsselt. Die aktuelle Version ist die SNMPv2c.
SNMPv3 – ist die 1999 entwickelte Version, die den aktuellen Sicherheitsanforderungen entspricht. Die Kommunikation geschieht verschlüsselt nachdem sich die Kommunikationspartner authentifiziert und autorisiert haben. Außerdem ist das Protokoll modular geworden: es können einzelne Teile des Protokolls umgeschrieben werden ohne den ganzen Standard neu zu gestalten.
Das Protokoll beinhaltet sieben mögliche Nachrichtentypen:
- GET-Request: Es wird ein bestimmter Datensatz eines gewünschten Netzwerkgerätes abgerufen
- GETNEXT-Request: Es sollen die nachfolgenden Datensätze abgefragt werden
- GETBULK-Request(ab SNMPv2): Es wird eine definierte Anzahl an Datensätzen auf ein Mal abgerufen
- SET-Request: verändert einen oder mehrere Datensätze des gewünschten Netzwerkelementes, löst Aktionen aus
- GET-Response: ist eine Antwort des Agenten auf Anfragen, Änderungen oder Aktionen des Managers
- SNMP-Trap: ist eine unaufgeforderte Agenten-Nachricht an den Manager
- INFORM-Request: ist eine unaufgeforderte Agenten-Nachricht an den Manager, die quittiert werden muss. Sie wird nochmal verschickt, wenn der Manager nicht erreicht wurde