Skip to main content

SNMP Aktivieren

VMware ESXi: SSHSNMPv3 maximal sicher aktivieren und SNMPv3verfügbare einrichtenAlgorithmen prüfen

Ziel

Diese Anleitung beschreibt, wie auf einem VMware ESXi-Host der SSH-Zugriff aktiviert und SNMPv3 sicher konfiguriertaktiviert wird. Dabei wird die stärkste von ESXi unterstützte SNMPv3-Kombination verwendet:

Authentifizierung: SHA1
Verschlüsselung: AES128
Sicherheitslevel: priv / authPriv

Wichtiger Realitätscheck: ESXi unterstützt für lokale SNMPv3-Benutzer nicht automatisch moderne Kombinationen wie SHA256 oder AES256. Die tatsächlich verfügbaren Algorithmen müssen immer direkt auf dem jeweiligen ESXi-Host geprüft werden. Nach aktuellem Stand ist bei ESXi für lokale SNMPv3-Benutzer die stärkste übliche Kombination SHA1 mit AES128 und dem Sicherheitslevel priv.

Beispielhost:

ESXi_1

Die Befehle werden direkt auf dem ESXi-Host als root ausgeführt.


Sicherheitsprinzip

Die Konfiguration folgt diesen Sicherheitsregeln:

  • SNMPv3 verwenden, nicht SNMPv1 oder SNMPv2c.
  • SNMPv3 mit Authentifizierung und Verschlüsselung verwenden.
  • Als stärkste ESXi-Standardkombination SHA1 und AES128 setzen.
  • Sicherheitslevel priv verwenden.
  • SNMP-Zugriff per ESXi-Firewall nur vom Monitoring-System erlauben.
  • Keine SNMP-Passwörter, Auth-Hashes oder Priv-Hashes in BookStack speichern.
  • SSH nur während der Einrichtung aktivieren und danach wieder deaktivieren.
  • SNMPv1/v2c-Communities entfernen oder leer lassen.

Voraussetzungen

  • Zugriff auf den ESXi Host Client oder direkten Konsolenzugriff
  • Root-Zugang oder administrativer ESXi-Benutzer
  • Netzwerkzugriff auf die Management-IP des ESXi-Hosts
  • IP-Adresse des Monitoring-Systems
  • SSH-Client auf dem Administrationsrechner
  • GeplanteGeplanter SNMPv3-ZugangsdatenBenutzername
  • Starkes Authentifizierungsgeheimnis
  • Starkes Privacy-Geheimnis

Beispielwerte in dieser Anleitung:

ESXi-Host:          192.168.1.50
Monitoring-System: 192.168.1.20
Administrations-PC: 192.168.1.10
SNMP-Benutzer:     max
Authentifizierung: SHA1
Verschlüsselung: AES128snmp_monitor

Die HashesNicht in denBookStack Beispielendokumentieren:

sind
Auth-Passwort
PlatzhalterPriv-Passwort
undAuth-Hash
Priv-Hash

Verfügbare SNMPv3-Algorithmen auf dem ESXi-Host prüfen

Bevor die Konfiguration gesetzt wird, müssen durchdie echtetatsächlich unterstützten Werte ersetztdirekt auf dem ESXi-Host geprüft werden.

SNMP-Konfigurationsoptionen anzeigen:

esxcli system snmp set --help

In der Ausgabe sind besonders diese Optionen wichtig:

--authentication
--privacy
--users

Typische unterstützte Werte bei ESXi:

Authentication:
  SHA1
  none
  reset

Privacy:
  AES128
  none
  reset

User Security Model:
  none
  auth
  priv

Bewertung der Werte:

BereichWertBewertung
AuthenticationnoneNicht sicher, nicht verwenden
AuthenticationMD5Falls vorhanden: veraltet, nicht verwenden
AuthenticationSHA1Stärkste übliche ESXi-Option für SNMPv3 Authentication
PrivacynoneNicht sicher, nicht verwenden
PrivacyAES128Stärkste übliche ESXi-Option für SNMPv3 Privacy
Security LevelnoneNicht sicher, nicht verwenden
Security LevelauthAuthentifiziert, aber nicht verschlüsselt
Security LevelprivAuthentifiziert und verschlüsselt, verwenden

