OffshoreVps
Sicherheit19 Okt. 20269 Min. LesezeitVon dem OffshoreVps-Team

Einen VPS mit LUKS verschlüsseln: Einrichtung und Grenzen

LUKS-Festplattenverschlüsselung auf einem gemieteten Server einrichten: ein verschlüsseltes Datenvolume, wie der Remote-Unlock für die Root-Festplatte funktioniert und ein ehrliches Bedrohungsmodell.

Festplattenverschlüsselung schützt ruhende Daten. Auf einem VPS kontrolliert der Hoster den Hypervisor, sodass sie einen entschlossenen Anbieter nicht daran hindern kann, den Arbeitsspeicher auszulesen. Gut schützt sie vor verlorenen Backups, weiterverwendeten Datenträgern und gestohlenem oder beschlagnahmtem Speicher. Wissen Sie, gegen welche dieser Fälle Sie sich absichern wollen, bevor Sie Zeit investieren.

Terminalfenster auf einem VPS mit den Befehlen zum Verschlüsseln eines VPS mit LUKS, beginnend mit „sudo apt install -y cryptsetup“
Die Art von Befehlen, die Sie in dieser Anleitung auf Ihrem Server ausführen.

Festlegen, wovor Sie sich schützen

  • Ausgemusterte oder kopierte Datenträger: Verschlüsselung hilft sehr.
  • Geleakte Snapshots: Verschlüsselung hilft, wenn der Schlüssel nicht beim Snapshot gespeichert ist.
  • Ein Angreifer im laufenden System: Verschlüsselung hilft nicht, da das Volume entsperrt ist.
  • Ein bösartiger Hypervisor: Verschlüsselung hilft auf einem VPS nicht. Ein Dedicated Server mit voller Kontrolle über die Hardware ist die stärkere Option.

Option 1: ein verschlüsseltes Datenvolume

Hier beginnen Sie am sichersten. Hängen Sie eine zweite Festplatte an oder erstellen Sie eine Loop-Datei und legen Sie sensible Daten dort ab. Das Beispiel verwendet ein leeres Gerät namens /dev/vdb. Prüfen Sie den Gerätenamen doppelt, denn das Formatieren zerstört den Inhalt.

sudo apt install -y cryptsetup
sudo cryptsetup luksFormat /dev/vdb
sudo cryptsetup open /dev/vdb secure
sudo mkfs.ext4 /dev/mapper/secure
sudo mkdir -p /srv/secure
sudo mount /dev/mapper/secure /srv/secure

Zum erneuten Schließen: sudo umount /srv/secure && sudo cryptsetup close secure.

Die Schritte dieser Anleitung in der Reihenfolge: 1. Festlegen, wovor Sie sich schützen; 2. Option 1: ein verschlüsseltes Datenvolume; 3. Option 2: ein dateibasierter Container; 4. Option 3: die Root-Festplatte mit Remote-Entsperrung; 5. Den Schlüssel richtig handhaben
Die Schritte dieser Anleitung in der Reihenfolge.

Option 2: ein dateibasierter Container

Wenn Sie keinen freien Datenträger haben, verwenden Sie eine Datei als Container.

sudo fallocate -l 20G /root/vault.img
sudo cryptsetup luksFormat /root/vault.img
sudo cryptsetup open /root/vault.img vault
sudo mkfs.ext4 /dev/mapper/vault
sudo mount /dev/mapper/vault /srv/vault

Option 3: die Root-Festplatte mit Remote-Entsperrung

Die Verschlüsselung der Root-Festplatte braucht eine Möglichkeit, die Passphrase beim Booten einzugeben, bevor das Netzwerk läuft. Die übliche Lösung ist ein kleiner SSH-Server (dropbear) im initramfs. Das setzt voraus, dass Ihr Anbieter ein eigenes Image oder eine Neuinstallation mit eigener Partitionierung zulässt, prüfen Sie das also zuerst. Viele VPS-Panels erlauben es nicht, und ein Fehler kann den Server unbootbar machen, halten Sie daher eine Rettungsoption bereit.

In Kürze: mit verschlüsselter Root-Partition installieren, dropbear-initramfs hinzufügen, Ihren öffentlichen SSH-Schlüssel in /etc/dropbear/initramfs/authorized_keys eintragen, das initramfs neu erzeugen, dann neu starten und per SSH mit cryptroot-unlock entsperren.

Den Schlüssel richtig handhaben

  • Verwenden Sie eine lange Passphrase und bewahren Sie sie in einem Passwortmanager auf, nicht auf dem Server.
  • Sichern Sie den LUKS-Header: sudo cryptsetup luksHeaderBackup /dev/vdb --header-backup-file header.img. Bewahren Sie ihn offline auf.
  • Entsperren Sie nicht automatisch mit einer Schlüsseldatei auf demselben Datenträger. Das hebelt den Zweck aus.
  • Bedenken Sie, dass das Entsperren beim Booten bedeutet, dass bei einem Neustart Ihre Anwesenheit nötig ist.

Kombinieren Sie die Verschlüsselung mit soliden verschlüsselten Backups und den Grundlagen aus der Härtung in 15 Minuten.