LUKS (Linux Unified Key Setup) ist der Standard für Festplattenverschlüsselung unter Linux. Es baut auf dm-crypt auf und bietet ein standardisiertes On-Disk-Format, mehrere Passphrasen pro Volume und sicheres Schlüsselmanagement. Ob Sie eine Datenpartition auf einem Server verschlüsseln, eine Laptop-Festplatte sichern oder Compliance-Anforderungen für ruhende Daten erfüllen müssen – LUKS ist das Werkzeug, das jeder Linux-Administrator kennen sollte.

Dieser Leitfaden behandelt das Verschlüsseln von Partitionen mit LUKS2, das Verwalten von Keyslots, das Konfigurieren des automatischen Entsperrens beim Booten und das Beheben häufiger Probleme.

Voraussetzungen

  • Linux-System mit Kernel 4.12+ (für LUKS2- und Argon2id-Unterstützung)
  • cryptsetup 2.0+ installiert
  • Root- oder sudo-Zugriff
  • Eine freie Partition oder Festplatte zum Verschlüsseln (LUKS-Formatierung ist destruktiv)
  • Backup aller Daten auf dem Zielgerät

LUKS vs. andere Linux-Verschlüsselungsoptionen

Bevor wir einsteigen, hier ein Vergleich von LUKS mit Alternativen:

FeatureLUKS/dm-crypteCryptfsfscryptVeraCrypt
UmfangKomplette Partition/FestplattePro VerzeichnisPro VerzeichnisKomplette Partition/Container
PerformanceNahezu nativ (AES-NI)Langsamer (gestapeltes FS)Nahezu nativNahezu nativ
SchlüsselverwaltungBis zu 32 KeyslotsPro-User-WrappingPro-Verzeichnis-SchlüsselEinzelnes Passwort
Boot-VerschlüsselungJa (mit initramfs)NeinNeinJa (eigener Bootloader)
Standard unter LinuxJa (Standard)VeraltetNur Ext4/F2FSPlattformübergreifend

LUKS ist die richtige Wahl für Server-Partitionen, vollständige Festplattenverschlüsselung und jedes Szenario, in dem Sie mehrere Entsperrmethoden benötigen (Passphrase + Schlüsseldatei + Wiederherstellungsschlüssel).

Eine Partition mit LUKS2 verschlüsseln

Schritt 1: Zielgerät identifizieren

lsblk -f
NAME   FSTYPE SIZE MOUNTPOINT
sda           100G
├─sda1 ext4    50G /
├─sda2 swap     4G [SWAP]
└─sda3          46G

In diesem Beispiel ist /dev/sda3 die unformatierte Partition, die wir verschlüsseln werden. Überprüfen Sie den Gerätenamen doppeltluksFormat wird alle Daten darauf zerstören.

Schritt 2: cryptsetup installieren

Unter Debian/Ubuntu:

sudo apt update && sudo apt install -y cryptsetup

Unter RHEL/Fedora/AlmaLinux:

sudo dnf install -y cryptsetup

Überprüfen Sie, ob die Version LUKS2 unterstützt:

cryptsetup --version

Sie benötigen Version 2.0.0 oder höher. Jede moderne Distribution ab 2018 enthält diese.

Schritt 3: LUKS-Verschlüsselung initialisieren

sudo cryptsetup luksFormat --type luks2 /dev/sda3

Sie sehen eine Bestätigungsaufforderung und werden aufgefordert, eine Passphrase festzulegen:

WARNING: Device /dev/sda3 already contains a 'ext4' superblock signature.

WARNING!
========
This will overwrite data on /dev/sda3 irrevocably.

Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/sda3:
Verify passphrase:

Wählen Sie eine starke Passphrase. Dies ist Ihre primäre Entsperrmethode. Wenn Sie sie verlieren und keinen Backup-Keyslot haben, sind die Daten verloren – das ist der Zweck der Verschlüsselung.

Was luksFormat unter der Haube macht:

  1. Schreibt einen LUKS2-Header (standardmäßig 16 MB) an den Anfang der Partition
  2. Generiert einen zufälligen Master-Schlüssel (standardmäßig 256-Bit AES)
  3. Verschlüsselt den Master-Schlüssel mit Ihrer Passphrase unter Verwendung der Argon2id-Schlüsselableitung
  4. Speichert den verschlüsselten Master-Schlüssel in Keyslot 0

Schritt 4: Das verschlüsselte Volume öffnen

sudo cryptsetup open /dev/sda3 data_crypt

Dies fordert Ihre Passphrase an und erstellt dann /dev/mapper/data_crypt — ein virtuelles Blockgerät, das alle I/O transparent ver-/entschlüsselt.

Überprüfen Sie, ob es geöffnet ist:

ls -la /dev/mapper/data_crypt

Schritt 5: Ein Dateisystem erstellen und mounten