Für eine sichere ESXi-SNMPv3-Konfiguration wird daher verwendet:

SHA1 + AES128 + priv

Aktuelle SNMP-Konfiguration prüfen

Vor Änderungen zuerst die aktuelle Konfiguration anzeigen:

esxcli system snmp get

Wichtige Felder:

Authentication
Privacy
Enable
Engineid
Communities
Users
Remoteusers
Targets
V3targets

Wenn unter Communities noch Werte eingetragen sind, kann SNMPv1 oder SNMPv2c verwendet werden. Für eine sichere SNMPv3-only-Konfiguration sollten Communities entfernt werden.


SSH-Dienst auf ESXi temporär aktivieren

SSH wird nur für die Einrichtung benötigt. Danach sollte SSH wieder deaktiviert werden.

Variante 1: Über den ESXi Host Client

Im Browser den ESXi Host Client öffnen:

https://<ESXI-IP>/ui

Danach anmelden und den SSH-Dienst aktivieren.

starten.

Je nach ESXi-Version befindet sich der Dienst unter:

Host > Verwalten > Dienste

Dort den folgenden Dienst auswählen:

TSM-SSH

Anschließend den Dienst starten.

Falls SSH dauerhaft aktiv bleiben soll, die Startregel auf folgenden Wert setzen:

Mit Host starten und stoppen

Aus Sicherheitsgründen sollte SSH nur dauerhaft aktiv bleiben, wenn es wirklich benötigt wird.


Variante 2: Über die ESXi Shell

SSH-Dienst aktivieren:

vim-cmd hostsvc/enable_ssh

SSH-Dienst starten:

vim-cmd hostsvc/start_ssh

SSH-Firewall-Regel für eingehende SSH-Verbindungen aktivieren:

esxcli network firewall ruleset set -e-ruleset-id sshServer --enabled true -r sshServer

SSH-Status prüfen:

/etc/init.d/SSH status

SSH-Login testen

Vom Administrationsrechner aus per SSH verbinden:

ssh root@<ESXI-IP>

Beispiel:

ssh root@192.168.1.50

Bei der ersten Verbindung muss der Host-Key geprüft und bestätigt werden.


SSH-Firewall auf Administrations-IP einschränken

NachWenn erfolgreichemSSH Loginwährend der Einrichtung erreichbar sein muss, sollte dieder ESXi-ShellZugriff erscheinen,nicht zumvon überall erlaubt sein. Der Zugriff sollte nur von der Administrations-IP oder vom Administrationsnetz erlaubt werden.

Aktuelle erlaubte IPs für SSH anzeigen:

esxcli network firewall ruleset allowedip list --ruleset-id sshServer

Zugriff von allen IPs deaktivieren:

esxcli network firewall ruleset set --ruleset-id sshServer --allowed-all false

Administrations-IP erlauben:

esxcli network firewall ruleset allowedip add --ruleset-id sshServer --ip-address <ADMIN-IP>

Beispiel:

[root@esxi_1:~]esxcli network firewall ruleset allowedip add --ruleset-id sshServer --ip-address 192.168.1.10

Ergebnis prüfen:

esxcli network firewall ruleset allowedip list --ruleset-id sshServer

SNMPv3SNMPv1/v2c-Communities auf ESXi konfigurierenentfernen

SNMP

Für aktivieren

eine

SNMPSNMPv3-only-Konfiguration aufsollten demkeine ESXi-HostCommunity aktivieren:Strings gesetzt sein.

esxcli system snmp set --enablecommunities truereset

Danach prüfen:

esxcli system snmp get

Das Feld Communities sollte leer sein.


SNMPv3-Authentifizierung aufund SHA1Verschlüsselung setzen:setzen

