Zum Inhalt springen

Nachträgliche Verschlüsselung der Home-Partition in Debian GNU/Linux

17. Februar 2025 durch
Christian Lisec

In diesem Beitrag zeigen wir, wie du deine Home-Partition in Debian GNU/Linux nachträglich verschlüsseln kannst, indem du eine Live-CD wie SystemRescue einsetzt. Wir nutzen rsync, um das /home-Verzeichnis zu sichern und cryptsetup, um die Verschlüsselung einzurichten. Danach passen wir die Konfiguration in /etc/fstab und /etc/crypttab an, sodass automatisch eine Passwortabfrage für die Entschlüsselung der /home-Partition beim Starten von Debian erscheint.

ACHTUNG! Das Ausführen jeglicher Befehlszeilen in diesem Beitrag erfolgt auf eigene Gefahr und ist keine Garantie dafür, dass die Daten unbeschädigt bleiben!


Vorbereitungen

Überprüfe, ob die Anwendung "cryptsetup" installiert ist:
Die meisten neuen Distributionen haben cryptsetup und cryptsetup-initramfs bereits vorinstalliert. Bitte überprüfe dies mit deinem aktuellen Betriebssystem.

SystemRescue herunterladen und bootfähig machen:
Lade SystemRescue von der offiziellen Website herunter und erstelle ein bootfähiges Medium (USB-Stick oder CD).

Backup erstellen
Stelle sicher, dass du ein vollständiges Backup aller wichtigen Daten hast. Beispielsweise mit Clonezilla via SystemRescue.


Anleitung

1. Booten von der SystemRescue-Live-CD

Starte deinen Computer von der SystemRescue-Live-CD.

2. Sichern des /home-Verzeichnisses

Verbinde ein externes Speichermedium, um dein /home-Verzeichnis zu sichern.

Finde heraus, welche Gerätebezeichnung das /home-Verzeichnis und das externe Speichermedium hat:

lsblk

sdX     259:5    0 500G  0 disk  

├─sdXX 259:6    0   50G  0 part # Root-Verzeichnis

├─sdX2 259:7    0     1G  0 part

├─sdX3 259:8    0     1G  0 part  

└─sdXY 259:9    0   448G  0 part # Home-Verzeichnis
sdX     259:5    0 500G  0 disk  

└─sdXZ 259:10   0 500G  0 part # Externes Speichermedium

Führe die folgenden Schritte im Terminal der Live-Umgebung aus:

mkdir /mnt/original_home
mount /dev/sdXY /mnt/original_home # Ersetze sdXY durch das Quellmedium
mkdir /mnt/backup_home
mount /dev/sdXZ /mnt/backup_home  # Ersetze sdXZ durch das Zielmedium
rsync -aX /mnt/original_home/ /mnt/backup_home/
umount /mnt/original_home

3. Einrichten der Verschlüsselung auf der Home-Partition

Es ist zu empfehlen, dass du mit der Anwendung GParted eine zusätzliche Partition erstellst und diese für die Formatierung mit Cryptsetup einsetzt, sodass die originale /home-Partition unberührt bleibt. Aus Konformitätsgründen formatieren bzw. überschreiben wir direkt die Daten der originalen /home-Partition.

Ersetze /dev/sdXY mit dem korrekten Gerätenamen deiner Home-Partition.

  1. Verschlüsselung einrichten:
    cryptsetup luksFormat /dev/sdXY
    cryptsetup open /dev/sdXY encrypted_home
    
  2. Dateisystem erstellen:
    mkfs.ext4 /dev/mapper/encrypted_home

4. Rücksicherung des /home-Verzeichnisses

  1. Neue Partition einhängen:
    mkdir /mnt/new_home
    mount /dev/mapper/encrypted_home /mnt/new_home
    
  2. Daten zurückkopieren:
    rsync -aX /mnt/backup_home/ /mnt/new_home/
    umount /mnt/new_home
    cryptsetup close encrypted_home

5. Anpassen von /etc/crypttab und /etc/fstab

Beim Startvorgang wird /etc/crypttab zuerst gelesen und entsprechend die Entschlüsselung eingeleitet, danach wird die entschlüsselte Partition durch /etc/fstab mit dem Betriebssystem eingebunden.

  1. Root-Partition einhängen, worin die Konfigurationsdateien /etc/crypttab und /etc/fstab vorhanden sind:
    mkdir /mnt/root
    mount /dev/sdXX /mnt/root  # Ersetze sdXX durch die Root-Partition
    
  2. UUID der /home-Partition herausfinden:
    blkid /dev/sdXY
    /dev/sdXY: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="ext4"
  3. Eintrag in /etc/crypttab hinzufügen:
    Öffne die Datei mit einem Editor:
    nano /mnt/root/etc/crypttab
    
    Füge folgende Zeile hinzu:
    encrypted_home UUID=123e4567-e89b-12d3-a456-426614174000 none luks
    
  4. Eintrag in /etc/fstab hinzufügen:
    Öffne die Datei mit einem Editor:
    nano /mnt/root/etc/fstab
    
    Füge folgende Zeile hinzu:
    /dev/mapper/encrypted_home /home ext4 defaults 0 2

6. Erstellen eines Header-Backups mit cryptsetup

Im Falle von Problemen mit deiner verschlüsselten Partition solltest du ein Backup des Headers erstellen. Dies kann helfen, Datenverluste zu vermeiden.

Header-Backup mit cryptsetup anlegen:
Verwende den folgenden Befehl, um das Header-Backup zu erstellen. Ersetze /dev/sdXY durch deine tatsächliche verschlüsselte Partition und passe den Pfad der Backup-Datei entsprechend an:

cryptsetup luksHeaderBackup /dev/sdXY --header-backup-file luks-header-backup.bin

7. Neustart

Entferne die Live-CD und starte neu:

reboot

Wenn alles korrekt eingerichtet ist, sollte das System automatisch die verschlüsselte Partition mit einer Passwortabfrage öffnen und /home bereitstellen.

Christian Lisec 17. Februar 2025
Diesen Beitrag teilen