LUKS Encryption: SUSE Storage Security (Artikel 152)
Implementierung von Festplattenverschlüsselung unter SUSE. Erfahren Sie den Umgang mit LUKS in YaST, die Schlüsselverwaltung und die Absicherung von mobilen und stationären Systemen.
# LUKS on SUSE: Datensicherheit im Enterprise-Rechenzentrum
TL;DR / Management Summary In einer Zeit von strengen Datenschutzvorgaben (DSGVO) ist die Verschlüsselung von “Data at Rest” Pflicht. SUSE integriert LUKS (Linux Unified Key Setup) tief in den Installer und das YaST Storage Modul. Wer SUSE nutzt, kann ganze Disks oder spezifische LVM-Volumes so absichern, dass sie ohne Passphrase oder Keyfile wertlos sind. Besonders stark: Die Integration in den Boot-Prozess, um verschlüsselte Btrfs-Root-Systeme performant zu entschlüsseln.
# 1. Einführung & Architektur
Die Basis: dm-crypt.
SUSE nutzt das Kernel-Modul dm-crypt. Es sitzt als transparente Schicht zwischen der physikalischen Hardware und dem Dateisystem.
# Der Crypto-Stack (Mermaid)
graph TD
A[Hardware Disk] --> B[LUKS Partition Header]
B --> C[Kernel dm-crypt Device]
C --> D[Mapping: /dev/mapper/cr_sda2]
D --> E[Btrfs Root /]
D --> F[LVM Volume Group]
E --> G[Snapper Snapshots]
# 2. Einrichtung via YaST
Der sicherste Weg für Admins.
Starten Sie den Partitioner: sudo yast2 disk.
- Wählen Sie eine ungenutzte Disk oder Partition.
- Wählen Sie “Encrypt Device”.
- YaST fragt nach einem Passwort und erstellt automatisch den Eintrag in der
/etc/crypttab. - Vorteil: YaST stellt sicher, dass das Boot-Image (
initrd) alle nötigen Module enthält, um die Disk beim Start zu entsperren.
# 3. Manuelle Verwaltung via CLI
Wenn die GUI nicht reicht.
# Status abfragen
sudo cryptsetup status cr_sda2
# Passwort hinzufügen (Key-Slots)
LUKS hat 8 Slots. Sie können für das gleiche Volume verschiedene Passwörter für verschiedene Admins vergeben.
sudo cryptsetup luksAddKey /dev/sda2
# 4. Day-2 Operations: Keyfiles & Automatisierung
Entsperren ohne Tipparbeit.
Für Server, die automatisch booten sollen (z.B. in einem sicheren RZ), nutzen wir Keyfiles auf einem USB-Stick oder einer virtuellen Disk.
# Keyfile erstellen
dd if=/dev/urandom bs=512 count=4 of=/root/unlock.key
chmod 400 /root/unlock.key
sudo cryptsetup luksAddKey /dev/sda2 /root/unlock.key
# Eintrag in /etc/crypttab
cr_data /dev/sda2 /root/unlock.key luks
# 5. Troubleshooting & “War Stories”
Wenn der Schlüssel klemmt.
# Story 1: “Der hängende Boot-Prompt”
Symptom: Der Server bootet, fragt nach dem Passwort, aber die Tastatur reagiert nicht (besonders in VMs).
Ursache: Das Tastaturlayout im Initramfs ist auf en-us gestellt, aber der Admin tippt mit deutschen Sonderzeichen.
Lösung: Stellen Sie in YaST unter “System” -> “Language” sicher, dass das Layout korrekt ist und führen Sie sudo mkinitrd aus, um das Boot-Image zu aktualisieren.
# Story 2: “Das volle Key-Slot Problem”
Symptom: luksAddKey schlägt fehl mit “No free slots”.
Ursache: Über die Jahre wurden alte Admin-Passwörter nie gelöscht.
Lösung: Finden Sie belegte Slots mit cryptsetup luksDump <device>. Löschen Sie ungenutzte Slots: cryptsetup luksKillSlot <device> <slot_number>.
# 6. Fazit & Empfehlung
- Standard: Verschlüsseln Sie mindestens die
/homeund/varPartitionen. - Backup: Sichern Sie den LUKS-Header (
luksHeaderBackup). Wenn der Header durch einen Disk-Fehler beschädigt wird, sind die Daten verloren, selbst wenn Sie das Passwort kennen. - Wahl: Nutzen Sie für Cloud-VMs lieber die Verschlüsselung des Cloud-Providers (EBS Encryption etc.), um den Boot-Prozess nicht zu verlangsamen.
# Anhang: Cheatsheet
| Aufgabe | SUSE / CLI Befehl |
|---|---|
| Header Dump | cryptsetup luksDump /dev/sda2 |
| Partition öffnen | cryptsetup open /dev/sda2 mydisk |
| Partition schließen | cryptsetup close mydisk |
| Header Backup | cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file /root/header.bak |
| Passwort testen | cryptsetup -v open --test-passphrase /dev/sda2 |
| YaST Modul | yast2 disk |