LVM Installation auf LUKS Basis – Installation und manuelle Partitionierung

 

 Grundlagen

Installation

Sonstiges

Verwendungszweck Installationsmedium Backups
Voraussetzungen Einrichtung der Partitionen Partition manuell einhängen
Devicemapper – DM-Crypt Einrichtung des LVM LVM Partitionen manuell einhängen
LUKS-Erweiterung OS Installation auf LUKS in LVM Grub reparieren / neu installieren (LUKS)
Alternativen LVM GUI ( Partitionmanager )
Partitionen und Laufwerke DM-Crypt Container / Partition ZuluCrypt ( GUI / CLI Manager )
Datenverschlüsslung im Überblick
———————————————- ———————————————- ———————————————-

Verwendungszweck

Der Zugriff auf Daten wird über das Betriebssystem und die dadurch definierten Dateirechte geregelt. Diese Rechte greifen allerdings nur, wenn das System aktiv ist. Hat eine Person physischen Zugriff auf den Rechner, können diese Schutzmechanismen leicht umgangen werden. Sollen Daten in dem Fall geschützt werden, sind weitere Maßnahmen nötig.

Eine Lösung für dieses Problem heißt Kryptografie. Daten werden nicht mehr direkt, sondern nur noch verschlüsselt auf der Festplatte gespeichert. Hat jemand Zugriff auf den Rechner, braucht er so trotzdem noch den Schlüssel oder das Passwort, um die Daten auf der Festplatte zu entschlüsseln. Der Aufwand, den Schlüssel oder das Passwort durch Ausprobieren herauszufinden, ist dabei so groß, dass selbst die Chance, durch jahrelanges systematisches Probieren den passenden Schlüssel zu finden, astronomisch klein bleibt.


Zurück zur Übersicht


Voraussetzungen

Debian wie auch die meisten anderen Linux basierenden Betriebssysteme beinhalten bereits alle Softwarepakete, um eine Verschlüsselung zu nutzen:

cryptsetup und dmsetup
Damit werden verschlüsselte Partitionen eingerichtet und später entsperrt/gesperrt. Ein Initspkript, um dieses beim Booten automatisch zu erledigen, ist ebenfalls enthalten.
ein dm-Crypt kompatibler Kernel
Die von Debian u.a. Distributionen mitgelieferten Kernel enthalten alle benötigten Module. Falls man einen eigenen Kernel verwenden möchte, muss dieser über Unterstützung für den Devicemapper, dm-crypt und die verwendeten Verschlüsselungs- und Hashalgorithmen (z.B. AES, SHA-1) verfügen.
initramfs-tools
Falls die Root-Partition selbst verschlüsselt wird, muss eine separate, unverschlüsselte /boot-Partition mit Bootloader, Kernel und initrd anlegt werden. Die initramfs-tools unterstützen dm-crypt und können den größten Teil der erforderlichen initrd-Konfiguration automatisch erledigen.

Zurück zur Übersicht


Devicemapper – DM-Crypt

Der Linux-Devicemapper ist eine Softwareschicht (seit Kernel 2.6 fest implementiert), die zwischen der Dateisystemebene und den darunterliegenden Geräten und Partitionen liegt. Der Devicemapper kann nicht nur zur Verschlüsselung verwendet werden, sondern bildet auch die Grundlage für das Software Raid und den Logical Volume Manager (LVM).

Der Devicemapper verknüpft vorhandene Partitionen mit virtuellen Blockgeräten. Im Betrieb, zum Beispiel beim Mounten, greift man auf die virtuellen Geräte zu, alle Zugriffe werden dann durch den Devicemapper geleitet. Bei DM-Crypt findet an dieser Stelle die Verschlüsselung und Entschlüsselung statt. Beim Erstellen der Verknüpfung zu einer verschlüsselten Partition wird das Passwort oder der Schlüssel angegeben. Diesen behält der Devicemapper im Speicher und kann so ohne weiteren Eingriff alle Zugriffe abwickeln, bis die Partition wieder gesperrt oder das System neu gestartet wird. Es können auch mehrere Funktionen des Devicemappers kombiniert werden. So ist es möglich, RAID-Geräte oder einzelne Logical Volumes zu verschlüsseln, ein komplettes LVM auf einem RAID oder mehrere verschlüsselte Partitionen anzulegen etc.