Jetzt werden die stärksten von ESXi unterstützten Standardwerte gesetzt:

esxcli system snmp set --authentication SHA1

Verschlüsselung auf AES128 setzen:

esxcli system snmp set --privacy AES128

Alternativ als Kurzform:

esxcli system snmp set -a SHA1 -x AES128

Konfiguration prüfen:

esxcli system snmp get

Erwartete Werte:

Authentication: SHA1
Privacy: AES128

SNMPv3SNMP HashesEngine erzeugenID prüfen

Die SNMPv3-Hashes werden ausan dendie geheimenEngine Authentifizierungs-ID des ESXi-SNMP-Agents gebunden. Deshalb sollte die Engine ID vor der Hash-Erzeugung geprüft werden.

esxcli system snmp get

In der Ausgabe das Feld prüfen:

Engineid

Wichtig: Wenn die Engine ID später geändert wird, passen die bereits erzeugten SNMPv3-Hashes nicht mehr. Dann müssen Auth-Hash und Privacy-PasswörternPriv-Hash neu erzeugt werden.


Starke geheime Werte vorbereiten

Für SNMPv3 werden zwei verschiedene geheime Werte empfohlen:

  • Auth-Secret: Wird für die Authentifizierung verwendet.
  • Priv-Secret: Wird für die Verschlüsselung verwendet.

Empfehlung:

  • Mindestens 20 Zeichen
  • Großbuchstaben
  • Kleinbuchstaben
  • Zahlen
  • Sonderzeichen
  • Auth-Secret und Priv-Secret niemals identisch wählen
  • Nicht in BookStack speichern
  • Nicht in Tickets, Chatverläufen oder Screenshots ablegen

SNMPv3-Hashes erzeugen

ESXi speichert beim Benutzer nicht die Klartext-Geheimnisse, sondern lokalisierte Hashes. Diese werden mit dem folgenden Befehl erzeugt.

Sicherheitswarnung: Die Klartext-Geheimnisse sollten nicht dauerhaft dokumentiert werden. Nach der Hash-Erzeugung dürfen weder Geheimnisse noch Hashes in BookStack eingetragen werden.

Hash-Erzeugung starten:

esxcli system snmp hash --auth-hash '<AUTH-SECRET>' --priv-hash '<PRIV-SECRET>' --raw-secret -A

DanachBeispiel fragtmit ESXi interaktiv nach den Werten:Platzhaltern:

Enteresxcli valuesystem forsnmp hash --auth-hash 'AUTH_SECRET_NICHT_DOKUMENTIEREN' --priv-hash':
Enter value forhash 'auth-hash':PRIV_SECRET_NICHT_DOKUMENTIEREN' --raw-secret

Nach Eingabe der geheimen Werte gibt ESXi die erzeugten Hashes aus:Beispielausgabe:

Authhash: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Privhash: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Die ausgegebenen Werte müssen für die Benutzerkonfiguration verwendet werden.

Wichtig: Die hier gezeigten Hashes sind nurPlatzhalter. Platzhalter.Echte Hashes dürfen nicht in dieser Anleitung gespeichert werden.


SNMPv3-Benutzer mit höchstem Sicherheitslevel setzen

Der SNMPv3-Benutzer wird mit Auth-Hash, Priv-Hash und Priv-HashSicherheitslevel konfigurieren:priv gesetzt.

Format:

BENUTZERNAME/AUTH-HASH/PRIV-HASH/priv

Befehl:

esxcli system snmp set --users max/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/snmp_monitor/<AUTH-HASH>/<PRIV-HASH>/priv

AufbauBeispiel desmit Befehls:Platzhaltern:

BENUTZERNAME/AUTH-HASH/PRIV-HASH/SICHERHEITSLEVEL
esxcli

Beispiel:

system
max/snmp set --users snmp_monitor/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/priv

Der Sicherheitslevel priv bedeutet:

  • Authentifizierung ist aktivaktiv.
  • Verschlüsselung ist aktivaktiv.
  • Das entspricht SNMPv3 authPriv.

