SNMP Grundlagen
Weitergehende Informationen finden Sie auch auf:
-
SNMP Intern
Details zu SNMP unter Windows und die Integration in Perfmon -
SNMP mit Windows
So konfigurieren Sie SNMP unter Windows
Der Name SNMP und was man damit tun kann
SNMP steht für Simple Network Management Protocol und ist in der "RFC 1157 - SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)" genauer beschrieben. Ursprünglich wurde SNMP mit dem Ziel definiert, einen gemeinsamen Standard für die Überwachung von Netzwerken und den Komponenten, die ein Netzwerk aufbauen, zu überwachen. Abgesehen von sehr günstigen "unmanaged" Devices können Sie heute davon ausgehen, dass die meisten größeren Hubs, Switches und Router per SNMP kontaktiert werden können. Zur Kommunikation wird meist TCP/IP genutzt, aber auch IPX und andere Protokolle sind möglich. SNMP unterstützt dabei primär drei Befehle:
- GET
Dabei fragt das Management System den Client aktiv ab. Dies ist eine einmalige Abfrage. Will eine Management Software daher eine Grafik der Netzwerkbelastung aufbauen, dann muss Sie regelmäßig die Variable auslesen, in der die Anzahl der übertragenen Bytes stehen. (Polling) - SET
Wenn ihre Management Anwendung sich am SNMP-Dienst korrekt autorisieren kann, dann ist es auch möglich, Parameter zu schreiben, z.B.: einen Port zu deaktivieren etc. - TRAP'
Zuletzt muss eine Management Station nicht permanent ein Gerät abfragen. Das Gerät kann auch einen "TRAP" an eine andere Station senden, um dringende Dinge zu melden, z.B.: Anmeldung mit falschem Kennwort oder ein verlorener Link
Autorisierung, Rechte und Communities
Kommen wir zu einem schwachen Aspekt von SNMP - die Sicherheit. Es kann nicht in ihrem Interesse liegen, dass jeder mit einem passenden Programm einfach Systemcounter auslesen oder sogar im schlimmsten Fall Werte verändern kann. SNMP unterstützt aber keine Anmeldung mit Benutzername und Kennwort, da die überwachten Systeme oft nicht mal den Speicher für diese Informationen hatten. SNMP nutzt ein Modell der Communities.
Communities Public und Private
Communities sind einfache Namen, die ein anfragendes System an den SNMP-Service mit übergibt. Der SNMP-Service übermittelt einfach ein Wort (String, z.B.: "public") in der Anfrage mit. Sehr häufig werden die beiden Texte "PUBLIC" (darf nur lesen) und "PRIVATE" (darf auch schreiben) verwendet.
Nun könnten Sie natürlich eine sehr lange community auswählen, die ähnlich einer SessionID im Webbrowser eine eindeutige und schwer zu erratende Kennung darstellt. Nachteilig ist aber, dass SNMP die Daten per Klartext überträgt. für einen Angreifer wäre es daher ein leichtes, einfach auf dem Netzwerk die Daten zu lesen und damit auch die Community Texte zu erraten.
Die Communities eignen sich daher nicht als zuverlässige Legitimation eines anfragenden Systems, sondern nur nur unterscheidung, welche Zugriffe (Lesen oder Schreiben) prinzipiell erlaubt sind. Ein überwachtes System kann in der Regel mehrere Community Einträge verwalten, d.h. neben public und private können Sie ihre eigenen Einträge ergänzen und die vorhandenen Einträge natürlich auch komplett entfernen. Eine Sicherheit ist dies aber nicht. Siehe dazu auch SNMP mit Windows.
Allowed Host
Daher sollten Sie auf jeden Fall die zweite Funktion nutzen, und die IP-Adressen der Systeme einschränken, die überhaupt Kontakt mit dem SNMP-Dienst des überwachten Systems aufnehmen können. Alle Systeme erlauben die Einstellung, welche Endsysteme überhaupt eine Verbindung zum SNMP-Daemon des überwachten Systems aufnehmen dürfen. Über diesen Weg können Sie unliebsame Besucher relativ einfach aussperren. Allerdings sollte es ihnen nicht neu sein, dass auch die IP-Adresse und der Rückweg über ARP-Spoofing einfach zu fälschen ist. Dies ist daher nur ein einfacher Schutz. Siehe dazu auch SNMP mit Windows.
Management Subnetz
Aufgrund dieser Einschränkungen und Schwächen gehen immer mehr Firmen dazu über, für das Monitoring ein eigenes Netzwerk oder VLAN zu definieren, um zuverlässig den Nutzdatenverkehr der Anwender von dem Management Verkehr zu trennen. Dann lassen sich auch über Prioritäten entsprechende Qualitäten sicher stellen. Ein Mitlesen der Community Strings ist dann nicht mehr einfach möglich. An ein solches separiertes Netzwerk können Sie z.B.: auch die Überwachungsboards der Server (HP Remote Insight ILO, Dell Remote Monitoring Adapter RMA, Fujitsu Siemens ServerView, IBM Remote Supervisor Adapter etc.) anschließen.
OID und die Werte
Nachdem nun die Komponenten, der Zugriff und die Sicherheit geklärt sind, bleibt natürlich die Frage, woher das Management System weiß, welche Werte es abfragen kann und wie SNMP die unterschiedlichen Datenquellen integriert. Eine große Tabelle ist hier sicher nicht hilfreich. Alle Variablen sind in einer Baumstruktur organisiert: Dies kann z.B.: wie folgt aussehe
Der Pfad zu iso.org.dod.internet.mgmt.mib-2 kann auch als Nummer .1.3.6.1.2.1 dargestellt werden. Oft werden die Ergebisse einer Ausgabe auch entsprechend abgekürzt. Die Abkürzung "enterprises" steht für .1.3.6.1.4.1
Die zurüggegebenen Ergebnisse müssen dabei nicht immer numerisch sein. Sie erhalten Texte, Integerwerte aber auch Tabellen zurück. Doch woher wissen Sie, welche OID sie nun abfragen und wie Sie das Ergebnis auswerten müssen , um bestimme Informationen zu erhalten. ?
OID und MIB
Sie können natürlich einfach den OID-Baum sequentiell durchlaufen und die Ergebnisse sich anschauen. Aber zu jeder Gruppe von OIDs gehört üblicherweise auch eine MIB. Eine MIB ist einfach eine Textdatei in einem vordefinierten Format, welche alle Informationen zu den verschiedenen OIDs enthält. Hier ein Auszug der RFC-1213, die MIB-2 definiert.
Eingerahmt durch das BEGIN und END werden zuerst andere MIBs (z.B. mgmt = .1.3.6.1.2) importiert um dann den ersten Eintrag zu definieren:
- mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
Diese Zeile definiert, dass die Variable .1.3.6.1.2.1 für mib-2 steht - system OBJECT IDENTIFIER ::= { mib-2 1 }
System wird dann als 1.3.6.1.2.1.1 definiert - sysDescr OBJECT-TYPE
Beschreibt dann die wirklich erste Variable als " ::= { system 1 }". Eine Abfrage von 1.3.6.1.2.1.1.1 liefert demnach einen String von bis zu 255 Zeichen zurück. Diese Feld MUSS vorhanden sein, aber kann nur gelesen werden
Was machen Sie nun mit der MIB ?. Diese Textdatei ist in der Form nur schwer zu verarbeiten. Aber sehr viele Programme erlauben den Import dieser standardisierten Informationen in eine proprietäre Datenbank der jeweiligen Anwendung. Sie können dann in der grafischen Oberfläche durch den Baum anhand der Beschreibung anstelle der numerischen Darstellung wandern. Auch der Zugriff auf Variablen kann anhand der Namen erfolgen. Dies macht es sehr viel einfacher
SNMP und Microsoft ?
Die MIB-2 ist eine generische MIB für Netzwerkgeräte und erlaubt den Zugriff auf sehr viele TCP/IP-Parameter. Zusätzlich gibt es in SNMP aber auch einen Zweig ".iso.org.dod.internet.private.enterprises" mit der OID .1.3.6.1.4.1, unter der sicher Hersteller eintragen könnnen. Jeder Hersteller bekommt dabei eine eindeutige Ziffer. Microsoft hat z.B.: die Ziffer 77. Eine kleine Auswahl an OIDs
OID |
Inhalt |
---|---|
.1.3.6.1.4.1.77.1.2.1.0 |
Beschreibung aus dem Serverdienst |
.1.3.6.1.4.1.77.1.2.3.1.1.x |
Liste der Dienste (x ist dabei aufsteigend) |
.1.3.6.1.4.1.77.1.2.25.1.1.x |
Liste der lokalen Anwender |
Weitere auslesbare Dienste sind z.B. FTP, IIS, Serverdienst, DNS; DHCP und viele mehr. Sie können die Daten sehr einfach auslesen, wenn das Programm einen SNMP-WALK unterstützt. Auch Microsoft stellt entsprechende MIB-Dateien bereit. Suchen Sie einfach mal auf ihrem Server bzw. der CD nach "*.MIB". Auch bei den Herstellern von Routern, Switches etc. finden Sie immer wieder solche MIB-Dateien.
Erste Schritte mit SNMPUTILG
Microsoft stellt für einfache Tests das Programm SNMPUTIL (Kommandozeile) bzw. SNMPUTILG (Gui-Version) bereit, mit denen Sie ihre ersten Schritte mit SNMP tun können. SNMPUTILG ist z.B. im Windows NT4 Ressource Kit aber auch in den Windows XP SP2 Support Tools enthalten. Nach der Eingabe der IP-Adresse können die z.B. die nächsten 20 Werte ausgehend von der OID .1.3.6.1.2.1 gehen.
Sie sehen sehr gut, dass die ersten Werte den Namen und Kontakt in den SNMP-Einstellungen ausgeben. Somit können sie schnell prüfen, ob SNMP überhaupt funktioniert und welche Werte abfragbar sind.
Managementprogramme
Für eine weitergehende Nutzung von SNMP ist natürlich SNMPUTILG nicht ausreichend. für den Administrator bieten sich Programm wie GETIF an, die auf die schnelle den Zugriff auf Daten erlauben und sogar einfache grafische Auswertungen ermöglichen. für den kommerziellen Einsatz gibt es eine ganze Bandbreite von anderen Programme, die unterschiedliche Schwerpunkte verfolgen. Da mittels SNMP nahezu alle Werte eines Systems auslesbar sind gibt es Lösungen für:
- Netzwerkmanagement
Programme, mit denen Sie nicht nur grafisch einen Netzwerkplan erstellen können und der aktuelle Status entsprechend signalisiert wird. Spezielle Programme erlauben sogar einen sehr genauen Blick auf die einzelnen Geräte, z.B.: bis auf den Port eines Switches herunter. - Servermanagement
Programme wie der Insight Agent (HP) oder ServerView (Fujitsu-Siemens) nutzen ebenfalls SNMP um von einem Management System die Hardware aller Server zu überwachen - Application Management
Da auch Anwendungen wie der IIS, FTP und DNS-Server und viele andere Programme sich in den SNMP-Dämon einbinden können, können auch höhere Schichten einer Infrastruktur
So gibt es Generalisten von IBM (Tivoli), CA (Unicenter), Cabletron (Spectrum), HP (OpenView), die eine sehr umfangreiche Funktion haben und entsprechend mehr Geld kosten. Auf der anderen Seite gibt es kleine günstige Lösungen wie WhatsUp, Hostmon und andere. Aber auch als Freeware und OpenSource gibt es einige sehr interessante Programme wie MRTG, Nagios, 3Com Network Supervisor, Compaq CNMS etc. Eine Produktempfehlung kann es hier nicht geben.
Weitere Links
- RFC 1157 - SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)
- SNMP Intern
- SNMP mit Windows
- Überwachung von Exchange
- MRTG Monitoring
-
SNMP Library für C#: Simple Network Management Protocol Introduction
http://www.snmpsharpnet.com/node/7 -
SNMP Library für C#
http://sourceforge.net/projects/snmpsharpnet/ - Microsoft SNMP und Windows
http://snmpboy.msft.net (früher http://snmpboy.rte.Microsoft.com)
http://www.Microsoft.com/technet/network/networkm.asp Wie funktioniert SNMP - Windows Management Instrumentation and Simple Network Management
Protocol
http://www.Microsoft.com/technet/prodtechnol/windows2000serv/maintain/featusability/wmisnmp.mspx -
http://www.wtcs.org/snmp4tpc
SNMP4PC - Sehr gute Seite für SNMP mit Windows.
SNMP NetSonar http://www.wtcs.org/snmp4tpc/NET-SONAR.HTM - GETIF SNMP Browser. für den Einstieg und zum Test sehr gut.
http://www.wtcs.org/snmp4tpc/testing.htm - SNMP
http://www.labmice.net/networking/snmp.htm -
http://www.cs.ruu.nl/wais/html/na-dir/snmp-faq/part2.html
SNMP FAQ mit vielen Links. - http://www.cs.ruu.nl/wais/html/na-dir/snmp-faq/part2.html SNMP FAQ mit vielen Links
- http://www.geocities.com/SiliconValley/Hills/8260/ GETIF SNMP Browser
- http://ebooks.cs.biu.ac.il/0789715031/ch26/ch26.htm#Heading21 Exchange mit SNMP
-
An SNMP Library für .NET Framework
http://www.c-sharpcorner.com/uploadfile/malcolmcrowe/snmplib11232005011613am/snmplib.aspx - http://www.wtcs.org/snmp4tpc/snmp4w2k.htm
- http://support.Microsoft.com/default.aspx?scid=KB;EN-US;q315154
- http://www.Microsoft.com/technet/treeview/default.asp?URL=/technet/prodtechnol/windows2000serv/reskit/tcpip/part3/tcpch10.asp
- http://support.Microsoft.com/support/kb/articles/Q295/5/87.ASP
- http://support.Microsoft.com/support/kb/articles/Q237/2/95.ASP
- SNMP auf Cisco
http://www.netcraftsmen.net/welcher/papers/snmprouter.html - Tool to traverse MIB tree using SNMP
http://codeproject.com/internet/MIB_Browser_tool.asp - Ein kleines VBscript um SNMP-Traps per
WMI
einzufangen
http://www.wbem.dk/Root/snmp/LocalHost/SnmpNotification.asp - http://www.jklein.de/techniker_arbeit/tech_html/netzwerk_management_und_snmp.htm
-
www.snmplink.org
Umfangreiche Linksammlung zu SNMP -
http://home.new.rr.com/edev/DTrend/index.htm
DLL um SNMP aus VBScript zu machen ? - SNMPView - Kostenfreies kleines Programm zur Anzeige von SNMP-Werten
http://www.snmpview.de - SnmpGet - Obtains Snmp Variables
http://www.snmpsoft.com/freetools/snmpget.html
Kommerzielle und Freeware Tools, die auf SNMP aufsetzen.
-
http://www.sins.com.au/nmis
Perl-Programm mit RRDTool als Backend - Manage Engine (Freeware auf 10 Knoten begrenzt)
http://www.manageengine.com/products/opmanager/download-free.html
http://www.manageengine.com/products/eventlog/download-free.html - LoriotPro (Freeware auf 10 Knoten begrenzt)
http://www.loriotpro.com/Products/Features/Summary_Free_Edition_EN.php - Zenoss
http://community.zenoss.org/docs/DOC-3240?noregister
OpenSource auf Unix, auch als fertige VMs -
BPSNMPMon Freeware
http://www.bpsoftware.com/products/BPSNMPMon -
3Com Management Tolo
http://www.3com.de/products/networkmgmnt/nss3_5.html
Freeware nach Registrierung. Kann 3Com und PCs per SNMP anfragen und ist ein netter Einstieg in die Materie. -
Tirith
Perlskript mit mySQL. Cronjob fragt Switchports ab (MAC Adressen, Clients etc.) Abfragen nach Ports und Rechner
http://www.cc-lan.fraunhofer.de/projekte/tirith/ -
nVision
http://www.axencesoftware.com/index.php?action=nVision -
http://www.opmanager.com
Nettes SNMP-Programm, welches bis zu 10 Devices kostenfrei überwacht. Allerdings installiert es ohne große Rückfrage einen Apache Webserver, MySQL als Datenbank und ist selbst ein Java Programm. Das ist schon etwas viel auf einmal für den ein oder anderen Windows Administrator. -
http://www5.compaq.com/products/networking/software/cnms/index.html
SNMP Management von Compaq. Lizenzfrage unklar, aber als Einstieg ganz nett. ähnliches gibt es auch bei CA unicenter. Das Framework ist bei Siemens Servern dabei. Auch HP liefert "Startprogramme" mit. -
http://ebooks.cs.biu.ac.il/0789715031/ch26/ch26.htm#Heading21
Exchange mit SNMP - http://www.castlerock.com/products/workgroup.htm
- http://www.ee.oulu.fi/research/ouspg/protos/testing/c06/snmpv1/ PROTOS Test-Suite
- http://sourceforge.net/project/showfiles.php?group_id=12694 net-snmp
- SNMP: BigSister http://bigsister.graeff.com
Perfmon Agent aus ResKit für SNMP ? -
http://www.somix.com/software/mrtg/
Sehr viele Vorlagen zur Überwachung von Systemen mittels MRTG. Einige Windows Performance Counter benötigen jedoch den SNMP PerfmonAgent aus dem Resource Kit. - https://sourceforge.net/projects/jffnms/
- http://www.labmice.net/networking/snmp.htm
Haben Sie bitte Verständnis, dass ich auf Fragen zu SNMP nur im Rahmen eines Projektauftrags antworten kann.