Eine LUKS-verschlüsselte Festplatte mit einem USB-Stick "aufsperren"

Informationen zu LUKS an sich gibt es hier: http://de.wikipedia.org/wiki/LUKS

Verschlüsselte Festplatte anlegen

Eine Anleigung zum Anlegen einer verschlüsselten Partition mit LUKS findet sich im ubuntuusers.de - Wiki:
http://wiki.ubuntuusers.de/LUKS

USB-Stick als Schlüssel benutzen

Zuerst den USB-Stick mit Zufallsdaten füllen:

dd if=/dev/urandom of=/dev/sdc

Als nächstes werden 256 byte vom USB-Stick gelesen, die als Schlüssel dienen sollen:

dd if=/dev/sdc of=/home/martin/usb.key bs=1 count=256

Die Datei 'usb.key' wird nur temporär benötigt. Man kann sie entweder aufheben (an einem sicheren Ort, versteht sich), für den Fall das der USB-Stick defekt sein sollte, oder man benutzt einfach ein (sicheres) Passwort als “Hintertürchen”.

Dem LUKS-Container den neuen Schlüssel mitteilen:

cryptsetup luksAddKey /dev/sda4 /home/martin/foo.key

Es wird auch nach einer Passphrase gefragt, hier ist eigentlich egal was angegeben wird. Danach kann die Datei 'usb.key' gelöscht, oder an einen sicheren Ort verfrachtet werden.

Nun muss zuerst die USB-ID des Sticks ermittelt werden:

ls -l /dev/disk/by-id/ | grep sdc

Als Ausgabe gibt es etwas in der Art:

lrwxrwxrwx 1 root root 9 2008-12-04 21:31 usb-STICK-0:0 -> ../../sdc

Wichtig ist dabei der Teil “usb-Stick-0:0”, der wird gleich gebraucht.

Ausserdem wird noch ein kleines Helfer-Skript benötigt, dass beim Start die ersten 256 Byte (also unseren Schlüssel) vom USB-Stick liest:

#!/bin/bash
# Script: /usr/local/sbin/dd-luks-key.sh
if [ -e $1 ]
then
dd if=$1 bs=1 count=256
fi

In die Datei '/etc/crypttab' muss dann folgendes eingetragen werden:

encrypted_hdd /dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /dev/disk/by-id/usb-STICK-0\:0 luks,keyscript=/usr/local/sbin/dd-luks-key.sh
^Name         ^Pfad zur UUID der Platte                              ^ID des USB-Sticks (s.o.)      ^diesen teil so übernehmen

Der Name kann mehr oder weniger frei gewählt werden. Die passende UUID zu eurer Platte verrät euch der Befehl 'blkid”. Die ID des USB-Sticks wurde etwas weiter oben ausgelesen. Der letzte Teil führt das oben gezeigte Skript aus um den Schlüssel in Erfahrung zu bringen.

Um den nun offenen Container beim Start einzubinden fehlt noch der Eintrag in die '/etc/fstab':

/dev/mapper/encrypted_hdd  /media/mountpoint  ext3     defaults    0    0

Dateisystem und Optionen sind natürlich anzupassen. (http://wiki.ubuntuusers.de/fstab)

Jetzt wird beim nächsten Reboot der LUKS-Container automatische geöffnet, sofern der USB-Stick angesteckt ist. Da der Stick nicht partitioniert ist, wird er in der Regel auch nicht von Gnome oder KDE automatisch eingebunden, bleibt also mehr oder weniger unsichtbar, solange man nicht hinter den Rechner krabbelt ;-)

/var/www/virtual/ben/wiki.firefly-it.de/data/pages/linux/encryptwithusbaskey.txt · Last modified: 2009/05/07 14:52 by zero
Back to top
CC Attribution-Noncommercial-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0