ESXi-Firewall für SNMP einschränken

SNMP sollte nur vom Monitoring-System erreichbar sein. Nicht vom gesamten Netz. Nicht vom Internet. Nicht von irgendeinem vergessenen Testsystem, das seit 2017 niemand mehr anfassen wollte.

SNMP-Firewall-Regel prüfen:

esxcli network firewall ruleset list --ruleset-id snmp

Aktuelle erlaubte IPs anzeigen:

esxcli network firewall ruleset allowedip list --ruleset-id snmp

Zugriff von allen IPs deaktivieren:

esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false

Nur das Monitoring-System erlauben:

esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address <MONITORING-IP>

Beispiel:

esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 192.168.1.20

SNMP-Firewall-Regel aktivieren:

esxcli network firewall ruleset set --ruleset-id snmp --enabled true

Ergebnis prüfen:

esxcli network firewall ruleset allowedip list --ruleset-id snmp

Erwartet ist, dass nur die Monitoring-IP oder das freigegebene Monitoring-Netz angezeigt wird.


SNMP-Dienst aktivieren

Nachdem Authentifizierung, Verschlüsselung, Benutzer und Firewall gesetzt sind, wird SNMP aktiviert.

esxcli system snmp set --enable true

Status prüfen:

esxcli system snmp get

Erwartete Werte:

Enable: true
Authentication: SHA1
Privacy: AES128
Users: snmp_monitor/.../.../priv
Communities:

Das Feld Communities sollte leer sein.


SNMPv3 testen

Test auf dem ESXi-Host

Der ESXi-interne Test kann verwendet werden, um die SNMP-Konfiguration zu prüfen:

esxcli system snmp test -u snmp_monitor -A '<AUTH-SECRET>' -X '<PRIV-SECRET>' --raw-secret

Hinweis: Der Test ist besonders für Trap- oder Inform-Konfigurationen relevant. Bei reinem SNMP-Polling sollte zusätzlich vom Monitoring-System aus getestet werden.

Test vom Monitoring-System

Vom Monitoring-System aus kann SNMPv3 beispielsweise mit einem SNMP-Client getestet werden.

snmpwalk -v3 -l authPriv -u snmp_monitor -a SHA -A '<AUTH-SECRET>' -x AES -X '<PRIV-SECRET>' <ESXI-IP> 1.3.6.1.2.1.1

Beispiel:

snmpwalk -v3 -l authPriv -u snmp_monitor -a SHA -A '<AUTH-SECRET>' -x AES -X '<PRIV-SECRET>' 192.168.1.50 1.3.6.1.2.1.1

Wenn der Test erfolgreich ist, sollten SNMP-Systeminformationen des ESXi-Hosts zurückgegeben werden.


Komplette Konfiguration prüfen

Aktuelle SNMP-Konfiguration anzeigen:

esxcli system snmp get

SNMP-TestFirewall-Regel ausführen:prüfen:

esxcli systemnetwork firewall ruleset list --ruleset-id snmp test

Erlaubte

Dienste und StatusSNMP-Quell-IP prüfen

fen:

esxcli network firewall ruleset allowedip list --ruleset-id snmp

SSH-Status prüfen:

/etc/init.d/SSH status

Firewall-Regeln prüfen:

esxcli network firewall ruleset list

SNMP-Konfiguration prüfen:

esxcli system snmp get

SSH nach der Einrichtung wieder deaktivieren

Wenn SSH nicht dauerhaft benötigt wird, sollte der Dienst nach der EinrichtungSNMP-Konfiguration wieder deaktiviert werden.

SSH stoppen:

vim-cmd hostsvc/stop_ssh

SSH deaktivieren:

vim-cmd hostsvc/disable_ssh

SSH-Firewall-Regel für SSH deaktivieren:

esxcli network firewall ruleset set -e-ruleset-id sshServer --enabled false -r sshServer

Status

Sicherheitshinweise

