Einrichtung eines sicheren HashiCorp Vault Servers auf Ubuntu 24.04

Moderne Softwarelösungen arbeiten mit einer Vielzahl sensibler Zugangsdaten wie API-Schlüsseln, Datenbankpasswörtern, TLS-Zertifikaten und Verschlüsselungskeys. Werden diese Informationen fest im Code hinterlegt, unverschlüsselt gespeichert oder unsicher verteilt, entstehen erhebliche Sicherheitsrisiken. HashiCorp Vault löst dieses Problem, indem es eine zentrale und sichere Plattform zur Verwaltung vertraulicher Daten bereitstellt. Vault bietet eine sichere Geheimnisverwaltung, dynamische Zugangsdaten, Verschlüsselung als Service sowie fein abgestufte Zugriffskontrollen.

Diese Anleitung zeigt, wie Sie einen produktionsreifen Vault-Server unter Ubuntu 24.04 einrichten. Sie behandelt die Installation von Vault aus dem offiziellen HashiCorp-Repository, die Erstellung von TLS-Zertifikaten mit Let’s Encrypt, die sichere Konfiguration, das Initialisieren mit Unseal-Schlüsseln sowie den Zugriff über die Kommandozeile und die Weboberfläche.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:

  • Zugriff auf einen Ubuntu-24.04-Server mit einem Nicht-Root-Benutzer, der über Sudo-Rechte verfügt.
  • Ein A-Record in Ihrer Domain, der auf die öffentliche IP-Adresse Ihres Servers verweist.

Installation von Vault über das HashiCorp-Repository

In diesem Abschnitt fügen Sie das offizielle APT-Repository von HashiCorp zu Ihrem Ubuntu-System hinzu und installieren Vault. Dadurch erhalten Sie verifizierte und aktuelle Versionen direkt vom Hersteller.

Paketliste aktualisieren

Benötigte Abhängigkeiten installieren

$ sudo apt install gnupg curl lsb-release -y

HashiCorp-GPG-Schlüssel hinzufügen

Der GPG-Schlüssel dient dazu, sicherzustellen, dass die Pakete tatsächlich von HashiCorp stammen und nicht manipuliert wurden.

$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg

HashiCorp-Repository hinzufügen

Fügen Sie das HashiCorp-Repository zu den Paketquellen hinzu, um Zugriff auf die neuesten Versionen zu erhalten.

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

Paketindex erneut aktualisieren

Vault installieren

$ sudo apt install vault -y

Installation überprüfen

Beispielausgabe:

Vault v1.20.4 (55bd8f18c6c84aa89fdede4850a622c57f03bd7e), built 2025-09-23T13:22:38Z

Shell-Autovervollständigung aktivieren

Diese Funktion verbessert die Nutzung der Kommandozeile beim Arbeiten mit Vault.

$ vault -autocomplete-install
$ exec $SHELL

Firewall-Zugriff konfigurieren

Damit der Vault-Dienst erreichbar ist, muss die Firewall so eingerichtet werden, dass HTTPS-Verbindungen zugelassen werden. Die folgenden Schritte ermöglichen den sicheren Zugriff auf die Vault-Weboberfläche und die CLI.

HTTPS-Zugriff erlauben

Die Weboberfläche und die API von Vault verwenden Port 8200. Öffnen Sie diesen Port in der Firewall.

Port 80 vorübergehend öffnen

Port 80 wird von Certbot benötigt, um beim Ausstellen von TLS-Zertifikaten den Besitz der Domain zu bestätigen. Aktivieren Sie ihn daher vorübergehend.

Firewall neu laden

Wenden Sie die Änderungen an, indem Sie UFW neu laden.

TLS-Zertifikate mit Let’s Encrypt erstellen

Im nächsten Schritt erstellen Sie kostenlose TLS-Zertifikate mit Certbot und Let’s Encrypt. Diese Zertifikate verschlüsseln die Kommunikation zwischen Clients und dem Vault-Server.

Certbot installieren

$ sudo apt install certbot -y

TLS-Zertifikat anfordern

Ersetzen Sie vault.example.com durch Ihre eigene Domain und your-email@example.com durch Ihre gültige E-Mail-Adresse.

$ sudo certbot certonly --standalone -d vault.example.com --non-interactive --agree-tos --email your-email@example.com

Port-80-Regel entfernen

Nachdem das Zertifikat erstellt wurde, schließen Sie Port 80 wieder, um die Sicherheit zu erhöhen.

$ sudo ufw delete allow 80/tcp

Firewall erneut neu laden

Verzeichnis für Vault-Zertifikate erstellen

Speichern Sie alle Zertifikatsdateien in einem separaten TLS-Verzeichnis für Vault.

$ sudo mkdir -p /opt/vault/tls

Zertifikate kopieren

Ersetzen Sie vault.example.com durch Ihre Domain, wenn Sie die Zertifikate kopieren.

$ sudo cp /etc/letsencrypt/live/vault.example.com/fullchain.pem /opt/vault/tls/cert.pem
$ sudo cp /etc/letsencrypt/live/vault.example.com/privkey.pem /opt/vault/tls/key.pem

