linux-security security encryption ecryptfs file-management privacy

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