[[start|zurück]] ====== SNMP – Grundlagen ====== SNMP (**Simple Network Management Protocol**) ist ein Netzwerkprotokoll zur Überwachung, Verwaltung und Steuerung von Netzwerkgeräten. Es wird auf Routern, Switches, Firewalls, Servern, Druckern, NAS-Systemen und vielen IoT-Geräten eingesetzt. ===== Warum SNMP? ====== Mit SNMP kann man: * Gerätestatus abfragen (Online/Offline) * CPU-, RAM- und Interface-Auslastung überwachen * Temperatur, Lüfter, Stromversorgung prüfen * Ports ein-/ausschalten (Managed Switch) * Logs sammeln * Warnungen erhalten (SNMP-Traps) Es ist das Rückgrat vieler Monitoring-Systeme wie: * Zabbix * Icinga * Nagios * LibreNMS * PRTG ===== SNMP Architektur ====== Es gibt zwei Rollen: * **SNMP-Agent** → läuft auf dem Gerät (Switch, Server) * **SNMP-Manager** → Monitoring-System, das Daten abfragt ASCII: [ Manager ] ←→ [ Agent auf Switch/Router ] ===== SNMP-Versionen ====== | Version | Sicherheit | Beschreibung | |---------|------------|--------------| | **SNMPv1** | gering | klartext, kaum Schutz | | **SNMPv2c** | mittel | klartext, aber schneller & erweitert | | **SNMPv3** | hoch | Verschlüsselung, Authentifizierung | Empfehlung: **Nur SNMPv3 in produktiven Netzen benutzen.** ===== Kommunities (Community Strings) ====== SNMPv1/v2c verwenden „Community Strings“ als einfache Passwörter. Beispiele: * `public` (lesen) * `private` (schreiben) Gefährlich: * werden **klartext** übertragen * häufig falsch konfiguriert * beliebtes Angriffsziel Mit SNMPv3 wird dieses Problem gelöst. ===== OIDs – Objekt-Identifikatoren ====== Jeder Wert in SNMP hat eine eindeutige Nummer, die **OID** genannt wird. Beispiel: 1.3.6.1.2.1.1.1.0 → System-Info 1.3.6.1.2.1.2.2.1.10 → Interface RX Octets Sie bilden einen Baum: ASCII: 1.3 (ISO) └── 6 (DoD) └── 1 (Internet) └── 2 (Mgmt) └── 1 (MIB-2) ===== MIB – Management Information Base ====== Die MIB ist die „Wörterliste“ aller verfügbaren SNMP-Objekte. Beispiele: * **MIB-II** (Standardwerte) * **HOST-RESOURCES-MIB** * **IF-MIB** (Interfaces) * herstellerspezifische MIBs (Cisco, HP, Mikrotik) ===== Wichtige Befehle (Linux) ====== ==== SNMP-GET (Wert abfragen) ==== snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.1.0 ==== SNMP-WALK (kompletter Baum) ==== snmpwalk -v2c -c public 192.168.1.10 ==== SNMPv3 Beispiel ==== snmpwalk -v3 -u admin -l authPriv \ -a SHA -A Passwort123 \ -x AES -X Geheim123 \ 192.168.1.10 ===== SNMP-Traps ====== Traps sind aktive Nachrichten, die ein Gerät **proaktiv** an den Manager sendet. Beispiele: * Lüfterfehler * Port down/up * Temperatur zu hoch * CPU über 90% ASCII: [ Switch ] ---> "Trap: Port 5 down!" ---> [ Manager ] ===== Beispiel: Monitoring eines Switches ====== Über SNMP kannst du abfragen: * Interface-Status (up/down) * Speed (1G/10G) * Errors, CRC, Drops * Temperatur * Uptime * VLAN-Mitgliedschaften (per Hersteller-MIB) ===== Sicherheitsaspekte ====== SNMPv1/v2c: * keine Verschlüsselung * Passwörter (Community Strings) im Klartext * anfällig für Abhören & Manipulation SNMPv3: * Authentifizierung (SHA) * Verschlüsselung (AES) * starke Sicherheit ===== Best Practices ====== * SNMPv3, niemals v1/v2c für kritische Systeme * Community Strings NICHT „public/private“ * nur Management-VLAN für SNMP zulassen * Zugriff per ACL auf Monitoring-Server beschränken * nur notwendige MIBs aktivieren * Traps testen und Logging aktiv halten ===== ASCII-Übersichtsdiagramm ====== +------------------------+ | SNMP Manager | +-----------+------------+ | | SNMP GET/WALK | +-----------v------------+ | SNMP Agent (Switch) | +-----------+------------+ | | SNMP TRAPS | +-----------v------------+ | Monitoring-System | +------------------------+ ===== Zusammenfassung ====== * SNMP = Netzwerkmanagement-Protokoll * Agent ↔ Manager Modell * v1/v2c = unsicher, v3 = sicher * nutzt OIDs, MIBs, GET, WALK, TRAPS * essentiell für Überwachung von Switches, Routern, Servern, NAS, IoT * nur im Management-VLAN und mit SNMPv3 nutzen