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:

    Auth-Passwort
    Priv-Passwort
    Auth-Hash
    Priv-Hash

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

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

    SNMP-Konfigurationsoptionen anzeigen:

    esxcli system snmp set --help

    In der Ausgabe sind Platzhalterbesonders 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:

    Bereich Wert Bewertung Authentication none Nicht sicher, nicht verwenden Authentication MD5 Falls vorhanden: veraltet, nicht verwenden Authentication SHA1 Stärkste übliche ESXi-Option für SNMPv3 Authentication Privacy none Nicht sicher, nicht verwenden Privacy AES128 Stärkste übliche ESXi-Option für SNMPv3 Privacy Security Level none Nicht sicher, nicht verwenden Security Level auth Authentifiziert, aber nicht verschlüsselt Security Level priv Authentifiziert und müssenverschlüsselt, durchverwenden echte

    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 ersetzteingetragen 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 aktiviereneine

    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

        DiensteSNMP-Quell-IP undprüfen: Status

        esxcli prüfen
        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üfpunkt Sollwert SNMP-Version Nur SNMPv3 verwenden Communities Leer oder zurückgesetzt Authentication SHA1 Privacy AES128 SNMPv3 Security Level priv / authPriv SNMP-Firewall Nur Monitoring-IP erlaubt SSH Nach derEinrichtung Hash-Erzeugung:deaktiviert Geheimnisse Nicht in BookStack gespeichert Hashes Nicht öffentlich dokumentiert Management-Netz Separates 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 systemMonitoring-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.