sudo mkfs.ext4 /dev/mapper/data_crypt
sudo mkdir -p /mnt/encrypted
sudo mount /dev/mapper/data_crypt /mnt/encrypted

Testen Sie es:

echo "Encryption works" | sudo tee /mnt/encrypted/test.txt
cat /mnt/encrypted/test.txt

Die Daten sind jetzt im Ruhezustand verschlüsselt. Jeder, der die Festplatte ohne die Passphrase entfernt, sieht nur zufällige Bytes.

LUKS-Keyslots verwalten

LUKS2 unterstützt bis zu 32 Keyslots. Jeder Keyslot enthält eine unabhängig verschlüsselte Kopie des Master-Schlüssels. Das bedeutet, Sie können mehrere Passphrasen, Schlüsseldateien oder Wiederherstellungsschlüssel haben – alle öffnen dasselbe Volume.

Eine Backup-Passphrase hinzufügen

sudo cryptsetup luksAddKey /dev/sda3

Sie geben zuerst die bestehende Passphrase ein, dann die neue. Diese geht in den nächsten verfügbaren Keyslot.

Eine Schlüsseldatei hinzufügen

Schlüsseldateien ermöglichen automatisches Entsperren (Skripte, Boot-Sequenzen) ohne Eingabe einer Passphrase:

sudo dd if=/dev/urandom of=/root/luks-keyfile bs=4096 count=1
sudo chmod 400 /root/luks-keyfile
sudo cryptsetup luksAddKey /dev/sda3 /root/luks-keyfile

Speichern Sie Schlüsseldateien sicher. Wenn sich die Schlüsseldatei auf derselben unverschlüsselten Festplatte befindet, macht das den Zweck zunichte. Bewahren Sie sie auf einer separaten verschlüsselten Root-Partition oder einem Hardware-Token auf.

Keyslots auflisten

sudo cryptsetup luksDump /dev/sda3 | grep -A5 "Keyslots:"

Für eine übersichtlichere Ansicht:

sudo cryptsetup luksDump /dev/sda3 | grep "Key Slot"

Einen Keyslot entfernen

sudo cryptsetup luksRemoveKey /dev/sda3

Geben Sie die Passphrase ein, die Sie entfernen möchten. Oder entfernen Sie nach Slot-Nummer:

sudo cryptsetup luksKillSlot /dev/sda3 1

Entfernen Sie niemals alle Keyslots. Wenn Sie den letzten entfernen, wird das Volume dauerhaft unzugänglich. cryptsetup wird Sie warnen, aber verlassen Sie sich nicht darauf.

LUKS beim Booten automatisch entsperren

Für Server-Partitionen, die automatisch gemountet werden müssen, haben Sie zwei Optionen:

Option A: Schlüsseldatei auf Root-Partition

Dies funktioniert, wenn die Root-Partition bereits verschlüsselt ist (oder eine vertrauenswürdige Boot-Festplatte ist) und Sie möchten, dass sekundäre Partitionen ohne Passphrase-Aufforderung entsperrt werden.

  1. Erstellen Sie die Schlüsseldatei (falls noch nicht geschehen):
sudo dd if=/dev/urandom of=/root/luks-keyfile bs=4096 count=1
sudo chmod 400 /root/luks-keyfile
sudo cryptsetup luksAddKey /dev/sda3 /root/luks-keyfile
  1. Ermitteln Sie die UUID der LUKS-Partition:
sudo blkid /dev/sda3
/dev/sda3: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="crypto_LUKS"
  1. Zu /etc/crypttab hinzufügen:
echo 'data_crypt UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /root/luks-keyfile luks' | sudo tee -a /etc/crypttab
  1. Zu /etc/fstab hinzufügen:
echo '/dev/mapper/data_crypt /mnt/encrypted ext4 defaults 0 2' | sudo tee -a /etc/fstab
  1. Die initramfs neu erstellen:

Unter Debian/Ubuntu:

sudo update-initramfs -u

Unter RHEL/Fedora:

sudo dracut -f

Option B: Passphrase-Aufforderung beim Booten

Wenn Sie die Sicherheit benötigen, bei jedem Booten eine Passphrase einzugeben, fügen Sie nur dies zu /etc/crypttab hinzu:

echo 'data_crypt UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 none luks' | sudo tee -a /etc/crypttab

Das Schlüsselwort none weist das System an, während des Bootens zur Eingabe einer Passphrase aufzufordern. Dies ist die Standardeinstellung für verschlüsselte Root-Partitionen.

Zustand des LUKS-Volumes überprüfen

Volume-Details anzeigen

sudo cryptsetup luksDump /dev/sda3

Dies zeigt die LUKS-Version, Cipher, Hash, Keyslots und Header-Größe an. Nützlich zur Überprüfung der Verschlüsselungsparameter.