prüfen:

  • /etc/init.d/SSH nur aktivieren, wenn es wirklich benötigt wird.
  • Direkte Root-Logins nur für administrative Arbeiten verwenden.
  • SNMPv3 statt SNMPv1 oder SNMPv2c verwenden.
  • Keine Klartext-Passwörter in BookStack speichern.
  • Auth-Hash und Priv-Hash nicht öffentlich dokumentieren.
  • Zugriff auf die ESXi-Management-IP per Firewall oder Management-VLAN einschränken.
  • Nach Abschluss der Arbeiten prüfen, ob SSH wieder deaktiviert werden kann.
status

Beispiel: Komplette sichere SNMPv3-Konfiguration

Die folgenden Befehle zeigen den Ablauf mit Platzhaltern. Echte Geheimnisse und Hashes nicht in BookStack speichern.

esxcli system snmp set --enablehelp
trueesxcli system snmp get

esxcli system snmp set --communities reset
esxcli system snmp set --authentication SHA1
esxcli system snmp set --privacy AES128

esxcli system snmp hash --auth-hash '<AUTH-SECRET>' --priv-hash '<PRIV-SECRET>' --raw-secret

esxcli system snmp set -A-users snmp_monitor/<AUTH-HASH>/<PRIV-HASH>/priv

esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false
esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address <MONITORING-IP>
esxcli network firewall ruleset set --ruleset-id snmp --enabled true

esxcli system snmp set --enable true

esxcli system snmp get
esxcli network firewall ruleset list --ruleset-id snmp
esxcli network firewall ruleset allowedip list --ruleset-id snmp


Härtungs-Checkliste

PrüfpunktSollwert
SNMP-VersionNur SNMPv3 verwenden
CommunitiesLeer oder zurückgesetzt
AuthenticationSHA1
PrivacyAES128
SNMPv3 Security Levelpriv / authPriv
SNMP-FirewallNur Monitoring-IP erlaubt
SSHNach derEinrichtung Hash-Erzeugung:deaktiviert
GeheimnisseNicht in BookStack gespeichert
HashesNicht öffentlich dokumentiert
Management-NetzSeparates Management-VLAN empfohlen

Fehlerbehebung

Algorithmus wird nicht akzeptiert

Wenn ein Algorithmus nicht akzeptiert wird, zuerst die unterstützten Werte anzeigen:

esxcli system snmp set --users max/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/privhelp

KonfigurationNur Werte verwenden, die dort explizit aufgeführt sind.

Monitoring-System erreicht ESXi nicht

Firewall-Regel und erlaubte IPs prüfen:

esxcli systemnetwork firewall ruleset list --ruleset-id snmp
getesxcli network firewall ruleset allowedip list --ruleset-id snmp

TestDie ausführen:IP des Monitoring-Systems muss in der erlaubten Liste stehen.

SNMPv3-Login schlägt fehl

Mögliche Ursachen:

  • Auth-Secret oder Priv-Secret falsch eingegeben
  • Auth-Hash oder Priv-Hash vertauscht
  • Engine ID wurde nach der Hash-Erzeugung geändert
  • Monitoring-System verwendet nicht esxcliauthPriv
  • system
  • Monitoring-System snmpverwendet testnicht SHA
 und AES
  • SNMP-Firewall erlaubt die Monitoring-IP nicht

  • Sicherheitshinweise

    • SNMPv3 mit priv verwenden.
    • SNMPv1 und SNMPv2c nicht verwenden.
    • Keine Community Strings konfigurieren.
    • Keine Passwörter oder Hashes in BookStack speichern.
    • SNMP-Zugriff per Firewall auf Monitoring-Systeme begrenzen.
    • Management-IP nicht aus normalen Client-Netzen erreichbar machen.
    • SSH nur temporär aktivieren.
    • Nach der Einrichtung SSH wieder deaktivieren.
    • SNMP-Zugangsdaten regelmäßig nach internem Sicherheitskonzept rotieren.
    • Bei Änderung der Engine ID SNMPv3-Hashes neu erzeugen.