Home-Partition mit LUKS verschlüsseln und bei Login automatisch einbinden

Foto: © Dieter Beck / Fotolia.com

Foto: © Dieter Beck / Fotolia.com

Linux bietet viele Möglichkeiten einer kompletten oder lediglich partielle Verschlüsselung von Betriebssystem und Dateien. LUKS (dm-crypt) kann man dabei als die Standardmethode bezeichnen um eine Vollverschlüsselung des Betriebssystems durchzuführen. Es lässt sich jedoch auch für die Verschlüsselung einzelner Datenpartitionen nutzen. Eine Teilverschlüsselung ist dabei immer risikobehaftet, da potenziell sensible Daten auf nicht-verschlüsselten Bereichen der Festplatte abgelegt werden können.

LUKS, eCryptFS & Andere

Sobald man sich entschieden hat Betriebssystem und Daten durch eine Verschlüsselung zu schützen steht man vor der Qual der Wahl zwischen verschiedenen Methoden. Im Zweifelsfall sollte man sich immer für die Vollverschlüsselung von Betriebssystem und Datenpartitionen entscheiden. Sofern nur die Benutzerdaten verschlüsselt werden sollen kann man auch eCryptFS einsetzen. Dies ist ggf. auf zusätzlich zur Verschlüsselung des Betriebssystems mittels LUKS sinnvoll, um bei Mehrbenutzersystemen die einzelnen Benutzer gegeneinander abzuschirmen.

In manchen Fällen kann es jedoch notwendig sein lediglich die Datenpartition mittels LUKS zu verschlüsseln. Dies mag z.B. sinnvoll sein, wenn man die Möglichkeiten von Btrfs vollständig ausreizen will. Um über GRUB von Btrfs-Snapshots starten zu können darf das System keine LVM-Partitionierung haben, die gegenwärtig jedoch bei der Verschlüsselung des gesamten Betriebssystems immer zum Einsatz kommt. Datensicherheit muss hier gegen die Stabilität des Betriebssystems im laufenden Betrieb abgewogen werden. eCryptFS als verbreitete Alternative zur Benutzerdatenverschlüsselung hat jedoch auf älteren Systemen gravierende Geschwindigkeitseinbußen bei Dateioperationen mit vielen Dateien zur Folge und kommt deshalb manchmal nicht infrage.

Partitionierung und Verschlüsselung

Eine nachträglich Verschlüsselung einer Home-Partition ist zwar grundsätzlich möglich, setzt aber gute Kenntnisse im Umgang mit Linux voraus. Die Schlagwörter wären hier manuelle Partitionierung, rsync und chroot. Wer sich auf diesem Niveau mit Linux auskennt, braucht diese Anleitung nicht, weshalb dieser Vorgang hier nicht berücksichtigt wird. Es sei lediglich darauf hingewiesen, dass eine komplette Neuinstallation nicht absolut notwendig ist.

Die Frage welche Art von Verschlüsselung man wählt und welche Dateisysteme man der Partitionierung zugrunde legt stellt sich jedoch meist im Rahmen der Installation. Alle großen Linux-Distributionen mit vollwärtigen Installationsroutinen (daher nicht Ubuntu!) bieten die Möglichkeit die Home-Partition bei der Installation zu verschlüsseln. Bei OpenSUSE und Fedora/RedHat muss hierzu lediglich während der Partitionierung eine Änderung der Home-Partition vorgenommen und die entsprechende Option ausgewählt werden. Bei Debian muss im Rahmen der manuellen Partitionierung ein verschlüsseltes Laufwerk konfigurierung und nach /home eingebunden werden.

Die LUKS-Partition mittels PAM automatisch einbinden

Nach der Installation erscheint nun jedoch eine Passwortabfrage für die Home-Partition während des Boot-Prozesses. Zusammen mit dem Benutzerlogin ergibt diese eine nervige doppelte Passwortabfrage. Dies lässt sich jedoch umgehen, indem die Partition erst durch den Benutzerlogin mittels PAM (Pluggable Authentication Modules) eingebunden wird. Voraussetzung ist, dass Benutzerkenntwort und LUKS-Passwort identisch sind.

In einem ersten Schritt muss hierfür das notwendige Paket installiert werden.

  • Debian

    # apt-get install libpam-mount
  • Ubuntu & Derivate

    $ sudo apt-get install libpam-mount
  • openSUSE

    # zypper in pam_mount

Anschließend muss festgelegt werden welche Partition eingebunden werden soll. Hierzu bearbeitet man mit einem Editor seiner Wahl, z.B. nano, die Datei /etc/security/pam_mount.conf.xml

Vor der Zeile "<mkmountpoint enable="1" remove="true" />" fügt man folgende Passage ein:

<volume user="USERNAME" fstype="auto" path="/dev/sdaX" mountpoint="/home" options="fsck,noatime" />

sdaX ist dabei durch die Nummer der verschlüsselten Partition zu ersetzen, sowie USERNAME durch den Benutzername.

Information

Die folgende Änderung entfällt bei Debian und Ubuntu, da diese Distributionen die PAM Module automatisch verwalten.

Anschließend muss das PAM-Modul für den jeweiligen Loginmanager noch bearbeitet werden. Bei einem aktuellen Plasma 5-Desktop ist dies in der Regel sddm.

# nano /etc/pam.d/sddm

Hier fügt man ganz am Schluss die beiden folgenden Zeilen ein:

auth optional pam_mount.so

session optional pam_mount.so

Bei einem Neustart würde das System allerdings immer noch versuchen die Home-Partition während des Bootvorgangs einzubinden, weshalb trotzdem eine doppelte Passwortabfrage erfolgen würde. Man muss deshalb noch die Einbindung der Partition modifizieren.

# nano /etc/fstab

Hier muss man dem System mittels derr Option noauto mitteilen, dass die Homepartition nicht automatisch eingebunden werden soll.

/dev/mapper/sda3_crypt /home           xfs     defaults,noauto        0       0

Bei Debian/Ubuntu-Systemen muss zusätzlich noch die Datei /etc/crypttab bearbeitet werden.

# nano /etc/crypttab

Hier reicht es die vorhandene Zeile auszukommentieren indem man eine # voranstellt.

Ein abschließender Neustart sollte ohne Passwortabfrage zum Loginbildschirm führen. Der Login erfolgt nun ggf. leicht verzögert, weil das System im Hintergrund erst die Partition einbinden muss.

Sollten bei der Einrichtung Probleme auftreten, z.B. durch abweichende Distributionseinstellungen oder falsche Partitionsangaben reicht es die Partition beim Bootvorgang wieder einzubinden (Änderung fstab / crypttab) um sich wieder Zugang zum System zu verschaffen.

Über

[Mer]Curius bietet Informationen zur technischen Dimension des Datenschutz im digitalen Bereich. Neben permanent aktualisierten Artikeln zu Betriebssystemen, Verschlüsselung und Kommunikationsabsicherung werden im Blog aktuelle Trends präsentiert und kommentiert.

Top