SNMP Version 3: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 15: Zeile 15:
 
* apt update
 
* apt update
 
* apt install snmp-mibs-downloader -y
 
* apt install snmp-mibs-downloader -y
* echo "mibs +ALL" >> /etc/snmp/snmp.conf
+
* echo "mibs SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB" >> /etc/snmp/snmp.conf
  
 
== SNMPv3 Benutzer auf dem Switch anlegen ==
 
== SNMPv3 Benutzer auf dem Switch anlegen ==
Zeile 41: Zeile 41:
  
 
== Test lokal ==
 
== Test lokal ==
* snmpwalk -v3 -l authPriv -u snmpadmin -a SHA -A AuthPasswort123 -x AES -X PrivPasswort456 localhost sysDescr.0
+
* snmpwalk -v3 -l authPriv -u snmpadmin -a SHA -A AuthPasswort123 -x AES -X PrivPasswort456 localhost
  
 
== Test remote von control.lab.internal ==
 
== Test remote von control.lab.internal ==
Zeile 57: Zeile 57:
 
</pre>
 
</pre>
  
== Nächster Schritt: Integration in LibreNMS ==
+
== Vollständiger SNMP-Walk ==
In der LibreNMS-WebGUI (control.lab.internal) ein neues Gerät hinzufügen:
+
Um alle verfügbaren OIDs vom Switch abzufragen, von control.lab.internal aus:
* Hostname: ovs.lab.internal
+
 
* SNMP-Version: v3
+
* snmpwalk -v3 -l authPriv -u snmpadmin \
* User: snmpadmin
+
  -a SHA -A AuthPasswort123 \
* Security Level: authPriv
+
  -x AES -X PrivPasswort456 \
* Auth-Algorithmus: SHA, Passwort: AuthPasswort123
+
  172.26.56.2
* Privacy-Algorithmus: AES, Passwort: PrivPasswort456
+
 
 +
== Erwartete Ausgabe ==
 +
Eine lange Liste mit allen Objekten, z. B.:
 +
 
 +
<pre>
 +
SNMPv2-MIB::sysDescr.0 = STRING: Linux ovs.lab.internal 6.1.0-39-amd64 ...
 +
SNMPv2-MIB::sysObjectID.0 = OID: enterprises.8072.3.2.10
 +
SNMPv2-MIB::sysUpTime.0 = Timeticks: (123456) 0:20:34.56
 +
SNMPv2-MIB::sysContact.0 = STRING:
 +
SNMPv2-MIB::sysName.0 = STRING: ovs.lab.internal
 +
SNMPv2-MIB::sysLocation.0 = STRING:
 +
IF-MIB::ifNumber.0 = INTEGER: 3
 +
IF-MIB::ifIndex.1 = INTEGER: 1
 +
IF-MIB::ifDescr.1 = STRING: lo
 +
IF-MIB::ifDescr.2 = STRING: eth0
 +
...
 +
</pre>
 +
 
 +
Damit kannst du prüfen, ob auch alle Interface- und System-MIBs geladen werden, die LibreNMS später braucht.

Aktuelle Version vom 9. Oktober 2025, 12:29 Uhr

SNMPv3 auf ovs.lab.internal einrichten und von control.lab.internal abfragen

Umgebung

  • Switch: ovs.lab.internal (172.26.56.2)
  • Management-Server: control.lab.internal (172.26.56.5)
  • Distribution: Debian/Ubuntu

Pakete installieren

Auf beiden Hosts:

  • apt update
  • apt install snmp snmpd -y

Optional MIB-Dateien für lesbare OIDs:

  • sed -ie "s/firmware/& non-free contrib/" /etc/apt/sources.list
  • apt update
  • apt install snmp-mibs-downloader -y
  • echo "mibs SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB" >> /etc/snmp/snmp.conf

SNMPv3 Benutzer auf dem Switch anlegen

Dienst stoppen:

  • systemctl stop snmpd

Benutzer anlegen:

  • net-snmp-create-v3-user -ro -A AuthPasswort123 -a SHA -X PrivPasswort456 -x AES snmpadmin

Dienst starten:

  • systemctl start snmpd
  • systemctl enable snmpd

/etc/snmp/snmpd.conf auf dem Switch

Nur die Policy-Einstellungen, keine createUser-Zeilen:

rouser snmpadmin authPriv
agentAddress udp:161

Kontrolle auf dem Switch

  • grep snmpadmin /var/lib/snmp/snmpd.conf

→ Hier muss eine createUser-Zeile für snmpadmin stehen.

  • /etc/snmp/snmpd.conf enthält nur rouser und agentAddress.

Test lokal

  • snmpwalk -v3 -l authPriv -u snmpadmin -a SHA -A AuthPasswort123 -x AES -X PrivPasswort456 localhost

Test remote von control.lab.internal

  • snmpwalk -v3 -l authPriv -u snmpadmin -a SHA -A AuthPasswort123 -x AES -X PrivPasswort456 172.26.56.2 sysDescr.0

Erwartete Ausgabe

Mit MIBs:

SNMPv2-MIB::sysDescr.0 = STRING: Linux ovs.lab.internal 6.1.0-... GNU/Linux

Ohne MIBs:

.1.3.6.1.2.1.1.1.0 = STRING: Linux ovs.lab.internal 6.1.0-... GNU/Linux

Vollständiger SNMP-Walk

Um alle verfügbaren OIDs vom Switch abzufragen, von control.lab.internal aus:

  • snmpwalk -v3 -l authPriv -u snmpadmin \
 -a SHA -A AuthPasswort123 \
 -x AES -X PrivPasswort456 \
 172.26.56.2

Erwartete Ausgabe

Eine lange Liste mit allen Objekten, z. B.:

SNMPv2-MIB::sysDescr.0 = STRING: Linux ovs.lab.internal 6.1.0-39-amd64 ...
SNMPv2-MIB::sysObjectID.0 = OID: enterprises.8072.3.2.10
SNMPv2-MIB::sysUpTime.0 = Timeticks: (123456) 0:20:34.56
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: ovs.lab.internal
SNMPv2-MIB::sysLocation.0 = STRING:
IF-MIB::ifNumber.0 = INTEGER: 3
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
...

Damit kannst du prüfen, ob auch alle Interface- und System-MIBs geladen werden, die LibreNMS später braucht.