Dies ist eine alte Version des Dokuments!
https://wiki.debianforum.de/Benchmark_f%C3%BCr_Festplattenverschl%C3%BCsselung
Der Linux-Devicemapper ist eine Softwareschicht, die man zwischen der Dateisystemebene und den darunterliegenden Geräten und Partitionen einschieben kann. Er kann nicht nur für Verschlüsselung verwendet werden, sondern bildet auch die Grundlage für DM-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 nun auf die virtuellen Geräte zu, alle Zugriffe auf diese werden dann durch den Devicemapper geschleust. 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.
LUKS (das Linux Unified Key Setup) ist eine Erweiterung für verschlüsselte Partitionen, die einen Nachteil älteren Methoden zur Plattenverschlüsselung wie cryptoloop beseitigt: Bei LUKS kann man das Passwort oder den Schlüssel der Partition ändern, ohne die Partition neu zu verschlüsseln. Zudem kann man mehrere gleichberechtigte Passwörter und Schlüssel für eine Partition verwenden. [1]
Benötigt wird:
Am sichersten ist es die zu verschlüsselnde Partition vorher mit Zufallswerten zu überschreiben. Dies erschwert später von außen Rückschlüsse auf die Verschlüsselung ziehen zu können. Hier wird urandom als Quelle benutzt. Der Befehl läuft solange, bis die Partition voll ist.
# dd if=/dev/urandom of=/dev/sdaX bs=10M
Nachdem die Partition vorbereitet wurde muss sie nun über cryptsetup initialisiert werden. Praktischerweise gibt es ein kleines Skript namens luksformat, welches dieses mit vernünftigen Voreinstellungen für die Verschlüsselung erledigt. Außerdem legt es zusätzlich noch ein Dateisystem auf der Partition an, in diesem Fall ext3.
# cryptsetup -c aes-xts-plain -s 512 luksFormat <Gerät> bzw. # cryptsetup -s 256 luksFormat --type luks2 /dev/sdc2
cryptsetup fragt nach einem Passwort für die Partition, welches insgesamt dreimal eingegeben werden muss. Abschließend entsperrt es die Partition, legt ein ext3-Dateisystem an und sperrt sie dann wieder. Damit ist die Verschlüsselung eingerichtet und kann verwendet werden.
Weitere Passphrase hinzufügen:
cryptsetup luksAddKey /dev/sdaX
# pvcreate /dev/mapper/cryptsda2 # vgcreate -s64M VGsys /dev/mapper/cryptsda2 # lvcreate -n LVroot -L 10G /dev/VGsys # lvcreate -n LVhome -L 5G /dev/VGsys # lvcreate -n LVswap -L 2G /dev/VGsys # mkfs.ext4 /dev/VGsys/LVroot # mkfs.ext4 /dev/VGsys/LVhome # mkswap /dev/VGsys/LVswap
Die Partition wird manuell folgendermaßen mit cryptsetup entschlüsselt
# cryptsetup luksOpen /dev/sdaX sdaX_crypt
Nach Eingabe des Schlüssels werden alle Aufrufe von /dev/mapper/sdaX_crypt durch den device-mapper geleitet. Daher kann sie wie gewohnt eingehängt werden.
# mount /dev/mapper/sdaX_crypt /mnt/custom
Nach der Benutzung wird sie mit
# umount /mnt/custom
ausgehangen und mit
# cryptsetup luksClose /dev/mapper/sdaX_crypt
wieder gesperrt.
# cryptsetup luksOpen /dev/sdaX sdaX_crypt
# vgchange -a y NAME_VOLUME_GROUP
# mount /dev/mapper/VOLUME_GROUP-NAME /mnt/backup
Auf die oben beschriebene Art und Weise kann man die verschlüsselten Partitionen von Hand aktivieren und deaktivieren. Auf die Dauer ist das aber sehr lästig. cryptsetup sieht allerdings eine Möglichkeit vor, Partitionen automatisch beim Hochfahren des Systems zu entsperren. Dazu trägt man diese in der Datei /etc/crypttab ein. Folgende Informationen können dort eingetragen werden:
Die komplette Zeile für das oben genannte Beispiel würde also so aussehen:
# <target name> <source device> <key file> <options> sdaX_crypt /dev/sdaX none luks
Beim nächsten Neustart des Systems wird cryptsetup automatisch die Partition entsperren und dabei nach dem Passwort fragen. Um die Partition beim Systemstart automatisch einzuhängen muss nur noch ein Eintrag in der /etc/fstab angelegt werden, zum Beispiel: /dev/mapper/sdaX_crypt /mnt ext3 auto,defaults 0 0