DM-Crypt ist ein Kryptographie-Modul des Device Mappers im Linux-Kernel, das die Möglichkeit biete, die im Linux-Kernel implementierten Verschlüsselungsalgorithmen zu nutzen. Mit dm-crypt können Daten verschiedener blockorientierter Geräte mit verschiedenen Algorithmen ver- und entschlüsselt werden. In den meisten Fällen Partitionen, Festplatten oder logische Laufwerke (LVM). Dazu wird eine zusätzliche Ebene zwischen dem Dateisystem und dem Datenträger aufgebaut. Daten werden so vor dem Speichern auf dem Speichermedium erst durch dm-crypt verschlüsselt und dann in verschlüsselter Form auf das Speichermedium geschrieben. Dm-crypt eignet sich so zur Festplattenverschlüsselung (Partitionen, ganze Festplatten, aber auch alle anderen blockorientierten Geräten wie etwa logische Laufwerke (LVM) oder loop devices). Dm-crypt unterstützt eine Vielzahl von Verschlüsselungsalgorithmen, da es die Crypto API des Linuxkernels nutzt.

Der Verschlüsselungsalgorithmus, die Größe des Schlüssels und viele weitere Dinge, die die Verschlüsselung beeinflussen, können selber festgelegt werden. Nähere Informationen zu den verfügbaren Parametern gibt es auf der Seite von dm-crypt. Informationen über die Geschwindigkeit der einzelnen Algorithmen sind hier übersichtlich dargestellt.


Zurück zur Übersicht


LUKS-Erweiterung

LUKS (das Linux Unified Key Setup) ist eine Erweiterung für verschlüsselte Partitionen. Bei LUKS kann, im Gegensatz zu anderen Verfahren wie z. B. Cryptoloop, das Passwort oder der Schlüssel der Partition geändert werden, ohne die Partition neu verschlüsseln zu müssen. Zudem kann man mehrere gleichberechtigte Passwörter und Schlüssel für eine Partition verwenden.

Um das zu ermöglichen besitzt eine LUKS-Partition einen speziellen Anfangsbereich. Während bei cryptoloop der Datenschlüssel für die Partition direkt aus dem Passwort abgeleitet wurde, ist er bei LUKS unabhängig davon. Eine LUKS-Partition verfügt über 8 Speicherplätze, in denen der Schlüssel gesichert wird – jeweils chiffriert durch ein Passwort oder einen Benutzerschlüssel. Auf diese Weise kann man zum Beispiel das Passwort ändern, ohne den Datenschlüssel verändern zu müssen – es muss nur der Datenschlüssel, chiffriert durch das neue Passwort, im Anfangsbereich der Partition gespeichert werden (ausführliche Infos).


Zurück zur Übersicht


Alternativen (GUI)

Zulucrypt ( Linux )
ZuluCrypt ist ein grafisches Frontend für die Nutzung der Verschlüsselungtechniken PLAIN dm-crypt, LUKS-, TrueCrypt- und VeraCrypt-Volumes. Dabei können sowohl einzelne Dateien als auch ganze Laufwerke und Partitionen ver- und entschlüsselt werden. Zusätzlich können Änderungen der jeweiligen Sicherheits-Schlüssel und Backups der Header durchgeführt werden. Mit zuluMount können verschlüsselte Volumes eingebunden werden
VeryCrypt (Linux / Windows OSX)
Die Besonderheit dieser Verschlüsselungssoftware besteht darin, dass die Software auf den 3 bekanntesten Betriebssystemen (Linux, Mac, Windows) läuft. Damit kann man verschlüsselte Partitionen oder Container unter allen Systemen verwenden.
Glaubhafte Abstreitbarkeit bietet Veracrypt mit der Möglichkeit der sogenannten „Hidden Volumes“ (versteckte Container). Die versteckten Container, die in dem freien und normalerweise nicht genutzten Speicherplatz innerhalb des Hauptcontainers erstellt werden, sind für einen außen stehenden Betrachter nicht erkennbar. Der äußere und der darin versteckte Container sind jeweils mit einem separaten Passwort zugänglich. Je nachdem, welches der beiden Passwörter eingegeben wird, wird der jeweilige Container entsperrt.

