Linux Home Ordner nachträglich mit LUKS verschlüsseln
In diesem Artikel erfahrt ihr, wie ihr euren Linux Home Ordner nachträglich mit LUKS verschlüsseln könnt. Das Verschlüsseln eines bereits bestehenden Home-Ordners unter Linux mit LUKS kann eine komplexe Aufgabe sein, die sorgfältig durchgeführt werden muss, um Datenverlust zu vermeiden. Wir erstellen zusammen eine neue verschlüsselte Partition und kopieren unsere Daten in das neue Verzeichnis. Danach binden wir die neue Partition automatisch beim Systemstart ein damit dies sofort verfügbar ist. Dies ist sinnvoll, wenn der Homeordner bei der Installation von Linux nicht verschlüsselt worden ist. Das Tutorial eignet sich auf für mehrere Benutzer auf dem System, die dann ihr eigenen verschlüsselten Home Ordner haben. Falls ihr nur einzelne geheime Ordner erstellen wollt, dann schaut mal hier vorbei.
Das Tutorial kommt ohne Live-Sticks und ohne neu Partitionierungen der Systemplatten aus, und ist somit eine anfängergfreundliche und denoch sichere Variante.
Vorbereitungen um den Linux Home Ordner mit LUKS verschlüsseln zu können
Wir spielen das aufsetzen des neuen Home Ordners anhand 2 Benutzern durch: Benutzer Wario und Benutzer Dario. Habt ihr nur einen Benutzer, dann lasst die Befehle für Dario einfach weg. Habt ihr mehrere Benutzer, dann fügt die Befehle hinzu mit einem weiteren Benutzer.
Backup erstellen: Vor allem anderen, erstellen wir zuerst ein Backup aller wichtigen Daten eures Home-Ordner. Das Risiko von Datenverlust ist real. Ihr könnt zum Beispiel Linux Timeshift verwenden, oder tut das von Hand mit einem USB Stick oder einem externen Laufwerk.
Da ihr keinen Zugriff auf den Homeordner anderer Benutzer habt, erstellt ihr ein Backup über die Befehlszeile auf einen Stick oder ein externes Laufwerk. Am besten verwendet ihr ein Laufwerk das mit ext4 vorher formatiert worden ist. Damit bleiben alle Berechtigungen und Gruppeneinstellungen eurer Ordner erhalten. kopiert euch den Inhalt des Homesordners mit dem Befehl:
sudo rsync -aAXv /home/wario /media/mario/home_backup
sudo rsync -aAXv /home/dario /media/mario/home_backup
Ersetzt mario mit eurem aktuellen Benutzer auf dem ihr arbeitet.
Cryptsetup und Authentifizerungsmodul installieren: installiert euch das pam_mount Authentifzierungsmodul mit:
sudo apt-get install cryptsetup
sudo apt update
sudo apt install libpam-mount
Temporären Benutzer erstellen: Erstellt euch einen temporären Benutzer damit wir mit diesem Arbeiten können, während wir die Home Ordner der Systembenutzer verschieben:
sudo adduser tempuser
sudo usermod -aG sudo tempuser
Verschlüsselten Home Ordner erstellen
Wechselt auf der Befehlszeile in den temporären Ordner mit:
su - tempuser
Erstellt ein neues Backup auf dem System mit welchem wir direkt arbeiten können:
sudo mkdir /home/wario_backup
sudo mkdir /home/dario_backup
und kopiert die Benutzerdaten erneut mit:
sudo rsync -aAXv /home/wario /home/wario_backup
sudo rsync -aAXv /home/dario /home/dario_backup
Erstellt eine LUKS-verschlüsselte Datei für Wario:
sudo dd if=/dev/zero of=/home/wario.luks bs=1M count=10240
** Bestätigt das löschen des Laufwerks mit YES**sudo cryptsetup luksFormat /home/wario.luks
**Wählt das selbe Passwort wie das Passwort des Benutzers für das automatische Einbinden während des Starts!**
sudo cryptsetup open /home/wario.luks crypt_home_wario
sudo mkfs.ext4 /dev/mapper/crypt_home_wario
Ändert die Grösse der fett markierten Zahl mit einem Wert eurer Wahl. 10240 entsprechen ca. 10GB Speicher!
Das erstellen des verschlüsselten Verzeichnisses kann eine Weile dauern, wartet ab bis ihr wieder auf der Befehlszeile seid:
Mountet das neue Dateisystem in ein temporäres Verzeichnis:
sudo mkdir /mnt/wario
sudo mount /dev/mapper/crypt_home_wario /mnt/wario
Kopiert die Daten aus dem temporären Backup in das gemountete Verzeichnis mit:
sudo rsync -aAXv /home/wario_backup/ /mnt/wario
Ändert die Berechtigungen nochmals sicherheitshalber korrekt mit:
sudo chown -R dario:wario /mnt/wario
Umount das verschlüsselte Volume:
sudo umount /mnt/wario
sudo cryptsetup close crypt_home_wario
Wiederhollt die Schritte für Dario:
sudo dd if=/dev/zero of=/home/dario.luks bs=1M count=10240
sudo cryptsetup luksFormat /home/dario.luks
sudo cryptsetup open /home/dario.luks crypt_home_dario
sudo mkfs.ext4 /dev/mapper/crypt_home_dario
sudo mkdir /mnt/dario
sudo mount /dev/mapper/crypt_home_dario /mnt/dario
sudo rsync -aAXv /home/dario_backup/ /mnt/dario/
sudo chown -R dario:dario /mnt/dario
sudo umount /mnt/dario
sudo cryptsetup close crypt_home_dario
Neue Home Partition automatisch einbinden
Eine gängige Praxis, um die Bequemlichkeit zu erhöhen und dennoch ein gewisses Sicherheitsniveau zu behalten, ist die Verwendung von PAM (Pluggable Authentication Modules). Es gibt ein PAM-Modul namens pam_mount
, das automatisch Home-Verzeichnisse beim Benutzerlogin mounten kann, sofern das Login-Passwort und das LUKS-Passwort identisch sind. Dies ermöglicht eine nahtlose Benutzererfahrung, da die Benutzer nicht zweimal ein Passwort eingeben müssen.
Es ist jedoch zu beachten, dass die Verwendung desselben Passworts für mehrere Dienste oder Zwecke (z. B. Anmeldung und Disk-Verschlüsselung) potenzielle Sicherheitsrisiken birgt. Wenn dieses Passwort in irgendeiner Weise kompromittiert wird, ist sowohl der Zugriff auf den Computer als auch der Zugriff auf die verschlüsselten Daten gefährdet. Es ist immer ein Balanceakt zwischen Sicherheit und Bequemlichkeit.
Konfigurieren von pam_mount
Bearbeitet die Datei /etc/security/pam_mount.conf.xml
mit einem Texteditor eurer Wahl, z.B.:
sudo nano /etc/security/pam_mount.conf.xml
Fügt direkt nach <pam_mount> die Konfigurationszeilen für eure LUKS-verschlüsseltes Laufwerke hinzu:
<volume user="wario" path="/home/wario.luks" mountpoint="/home/wario" options="defaults" />
<volume user="dario" path="/home/dario.luks" mountpoint="/home/dario" options="defaults" />
Jetzt sind wir soweit fertig und loggen uns aus dem temporären Benutzer aus mit exit
und entfernen den Benutzer mit:
sudo deluser tempuser
sudo rm -rf /home/tempuser
Neustart und Überprüfung
Starte das System neu:
sudo reboot
Meldet euch mit den Benutzern an, und überprüft, ob die Home-Ordner korrekt gemountet wurden sind und der Inhalt eurer Daten vorhanden ist.
Falls alles in Ordnung ist, könnt ihr die backup Ordner löschen:
sudo rm -rf /home/wario_backup
sudo rm -rf /home/dario_backup
Hinweis für Mehrbenutzersysteme
Für ein Mehrbenutzersystem müsst ihr sicherstellen, dass jeder Benutzer seine eigene verschlüsselte LUKS-Datei hat und diese in der pam_mount.conf.xml
korrekt konfiguriert ist. Die Schritte müssen für jeden Benutzer wiederholt werden.
Fazit
Mit dieser Anleitung könnt ihr die Home-Ordner von mehreren Benutzern auf eurem System mit LUKS verschlüsseln und pam_mount
verwenden, um die Volumes automatisch beim Login zu mounten. Diese Methode erhöht die Sicherheit, da der Schlüssel für die Entschlüsselung aus dem Benutzerpasswort abgeleitet wird.