Verschlüsselungs-Performance benchmarken

cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha256      1547453 iterations per second for 256-bit key
PBKDF2-sha512       987231 iterations per second for 256-bit key
Argon2id             8 iterations, 1048576 memory per thread for 256-bit key
#     Algorithm |       Key |      Encryption |      Decryption
        aes-xts        256b      3512.0 MiB/s      3498.7 MiB/s
        aes-xts        512b      2845.3 MiB/s      2830.1 MiB/s

Mit AES-NI-Hardware-Beschleunigung (auf jeder modernen x86-CPU vorhanden) sehen Sie einen Durchsatz von 2-3 GB/s — Verschlüsselung fügt vernachlässigbaren Overhead hinzu.

Den LUKS-Header sichern

Wenn der LUKS-Header beschädigt ist (defekte Sektoren, versehentliches Überschreiben), verlieren Sie den Zugriff auf das gesamte Volume. Sichern Sie ihn immer:

sudo cryptsetup luksHeaderBackup /dev/sda3 --header-backup-file /root/sda3-luks-header.bak

Speichern Sie diese Sicherung außerhalb des Systems — auf einem USB-Laufwerk, einer sicheren Netzwerkfreigabe oder in einem Tresor. Jeder mit dem Header-Backup und einer gültigen Passphrase kann das Volume entschlüsseln.

Bei Bedarf wiederherstellen:

sudo cryptsetup luksHeaderRestore /dev/sda3 --header-backup-file /root/sda3-luks-header.bak

Schließen und Aushängen

Wenn Sie fertig sind, hängen Sie das Volume sauber aus und schließen Sie es:

sudo umount /mnt/encrypted
sudo cryptsetup close data_crypt

Die Partition ist jetzt gesperrt. Die Daten auf /dev/sda3 sind unzugänglich, bis Sie sie erneut mit der richtigen Passphrase oder Schlüsseldatei öffnen.

Fehlerbehebung

“Device /dev/sda3 is in use” beim Formatierungsversuch: Die Partition ist gemountet oder wird von einem anderen Prozess gehalten. Führen Sie lsof /dev/sda3 oder fuser -mv /dev/sda3 aus, um herauszufinden, was sie verwendet.

Boot hängt beim Warten auf Passphrase: Wenn Sie ein LUKS-Volume zu /etc/crypttab ohne Schlüsseldatei hinzugefügt haben und das Volume nicht kritisch ist, fügen Sie nofail zu den Optionen hinzu: data_crypt UUID=... none luks,nofail. Dies lässt den Boot nach einem Timeout fortfahren.

“No key available with this passphrase”: Entweder falsche Passphrase oder der Keyslot wurde entfernt. Probieren Sie alle Passphrasen aus, die Sie festgelegt haben. Wenn keine funktioniert, stellen Sie von einem Header-Backup wieder her.

Langsames luksFormat auf großen Festplatten: Die Formatierung selbst ist schnell (schreibt nur den Header). Aber wenn Sie die Partition zuerst sicher löschen möchten, führen Sie sudo cryptsetup open --type plain /dev/sda3 wipe && sudo dd if=/dev/zero of=/dev/mapper/wipe bs=1M status=progress && sudo cryptsetup close wipe vor der Formatierung aus.

Kann verschlüsselte Partition nicht vergrößern: Schließen Sie zuerst das Volume, verwenden Sie dann cryptsetup resize nach dem Vergrößern der zugrunde liegenden Partition mit parted oder fdisk.

Zusammenfassung

  • LUKS2 ist der Linux-Standard für Festplattenverschlüsselung — verwenden Sie cryptsetup luksFormat --type luks2, um jede Partition zu verschlüsseln
  • Die Verschlüsselung ist transparent: einmal mit cryptsetup open geöffnet, werden alle Lese- und Schreibvorgänge automatisch ver-/entschlüsselt
  • LUKS unterstützt bis zu 32 Keyslots — verwenden Sie mehrere Passphrasen und Schlüsseldateien für Flexibilität und Wiederherstellung
  • Automatisches Entsperren beim Booten über /etc/crypttab mit einer Schlüsseldatei, die auf einer verschlüsselten Root-Partition gespeichert ist
  • Sichern Sie immer den LUKS-Header mit luksHeaderBackup — Header-Beschädigung bedeutet totalen Datenverlust
  • Performance-Overhead ist auf modernen CPUs mit AES-NI-Hardware-Beschleunigung vernachlässigbar
  • Sie können eine Partition nicht in-place verschlüsseln — sichern Sie immer Daten, bevor Sie luksFormat ausführen

SSL-Zertifikate mit Let’s Encrypt und Certbot automatisieren | UFW-Firewall auf Ubuntu Server konfigurieren | Restic-Backups zu verschlüsseltem Cloud-Speicher