Alternativen ( CLI )

cryptoloop
Dieser Mechanismus existiert schon seit mehreren Jahren. Er verwendet den loopback-Treiber des Kernels, mit dem man auch Abbilddateien von Partitionen oder CDs (zum Beispiel ISO-Images) mounten kann. Cryptsetup kann auch heute noch mit diesem Format umgehen, es ist aber inkompatibel zu LUKS.
loop-aes
Die loop-aes-Software existiert ebenfalls schon lange und gilt als ausgereift. Sie wird zwar nicht vom Standardkernel unterstützt, Debian liefert aber vorgefertigte Pakete mit den Kernelmodulen sowie das loop-aes-source-Paket zum selberbauen. Zusätzlich muss man noch das Paket loop-aes-utils installieren. Auch wenn der Name anderes vermuten lässt, unterstützt loop-aes nicht nur den AES-Algorithmus, sondern als weitere Verfahren Blowfish, Twofish und Serpent. loop-aes wird als Alternative für dm-crypt/LUKS vom Debian-Installer angeboten.

Zurück zur Übersicht


Einrichtung der Partitionen und Laufwerke

Der Debian Installer / Ubuntu Minimal/Netzwerk Installer erlaubt es, bei Neuinstallationen das komplette System oder wahlweise einzelne Partitionen zu verschlüsseln. In der Standardeinstellung wird dabei LUKS mit dm-crypt verwendet, als Algorithmus kommt AES zum Einsatz. Der Pfad /boot darf nicht innerhalb der verschlüsselten Laufwerke liegen und muss auf einer unverschlüsselten Partition vorliegen damit der Bootloader (z.B. Grub) den Kernel und die für LUKS/dmcrypt benötigten Dateien laden kann. Es gibt unter anderem folgende Methoden für die Partitionierung:

normale Partitionen:

      • Vorteil: Keine weitere Komplexität durch LVM (Änderungen per GUI (Gparted) realisierbar).
      • Nachteil: weniger flexibel gegenüber Änderungen als LVM
Partition 1 => Laufwerk 1 / LV 1
Partition 2 => Laufwerk 2 / LV 2
Partition 3 => Laufwerk 3 / LV 3

 

verschlüsselte Laufwerke auf LVM:

      • Vorteil: Auf dem LVM/ der VG können neben verschlüsselten auch unverschlüsselte Laufwerke angelegt werden
      • Nachteil: Alle verschlüsselten Laufwerke müssen einzeln entsperrt werden
 
=> LVM LV 1 => Crypted Volume 1 (Passwort 1)
Physical Volume => LVM / VG => LVM LV 2 => Crypted Volume 2 (Passwort 2)
(Festplatte / Partition) => LVM LV 3 => Clear Volume 3 (kein Passwort)

 

LVM Laufwerke auf LUKS verschlüsselter Partition:

      • Vorteil: nur eine Partition muss entsperrt werden
      • Nachteil: im nun verwendeten Platz des LVMs können keine unverschlüsselten Partitionen mehr angelegt werden
=> LVM LV 1 (crypted via Luks DM-Crypt Passwort 1)
Physical Volume => LUKS => LVM / VG => LVM LV 2 (crypted via Luks DM-Crypt Passwort 1)
(Festplatte / Partition) (Passwort  1) => LVM LV 3 (crypted via Luks DM-Crypt Passwort 1)
 
 
Physical Volume:  Ein Physical Volume (PV) ist der eigentliche Datenspeicher eines LVMs. Ein PV kann eine
                                  Partition oder ein ganzes Laufwerk sein. Es ist auch möglich, sogenannte „Loop-Dateien“
                                  zu verwenden.
 
Volume Group:  Eine Volume Group (VG) ist eine Art Container für mindestens ein PV.
 
Logical Volume  :  Ein Logical Volume (LV oder auch Volume) ist im LVM Kontext für den Anwender eine Art
                                 Partition innerhalb einer Volume Group. Es ist nicht möglich, Logical Volumes außerhalb einer
                                 VG zu erstellen. Das LV kann wie eine normale Partition verwendet werden, d.h. es können
                                 Dateisysteme darauf angelegt werden und es kann gemounted werden.

Zurück zur Übersicht


Installation

Installationsmedium