Besitzrechte und Berechtigungen setzen

Beschränken Sie den Zugriff auf die Zertifikate auf den Vault-Benutzer und sichern Sie die privaten Schlüssel.

$ sudo chown -R vault:vault /opt/vault/tls
$ sudo chmod 600 /opt/vault/tls/cert.pem /opt/vault/tls/key.pem

Automatisches Erneuerungsskript erstellen

Dieses Skript sorgt dafür, dass Vault automatisch neu geladen wird, wenn Certbot die Zertifikate erneuert.

$ sudo tee /etc/letsencrypt/renewal-hooks/deploy/vault.sh > /dev/null << 'EOF'
#!/bin/bash
cp /etc/letsencrypt/live/vault.example.com/fullchain.pem /opt/vault/tls/cert.pem
cp /etc/letsencrypt/live/vault.example.com/privkey.pem /opt/vault/tls/key.pem
chown -R vault:vault /opt/vault/tls
chmod 600 /opt/vault/tls/*
systemctl reload vault
EOF

Skript ausführbar machen

$ sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/vault.sh

Vault für den Produktivbetrieb konfigurieren

In diesem Abschnitt wird erläutert, wie Sie eine produktionsreife Konfigurationsdatei für Vault erstellen. Diese Datei definiert Speicher-Backend, Netzwerk-Listener und Sicherheitsoptionen, damit Vault stabil und sicher läuft.

Standardkonfiguration sichern

Bevor Sie Änderungen vornehmen, sichern Sie die bestehende Vault-Konfigurationsdatei.

$ sudo cp /etc/vault.d/vault.hcl /etc/vault.d/vault.hcl.backup

Produktionskonfiguration erstellen

Bearbeiten Sie die Konfiguration, um sichere Listener-Einstellungen und Speicheroptionen festzulegen. Ersetzen Sie vault.example.com durch Ihre eigene Domain.

$ sudo tee /etc/vault.d/vault.hcl > /dev/null << 'EOF'
# Vault Produktionskonfiguration

# Weboberfläche aktivieren
ui = true

# Speichersperre deaktivieren (auf false setzen, wenn wenig RAM vorhanden ist)
disable_mlock = true

# Speicher-Backend – lokales Dateisystem
storage "file" {
  path = "/opt/vault/data"
}

# HTTPS Listener
listener "tcp" {
  address       = "0.0.0.0:8200"
  tls_cert_file = "/opt/vault/tls/cert.pem"
  tls_key_file  = "/opt/vault/tls/key.pem"

  # Minimale TLS-Version erzwingen
  tls_min_version = "tls12"

  # Sichere Cipher Suites definieren
  tls_cipher_suites = "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"

  # Keine Client-Zertifikate erforderlich
  tls_require_and_verify_client_cert = "false"
  tls_disable_client_certs           = "true"
}

# Netzwerkadressen für API und Cluster festlegen
api_addr = "https://vault.example.com:8200"
cluster_addr = "https://vault.example.com:8201"
EOF

Vault-Dienst aktivieren

Aktivieren Sie den Vault-Dienst, damit er automatisch beim Systemstart ausgeführt wird.

$ sudo systemctl enable vault

Vault-Dienst neu starten

Starten Sie den Dienst neu, um die neue Konfiguration zu übernehmen.

$ sudo systemctl restart vault

Dienststatus prüfen

Überprüfen Sie, ob Vault korrekt läuft und aktiv ist.

$ sudo systemctl status vault

Beispielausgabe:

● vault.service - HashiCorp Vault - Ein Tool zur Verwaltung von Secrets
     Loaded: loaded (/usr/lib/systemd/system/vault.service; enabled; preset: enabled)
     Active: active (running) since Thu 2025-10-02 22:15:08 UTC; 3s ago

Vault-Umgebung konfigurieren

Nachdem Vault installiert und gestartet wurde, konfigurieren Sie Umgebungsvariablen, damit die CLI mit dem Server kommunizieren kann.

Vault-Adresse festlegen

Ersetzen Sie vault.example.com durch Ihre Domain, um die Serveradresse zu definieren.

$ echo 'export VAULT_ADDR="https://vault.example.com:8200"' >> ~/.bashrc

Shell-Konfiguration neu laden

Damit die Änderung wirksam wird, laden Sie die Shell-Konfiguration neu.

Umgebungsvariable überprüfen

Überprüfen Sie, ob die Variable korrekt gesetzt wurde.

Beispielausgabe:

https://vault.example.com:8200

Verbindung zu Vault testen

Prüfen Sie, ob die CLI eine erfolgreiche Verbindung zum Vault-Server herstellen kann.

Beispielausgabe:

Key                Value
---                -----
Seal Type          shamir
Initialized        false
Sealed             true

Vault initialisieren und entsiegeln

Nach dem Start befindet sich Vault im versiegelten Zustand. In diesem Modus weiß Vault zwar, wo die Daten gespeichert sind, kann sie jedoch erst nach Eingabe der Unseal-Schlüssel entschlüsseln. In diesem Abschnitt lernen Sie, wie Sie Vault initialisieren, die erforderlichen Schlüssel erzeugen und es anschließend entsiegeln, um den Betrieb zu starten.

Funktionsweise des Entsiegelungsprozesses

Bei der Initialisierung erstellt Vault mehrere wichtige Schlüsselkomponenten:

  • Master-Key: Wird verwendet, um alle Secrets zu verschlüsseln.
  • Unseal-Keys: Mehrere Teile des Master-Keys, die mithilfe des Shamir-Algorithmus aufgeteilt werden.
  • Root-Token: Der erste Administrationszugang zu Vault.

Standardmäßig werden fünf Unseal-Schlüssel generiert, von denen drei benötigt werden, um Vault zu entsiegeln. Dadurch wird verhindert, dass eine einzelne Person vollen Zugriff auf alle Daten erhält.

Vault initialisieren

Starten Sie die Initialisierung mit der Standardkonfiguration.

Beispielausgabe:

Unseal Key 1: nk+b+gZRPzUcTx5yDaY7Rxv26m/JqPuuhlYKVLxqvcLV
Unseal Key 2: kXi4dk1pDpTj0efjPekMMEnqMFIGVbbIECyAbYXu4XIi
Unseal Key 3: jPyTlTCeKAMHu16+EYHc6FcmqW+hQ8B9ZN02vQ8VnOmd
Unseal Key 4: 5rvMMnEvcIQdcAtKd+UxQX7FqsDbMEtuHqRijFlyjR9l
Unseal Key 5: igcpq67F04IhxzAFQ/i+VbC5+vPSRNY5Zsg/xHu+qgID

Initial Root Token: hvs.4H1RRGrHO8cbu2QumVuXUfOV

Wichtig: Bewahren Sie diese Schlüssel an sicheren, voneinander getrennten Orten auf. Sie werden nach der Initialisierung nicht erneut angezeigt.

Vault entsiegeln

Vault muss mit drei der fünf Unseal-Schlüssel entsiegelt werden. Jeder Schlüssel wird einzeln eingegeben.

Beginnen Sie mit dem ersten Schlüssel:

Nach Eingabe des ersten Schlüssels sehen Sie den Fortschritt:

Fahren Sie mit dem zweiten Schlüssel fort:

Beispielausgabe:

Geben Sie den dritten Schlüssel ein, um den Entsiegelungsprozess abzuschließen:

Wenn alle drei Schlüssel akzeptiert wurden, erscheint die Bestätigung, dass Vault entsiegelt ist:

Hinweis: Falls der Entsiegelungsprozess fehlschlägt, prüfen Sie, ob Sie drei unterschiedliche Schlüssel verwendet haben und nicht denselben mehrfach eingegeben haben.

Mit dem Root-Token anmelden

Nachdem Vault entsiegelt wurde, melden Sie sich mit dem bei der Initialisierung erzeugten Root-Token an.

Geben Sie bei der Abfrage das Initial Root Token ein, um Administratorzugriff zu erhalten.

Zugriff auf die Vault-Weboberfläche

Vault verfügt zusätzlich über eine grafische Weboberfläche, die eine benutzerfreundliche Verwaltung von Secrets und Konfigurationen ermöglicht. Neben der Kommandozeile können Sie hier Systemstatus, Zugriffe und Secret Engines bequem verwalten.

Vault-Dashboard öffnen

Öffnen Sie Ihren Webbrowser und rufen Sie Ihre Vault-Domain auf:

https://vault.example.com:8200

Nach dem Laden der Seite erscheint der Anmeldebildschirm. Wählen Sie dort Token als Authentifizierungsmethode und geben Sie Ihr Root-Token ein. Klicken Sie anschließend auf Sign In.

Nach erfolgreicher Anmeldung wird das Dashboard angezeigt, das Informationen über den Status Ihres Vault-Servers sowie aktive Secret Engines enthält.

Überblick über die Weboberfläche

  • Das linke Navigationsmenü bietet schnellen Zugriff auf Secrets, Policies und Systemeinstellungen.
  • Im Hauptbereich sehen Sie den aktuellen Serverstatus, den Versiegelungszustand sowie Audit-Protokolle.
  • Sie können Benutzer verwalten, Secret Engines wie kv aktivieren und Zugriffskontrolllisten (ACLs) konfigurieren.

Fazit

Sie haben nun eine produktionsreife Installation von HashiCorp Vault auf Ubuntu 24.04 erfolgreich eingerichtet. Das Setup umfasst TLS-Verschlüsselung mit Let’s Encrypt, automatische Zertifikatserneuerung sowie Zugriff über Kommandozeile und Webinterface.

Ihr Vault-Server ist jetzt bereit, sensible Daten wie API-Schlüssel, Zugangsdaten und Verschlüsselungsmaterial sicher zu speichern und zu verwalten. Weitere Informationen zu erweiterten Funktionen – etwa dynamische Secrets, Audit-Logs oder Cluster-Replikation – finden Sie in der offiziellen Vault-Dokumentation.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: