SNMP Version 3: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= SNMPv3 OVS Switch überwachen =
+
= 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 ==
 
== Pakete installieren ==
Auf beiden Hosts (ovs.lab.internal und control.lab.internal):
+
Auf beiden Hosts:
 
* apt update
 
* apt update
 
* apt install snmp snmpd -y
 
* apt install snmp snmpd -y
  
== Optional: MIB-Dateien aktivieren ==
+
Optional MIB-Dateien für lesbare OIDs:
Contrib/Non-Free Quellen freischalten:
 
 
* sed -ie "s/firmware/& non-free contrib/" /etc/apt/sources.list
 
* sed -ie "s/firmware/& non-free contrib/" /etc/apt/sources.list
 
* apt update
 
* apt update
 
* apt install snmp-mibs-downloader -y
 
* 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
  
Danach in /etc/snmp/snmp.conf die Zeile anpassen:
+
Benutzer anlegen:
<pre>
+
* net-snmp-create-v3-user -ro -A AuthPasswort123 -a SHA -X PrivPasswort456 -x AES snmpadmin
mibs +ALL
 
</pre>
 
  
== SNMPv3 Benutzer auf dem Switch ==
+
Dienst starten:
Alte Config sichern und neue schreiben:
+
* systemctl start snmpd
* mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
+
* systemctl enable snmpd
* vim /etc/snmp/snmpd.conf
 
  
Inhalt:
+
== /etc/snmp/snmpd.conf auf dem Switch ==
 +
Nur die Policy-Einstellungen, keine createUser-Zeilen:
 
<pre>
 
<pre>
createUser snmpadmin SHA "AuthPasswort123" AES "PrivPasswort456"
 
 
rouser snmpadmin authPriv
 
rouser snmpadmin authPriv
 +
agentAddress udp:161
 
</pre>
 
</pre>
  
== SNMP-Dienst neu starten ==
+
== Kontrolle auf dem Switch ==
* systemctl restart snmpd
+
* grep snmpadmin /var/lib/snmp/snmpd.conf
* systemctl enable snmpd
+
→ 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 von Control ==
+
== 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
 
* snmpwalk -v3 -l authPriv -u snmpadmin -a SHA -A AuthPasswort123 -x AES -X PrivPasswort456 172.26.56.2 sysDescr.0
  
Zeile 45: Zeile 56:
 
.1.3.6.1.2.1.1.1.0 = STRING: Linux ovs.lab.internal 6.1.0-... GNU/Linux
 
.1.3.6.1.2.1.1.1.0 = STRING: Linux ovs.lab.internal 6.1.0-... GNU/Linux
 
</pre>
 
</pre>
 +
 +
== 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.:
 +
 +
<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.