Für eine Installation von Debian 12 auf Basis des Logical-Volume-Managers mit manuell konfigurierbaren Partitionen ist der CLI-Installer, da aktuell nur dieser Installer die Möglichkeit bietet, die LVM-Partitionen frei zu konfigurieren. Der CLI-Installer für Debian 12 ist über das CD/Image der Netzwerkinstallation verfügbar und enthält auch nur die für den CLI-Installer benötigten Dateien. Alle weiteren Softwarepakete werden aus dem Internet nachgeladen.

Das installierte System ist ein CLI-Basis-System ohne grafische Oberfläche. Am Ende der Installation wird ein Dialog zur Installation der für Debian 12 verfügbaren Desktopumgebungen geladen, um gegebenenfalls eine vollständige Desktopumgebung zu installieren. Somit ist das Netzwerkinstallationsimage als Basis-Image für alle Desktopumgebungen zu verstehen. Dies erfordert allerdings mindestens eine DSL-Anbindung an das Internet, da 1-3 Gigabyte während der Installation geladen werden. Im Gegensatz zur Installation mit Desktop-CDs/Images werden bei der oben genannten Installation die aktuellen Pakete installiert, und ein nachträgliches Aktualisieren des Betriebssystems nach der Installation entfällt (laufende Softwareupdates werden natürlich weiterhin ins System eingepflegt).

Das Image/Iso Datei wird auf CD gebrannt oder daraus ein bootfähiger USB Installationstick erstellt (Windows / Linux)


 Zurück zur Übersicht


Einrichtung der Partitionen

Eine nachträgliche Ergänzung oder Änderung der Partitionsparameter aus dem laufenden System ist nur möglich, wenn die zu bearbeitende Partition nicht eingehängt ist. Die Partitionstabelle (MBR/GPT) dagegen kann nicht geändert werden, ohne vollständigen Datenverlust aller auf der Festplatte befindlichen Daten. Daher erfordert die Installation auf einer verschlüsselten Partition eine etwas andere Vorgehensweise (s. Installation). Eine mit DM-Crypt verschlüsselte Partition wird von nahezu allen Linux System erkannt und kann, bis auf die Eingabe des Passwortes, genutzt werden wie normale Wechseldatenträger. Es gibt versch. Programme zur Verwaltung der Partitionen wie z.B. Gparted*³ und die Gnome Laufwerksverwaltung*³ oder rein Terminal-basiert wie z.B. fdisk/cfdisk*¹ oder gdisk/gfdisk*³ (s. Partitionierung).

*¹ nur MBR, kein GPT | *² nur GPT, kein MBR | *³ MBR  und GPT

 Zurück zur Übersicht


Einrichtung des LVM

Der LVM bietet die Möglichkeit, mehrere Partitionen logisch zusammenzufassen (Volume Group) und in diesem logischen Verbund neue „logische Partitionen“ (Logical Volume) anzulegen. Der Volume Group können dynamisch weitere Geräte sowie freier Speicherplatz hinzugefügt werden. Dadurch erreicht man eine höhere Flexibilität als mit einem klassischen Partitionierungsansatz. Dies ist vor allem interessant für verschlüsselte Dateisysteme, bei denen eine verschlüsselte Partition, die nur einen Schlüssel benötigt, verschiedene weitere Partition beinhaltet oder für Server, bei denen dynamisch wachsende Datenbestände berücksichtigt werden müssen. Für die Verwaltung des LVM gibt es grafische Programme wie die Verwaltung für logische Medien oder Terminal basierte Programme (s.a. www.thomas-krenn.com)


Zurück zur Übersicht


OS Installation auf LUKS in LVM

Die Installation auf ein verschlüsseltes Laufwerk mit einem Passwort ist z.Z. am einfachsten über den Logic Volume Manager zu realisieren. Hierzu wird eine verschlüsselte Partition erstellt und in dieser wird statt des Dateisystems dann eine weitere Schicht – der LVM – eingegliedert. Im LVM wiederum können dann verschiedene Partitionen angelegt werden, die nach der Entschlüsslung / Passworteingabe wie gewohnt genutzt werden können. Die Installation des Betriebssystems auf eine verschlüsselte Partition erfordert eine nicht verschlüsselte Bootpartition, da auf dieser die benötigten Dateien zum Entschlüsseln der LUKS Partition liegen.

  1. Booten der o.g. Netinstall Images via CD oder USB-Stick
  2. Erstellen einer Bootpartition
  3. Erstellen einer verschlüsselten LUKS Partition für LVM   // ** LUKS Partition muss erst initialisiert werden, um LVM in LUKS zu erstellen
  4. Verschlüsselte Partition für LVM vorbereiten (Verschlüsselung initialisieren)
  5. LVM Partitionen erstellen

