Verschlüsseltes System mit Debian GNU/Linux aufsetzen

25. Mai 2019 | #debian #linux #verschlüsselung #sicherheit

Eigentlich hatte ich diesen Schritt schon ewig vor mir hergeschoben: Linux nur noch auf verschlüsselten Datenträgern zu betreiben.

Selbst wenn man keine Hausdurchsuchungen fürchten muss, spricht einiges für Festplattenverschlüsselung: Diebstahl des mobilen Rechners oder einfach die Denke, dass unverschlüsselter Datenspeicher im Grunde nicht viel besser sind als unverschlüsselte Kommunikation.

Rahmenbedingungen im folgenden Beispiel:

  • Home- und Wurzelverzeichnis sollen bitteschön getrennt voneinander liegen.
  • Einiges spricht auch für einen verschlüsselten Swap, auch wenn RAM mittlerweile meist reichlich zur Verfügung steht.
  • Zum Einsatz soll Debian GNU/Linux kommen. Die Anleitung hier bezieht sich auf Debian 9 („Stretch"), sollte aber für Version 10 („Buster") praktisch uneingeschränkt ebenso gelten.

Problem hierbei: Die offizielle Debian-Installationsanleitung ist sehr allgemein und wenig praxisnah gehalten. Dazu kommt, dass der Partitionsmanager des Installers leider nicht besonders intuitiv gestaltet und meine Versuche, die Partitionen auf eigene Faust anzulegen, zunächst kläglich gescheitert sind.

Die folgende Schritt-für-Schritt-Anleitung stammt von Stackexchange und ist für das eben beschriebene Szenario ideal geeignet. Deshalb sei sie hier als Gedankenstütze und übersetzte und bebilderte Version gegen etwaiges Vergessen des Internets wiedergegeben:

  1. Falls noch nicht geschehen, die Festplatte vorbereiten. Der zu verschlüsselnde Bereich sollte unformatiert sein – das lässt sich am bequemsten mit einem beliebigen Live-Medium und GParted bewerkstelligen.

  2. Anschließend das Debian-Installationsmedium einlegen und den Rechner neu starten. Die Installationsroutine anwerfen (ob grafisch oder nicht spielt keine Rolle). Den ersten Schritten folgen (Netzwerkverbindung aufbauen, Root-Passwort definieren usw.) und dann angeben, dass man manuell partitioneren möchte

  3. Eine primäre Partition von etwa 1 GB Größe anlegen. Diese als /boot/ verwenden und den Haken für bootable setzen.

    Diese Partition wird unverschlüsselt bleiben und Platz für mehrere Kernelversionen bereithalten. Das ist ein Zugeständnis, da es ansonsten noch einige weitere Hürden zu überwinden gibt (GRUB müsste den verschlüsselten Kernel laden; ggf. gelten besondere Anforderungen in Sachen EFI/UEFI). Andererseits: Wenn dir jemand einen Kernel mit integriertem Keylogger unterschiebt, ist das Kind schon an ganz anderer Stelle in den Brunnen gefallen.

  4. Die Option Verschlüsselte Partitionen konfigurieren ansteuern:

    1. Es erscheint eine Liste aller Partitionen: Hier den gesamten unformatierten Bereich auswählen und „weiter" klicken.
    2. Dann die Verschlüsselungskonfiguration überprüfen und nach Geschmack anpassen (es spricht nichts gegen die Voreinstellungen – wenn man es selbst nicht besser weiß, also am besten nichts ändern).
    3. Im nächsten Schritt bietet der Installer an, den gewählten Bereich mit Zufallszahlen zu überschreiben, um das Wiederherstellen alter unverschlüsselter Daten zu erschweren. Das dauert je nach Größe der Partition etwas länger, sollte aber logischerweise nicht übersprungen werden.
    4. Zum Schluss noch eine sichere Passphrase festlegen, mit der das System zukünftig beim Start entschlüsselt wird. Diese soll bitteschön, sicher sein, nirgendwo notiert und auf keinen Fall vergessen werden.

    (Eigentlich offensichtlich, aber ein Gedanke noch: Wenn du gedenkst, die Passphrase auch betrunken und/oder in der rumpeligen Regionalbahn noch unfallfrei einzutippen, sieh am besten von allzu wilden Sonderzeichen-Eskapaden ab. Du wirst diese Zeichenkette noch viele, viele Male eintippen müssen.)

  5. Als nächstes wähle „Logical Volume Manager konfigurieren und dann „Volume-Gruppe erstellen". Gib der Volume-Gruppe einen Namen, meinetwegen vgdebian (der Name spielt in der späteren Benutzung keine allzu große Rolle mehr). Im nächsten Dialog wähle die verschlüsselte Partition – sie heißt wahrscheinlich irgendwas wie /dev/mapper/sda5_crypt und wird im nächsten Schritt für die verschiedenen Einsatzzwecke unterteilt.

  6. Wir haben jetzt einen großen verschlüsselten Bereich auf der Festplatte, den es jetzt sinnvoll zu unterteilen gilt – mit „logischen Volumes":

    Für jeden späteren Einsatzzweck (z.B. Wurzelverzeichnis, /home/ und swap) wähle den Schritt „Logisches Volume erstellen". Wähle dann die in Schritt 4 benannte Volume-Gruppe (also in diesem Beispiel vgdebian). Vergib als nächstes einen sinnvollen Namen für das logische Volume (also sowas wie root, home, swap usw.) und definiere die Größe in GB.

    Wenn alle logischen Volumen angelegt sind, wähle fertigstellen.

  7. Nachdem der verschlüsselte Festplattenspeicher sinnvoll unterteilt ist, müssen wir dem Installer noch mitteilen, welches logische Volume wofür verwendet werden soll:

    Wähle der Reihe nach die eben angelegten logischen Volumes aus und definiere den jeweils gewünschten Einhängeort (also etwa /, /home/, swap) – die in Schritt 5 vorgenommene Benennung hilft dabei, die Logischen Volumes (z.b. „LV root" ihrem korrekten Zweck zuzuordnen.

    Jedem logischen Volume muss außerdem ein Dateisystem zugeordnet werden. Ich will keinen Glaubenskrieg lostreten, aber wer unsicher ist, ist mit Ext4 gut beraten.

  8. Und fertig! Im nächsten Schritt wird das System installiert und nach einem Neustart (nicht vergessen, das Live-Medium zu entfernen!) wirst du nach deiner vorhin definierten Passphrase gefragt, um das System zu starten. Und wenn in Schritt 5 Swap-Volume angelegt wurde, sollte sogar der Ruhezustand (hibernate) funktionieren.