eCryptfs: Stacked Filesystem Encryption (Artikel 321)
Implementierung von Verzeichnis-Verschlüsselung mit eCryptfs. Erfahren Sie den Umgang mit verschlüsselten Home-Verzeichnissen und den Schutz sensibler Daten ohne Re-Partitionierung.
# eCryptfs: Transparente Verschlüsselung auf Dateiebene
TL;DR / Management Summary Während LUKS (Artikel 320) ganze Partitionen schützt, arbeitet eCryptfs als “Stacked Filesystem” direkt auf Verzeichnisebene. Es legt eine verschlüsselte Schicht über einen bestehenden Ordner. Das Besondere: Jede Datei wird einzeln verschlüsselt. Dies ist ideal, wenn man kein System-weites FDE nutzen kann, nur spezifische Home-Verzeichnisse schützen will oder Cloud-Speicher (z.B. Dropbox/Nextcloud) lokal absichern möchte.
# 1. Einführung & Architektur
Verschlüsselung ohne Partitionierung.
eCryptfs benötigt keine freien Partitionen oder LVM-Volumes. Es nutzt den bestehenden Speicherplatz und speichert die verschlüsselten Daten als normale Dateien ab.
# Das Schichtenmodell (Mermaid)
graph TD
A[Application: Read File] --> B[VFS Layer]
B --> C[eCryptfs Layer: Decrypt in RAM]
C --> D[Physical Filesystem: Ext4/XFS]
D --> E[Stored Encrypted Files: /home/.user/...]
subgraph "The Secret"
F[Key: User Passphrase] --> C
end
# 2. Einrichtung: Verzeichnis verschlüsseln
Vom Ordner zum Tresor.
# Schritt 1: Pakete installieren
sudo apt install ecryptfs-utils # Debian/Ubuntu
sudo zypper install ecryptfs-utils # SLES
# Schritt 2: Manueller Mount
Wir verschlüsseln den Ordner /data/private.
mkdir /data/private
sudo mount -t ecryptfs /data/private /data/private
# Der Assistent fragt nach:
# 1. Passphrase
# 2. Cipher (Standard: aes)
# 3. Key Byte Length (Standard: 16)
# 4. Plaintext Passthrough (Standard: n)
# 3. Home-Directory Verschlüsselung
Der klassische Weg.
Unter Ubuntu/Debian war es lange Standard, Home-Verzeichnisse beim Anlegen zu verschlüsseln.
# Erstellt einen neuen User mit verschlüsseltem Home
sudo adduser --encrypt-home secrets-user
Beim Login wird das Home-Verzeichnis automatisch via PAM (Artikel 317) entschlüsselt.
# 4. Day-2 Operations: Backup von eCryptfs
Daten sichern, ohne sie zu sehen.
Ein großer Vorteil von eCryptfs ist, dass man die verschlüsselten Dateien sichern kann, ohne die Passphrase zu kennen.
- Sichern Sie einfach das Verzeichnis, in dem die Daten physisch liegen (oft unter
/home/.ecryptfs/). - Vorteil: Der Backup-Server sieht niemals den Klartext der Dateien.
# 5. Troubleshooting & “War Stories”
Wenn der Mount-Point leer bleibt.
# Story 1: “Der hängende PAM-Mount”
Symptom: Ein User loggt sich ein, sieht aber keine Dateien in seinem Home. ls -a zeigt nur zwei Dateien: README.txt und Access-Your-Private-Data.desktop.
Ursache: Die Passphrase in eCryptfs stimmt nicht mehr mit dem System-Passwort des Users überein (z.B. nach einem manuellen Passwort-Reset durch Root via passwd).
Lösung: Der User muss das Passwort manuell mit ecryptfs-rewrap-passphrase synchronisieren oder der Admin muss das alte Passwort kennen.
# Story 2: “Das Dateinamen-Längen Limit”
Symptom: Ein Admin versucht, eine tiefe Ordnerstruktur in ein eCryptfs-Volume zu kopieren. Der Vorgang bricht mit Filename too long ab, obwohl die Pfade auf Ext4 funktionierten.
Ursache: eCryptfs verschlüsselt auch die Dateinamen. Ein langer Klartext-Name wird durch die Verschlüsselung und Base64-Kodierung noch länger und sprengt das 255-Zeichen Limit des darunterliegenden Dateisystems.
Lösung: Nutzen Sie kürzere Dateinamen oder verzichten Sie auf die Option Enable filename encryption, falls die Pfadnamen nicht geheimhaltungsbedürftig sind.
# 6. Fazit & Empfehlung
- Wahl: Nutzen Sie eCryptfs für spezifische Projektordner auf Shared-Systemen.
- Performance: eCryptfs hat einen höheren CPU-Overhead als LUKS, da jeder Datei-Metadaten-Zugriff eine Entschlüsselung triggert.
- Alternative: Schauen Sie sich für modernere Setups fscrypt (nativer Kernel-Support für Ext4/F2FS) oder Gocryptfs an.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Ordner mounten | mount -t ecryptfs <src> <dest> |
| Mount prüfen | `mount |
| Home manuell laden | ecryptfs-mount-private |
| Passphrase ändern | ecryptfs-rewrap-passphrase |
| Recovery Key sehen | ecryptfs-unwrap-passphrase |
| Verschlüsselte Files | find /home/.ecryptfs/ -type f |
| Unmount | umount /path |