Entfernte Schlüsseleingabe, um Serverpartition zu entsperren

Es gibt mit dem Programm Dropbear die Möglichkeit einen SSH-Server in die initrd Dateien, welche unter /boot liegen, zu implementieren. Dieser SSH Server wird noch VOR dem dm-crypt modul geladen. Somit ist die Systempartition via SSH entsperrbar und der Server kann den Bootvorgang nach dem Entsperren wie gewohnt fortsetzten. (Anleitung)


Zurück zur Übersicht


DM-Crypt Container / Partition manuell anlegen

Das manuelle Anlegen eines verschlüsselten Containers wird im Folgenden beschrieben:

Mit einem der folgenden Befehle wird ein 1 GiB (1024 MiB) großer Container mit dem Namen crypt_container_01 erzeugt:

** Das Erstellen des Containers mit dem Wert …0000… geht wesentlich schneller als mit durch Zufall generierte Werte
** bs Parameter :  kB  =1000 | K =1024 | MB =1000*1000 | M =1024*1024 | xB = 10³ = 1000|  xM = 2¹0 = 1024
** Image Größe = bs x count => 1M x 1024(0) = 1(0) GiB | 1M x 3072(0) = 3(0) GiB | 1M x 5120(0) = 5(0) GiB

Die Container werden jetzt über ein Loop-Device eingehängt. Dieser Befehl gibt zunächst ein freies Loop-Device zurück :

Durch das Loop-Device kann man die Datei wie eine normale Partition/Festplatte ansprechen und einhängen:

*  /dev/loop0 muss gegebenenfalls durch ein anderes freies Device ersetzt werden.

Nachdem der Container / die Partition erstellt wurde, wird diese/r nun mit cryptsetup initialisiert, der Algorithmus (siehe Manpage von cryptsetup) sowie das Passwort festlegt: folgende Abfrage mit YES beantworten ( GROSSBUCHSTABEN ! )

Jetzt kann man den Container mit cryptsetup öffnen. Der Parameter crypt_container_01 steht für den Namen, unter dem das Gerät unter /dev/mapper/ eingehängt werden soll. Wenn mehrere verschlüsselte Container verwendet werden, ist darauf zu achten, jedem Container eine eindeutige Bezeichnung zuzuweisen.

Das Erstellen, Verschlüsseln und Einhängen ist damit abgeschlossen und der Container muss jetzt nur noch mit einem Dateisystem formatiert werden (z.B. das ext4 Dateisystem)

Abschließend wird der LUKS Container geschlossen und ausgehängt

alternativ kann zum Ein- und Aushängen der Containerdatein der Befehl mount.crypt aus dem Programm libpam-mount verwendet werden

 Zurück zur Übersicht


Sonstiges

Backups

Header sichern
Um Informationen über die Partitionierung innerhalb des Containers und der Keyslots zu sichern, empfiehlt es sich, ein Backup vom LUKS-Header (außerhalb des verschlüsselten Containers) anzulegen. Wird dieses Backup entwendet, ist ein Zugriff auf den verschlüsselten Container trotzdem nur mit den zum Zeitpunkt des Backups erstellen Schlüsselinformationen möglich.  Ein gesicherter Header hängt von den Passwörtern ab, die gerade zu dem Zeitpunkt der Sicherung aktiv sind. Entsprechend ist es empfehlenswert, die Sicherung des Headers unter Verschluss zu halten und nach jeder Änderung am Gerät unmittelbar zu aktualisieren.

Zur Wiederherstellung wird folgender Befehl verwendet:

Nur bei der korrekten Angabe der Gerätedatei (in diesem Fall /dev/loop0) wird eine ca 2 MB große datei erzeugt.


Zurück zur Übersicht


LUKS Partition manuell einhängen

Die Partition kann nach Eingabe des Schlüssels mittels cryptsetup geöffnet werden. Dabei wird die entsperrte Partition als Device Mapper Gerätedatei unter /dev/mapper bereitgestellt.

Die Partition ist somit entschlüsselt und über den Device Mapper als Gerätedatei im System verfügbar (/dev/mapper/sda2_crypt ). Das Mounten erfolgt nun in typischer Linux Syntax:

Die Partition ist damit entsperrt. Alle Zugriffe auf /dev/mapper/sda2_crypt laufen nun durch den Device Mapper. Erfolgt ein Schreibzugriff auf sda2_crypt so werden die Daten erst durch LUKS verschlüsselt, bevor die Speicherung auf dem Device Mapper Gerät (/dev/mapper/sda2_crypt) erfolgt


Zurück zur Übersicht


LVM Partitionen manuell einhängen

Das Mounten von LVM Partitionen innerhalb eines LUKS verschlüsselten Gerätes funktioniert fast genau so wie das Mounten eines normalen LUKS Device. Der LVM ist neben dem Device Mapper eine weitere Instanz zwischen Daten und dem Dateisystem auf der Festplatte. Beim Entsperren der LUKS Partition wird der LVM direkt angeben:

Jetzt können die LVM Partionen innerhalb des LUKS Device wie gewohnt eingehängt werden :

Nach Abschluss aller Dateioperationen wird die Partition dann ausgehängt und anschließend wieder gesperrt :


Zurück zur Übersicht


Geräte beim Systemstart entsperren

Anstelle der manuellen Aktivierung und Deaktivierung von verschlüsselten Partitionen kann Cryptsetup eine automatische Entsperrung beim Systemstart ermöglichen. Hierzu genügt das Eintragen der entsprechenden Informationen in der Datei /etc/crypttab.

    • Der Name der Device-Mapper-Verknüpfung ( sda3_crypt )
    • Der Name der verschlüsselten Partition, hier ( sda3_crypt oder UUID=3de8fbf9-3f42-497b-828b-768bc9b46d3d )
    • Der Pfad zu einer Schlüsseldatei, oder bei Verwendung eines Passwortes stattdessen none
    • Angaben über die verwendete Verschlüsselung – da diese Informationen bei LUKS im Anfangsbereich der Partition gespeichert werden in diesem Fall einfach nur luks

Die komplette Zeile für das oben genannte Beispiel würde also so aussehen:

Beim nächsten Neustart entsperrt Cryptsetup automatisch die Partition und öffnet eine Eingabeprompt für Passwort. Um das automatische Einhängen beim Systemstart zu aktivieren, genügt ein Eintrag in der /etc/fstab, zum Beispiel:


Zurück zur Übersicht


Luks Partitionen mit Datei statt Passwort als Schlüssel entsperren (no root)

Alternativ kann eine Datei, z. B. auf einem USB-Stick, als Schlüssel verwendet werden. Im Gegensatz zur Verwendung von Passwörtern, die bei jedem Hochfahren für jede verschlüsselte Partition eingegeben werden müssen, entfällt bei Schlüsseldateien diese Eingabe. Es ist lediglich erforderlich sicherzustellen, dass auf den Schlüssel zugegriffen werden kann, beispielsweise indem der USB-Stick eingesteckt wird.

Für eine LUKS-Partition können bis zu acht Passwörter oder Schlüssel genutzt werden. Bestehende Partitionen, erstellt durch den Debian-Installer oder luksformat, lassen sich nachträglich mit einer Schlüsseldatei versehen. Die erforderlichen Schritte werden mit cryptsetup ausgeführt:

  1. Zuerst muss eine angemessene Schlüsseldatei erstellt werden, etwa eine vier Kilobyte große Datei.“

Als Nächstes muss der Schlüssel der LUKS-Partition hinzugefügt werden. Dabei wird das bestehende Passwort eingegeben und damit dann der Datenschlüssel dechiffriert. Dann wird er durch die Schlüsseldatei neu chiffriert und in einer freien Speicherstelle gesichert:

Nun kann testweise die Partition mit dem neuen Schlüssel statt des Passwortes entsperrt werden:

Damit kann die Partition ähnlich wie mit einem Passwort manuell entsperrt werden. Dieser Vorgang lässt sich auch über die crypttab automatisieren. Dazu wird in der Datei /etc/crypttab unter der Option key file der Pfad zur Schlüsseldatei angeben. Aus dem vorherigen Beispiel (Geräte beim Systemstart entsperren) wird somit:

Cryptsetup muss nun noch angewiesen werden, das Medium mit dem Schlüssel vor dem Verarbeiten der crypttab zu mounten. Hierfür ist ein Eintrag für das Medium in der /etc/fstab und der zugehörige Mountpunkt in /etc/default/cryptdisks erforderlich

Nach dem Entsperren aller verschlüsselten Partitionen wird das Medium automatisch wieder ausgehängt. Zur Sicherheit kann nun noch die initial ram disk neu gebaut werden:

Das Passwort kann auch weiterhin als Ersatz beibehalten werden. Ist der USB-Stick mit dem Schlüssel eingesteckt, fährt das System ohne Benutzereingaben hoch und entsperrt alle in der crypttab eingetragenen Partitionen selbstständig. Diese Konfiguration funktioniert für alle Partitionen außer der Root-Partition.


Zurück zur Übersicht


Luks Partitionen mit Datei statt Passwort als Schlüssel entsperren (root)

Da auf der root Partition die zum Entsperren notwendigen Programme liegen, sind hier einige weitere Schritte notwendig.

Es ist wichtig sicherzustellen, dass die initrd die erforderlichen Treiber für den USB-Stick enthält. Das automatische Mounten des Sticks über CRYPTDISKS_MOUNT und die fstab nicht, da die dafür benötigten Informationen nicht in der initrd vorhanden sind.

Es existiert jedoch eine Alternative. In der crypttab kann einem Laufwerk ein Keyscript zugewiesen werden, das den Schlüssel beschafft und ausgibt. Dieses Skript wird automatisch in die initrd übernommen, sofern es in der crypttab eingetragen ist. Es ist dafür verantwortlich, alle Schritte zum Erlangen des Schlüssels durchzuführen, einschließlich dem Laden der Treiber für den USB-Stick, dem Anlegen eines Mountpunkts, dem Mounten, der Ausgabe des Schlüssels und dem Aushängen des USB-Sticks. Das Skript wird außerhalb der initrd im laufenden Betrieb nicht benötigt und kann beispielsweise im Verzeichnis /root abgelegt werden. Hier ist ein Beispiel für ein solches Skript

Da cryptsetup den Schlüssel in der Standardausgabe des Skriptes erwartet, wird die Ausgabe aller anderen Programmaufrufe im Skript in die Fehlerausgabe umgelenkt (1>&2). Außerdem muss das Skript ausführbar sein.

Außerdem muss noch sichergestellt werden, dass die initrd alle nötigen Treiber enthält. update-initramfs fügt automatisch die Module für USB-Speicher hinzu. Die Module für das auf vielen USB-Sticks verwendete FAT-Dateisystem muss man aber ausdrücklich anfordern. Dazu werden in der Datei /etc/initramfs-tools/modules folgende Zeilen hinzugefügt:

Als vorletztes muss nun die crypttab angepasst werden:

Nun wird eine Kopie der alten initrd in /boot erstellt. Diese wird als Ersatz benötigt, falls das Entsperren der Root-Partition nicht klappt. Dann kann nämlich das System nicht hochgefahren werden. Startet man neu und verlangt von grub, statt der neuen die alte initrd zu verwenden, kann man die Root-Partition wieder mit dem Passwort entsperren und nach dem Hochfahren den Fehler beheben. Das geht wesentlich schneller als die Benutzung einer Live-CD für diesen Zweck. Als Letztes wird dann eine neue initrd erstellt:

Nach einem Neustart wird cryptsetup jetzt versuchen, den Schlüssel vom USB-Stick einzulesen und damit die Root-Partition zu entsperren. Nachdem das erfolgt ist, wird von der initrd zur Root-Partition gewechselt und das System wie gewohnt hochgefahren.


CC_BY_NC_SAby Speefak | www.andreas-janssen.de | linuxwiki.de | wiki.ubuntuusers.de | LVM Verwalten | USB_CRYPT | LVM Administration | wiki.gentoo.org 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Back To Top