Um was geht's?Seit Ubuntu 7.10 Gutsy Gibbon kann man mit der Alternative-CD beim Installieren bereits die Festplatten verschlüsseln.
Aber wie macht man es nun mit dem Keyfile? (Suspend-toDisk sind mit dieser Variante möglich)
Nicht für Anfänger geeignet!
Nur bei einer Neuinstallation möglich.
Vor- & Nachteile:
- Niemand kann Sie nach dem Passwort erpressen. Sie kennen es nicht¹ :-)
- Brute-force-Methoden sind sehr aufwendig, denn im Keyfile befindet sich kein Wort, auch keine wilde Reihenfolge von Buchstaben, sondern nur zufällige Bits.
- Wenn der USB-Stick defekt ist oder verloren geht, sind alle Daten auf dem Rechner nicht mehr zu erreichen!
- Für Desktop-Systeme, die immer wieder neu gestartet werden, nicht zu empfehlen, schließlich lässt man aus Faulheit den USB-Stick am Rechner und hat damit nichts gewonnen.
Empfehlung: Erst mal bis zum Ende durchlesen, verstehen, drüber nachdenken und dann erst ausführen!
Was brauchen wir:
Eine Installations-CD mit Ubuntu in der alternativen Version.
(Gutsy Gibbon 7.10 oder höher)
Einen PC, :-)
Einen USB-Stick. (SD-Karte sollte auch funktionieren...ungetestet, da kein Kartenleser)
Wir beginnen: Systeminstallation
| Achtung, alle Daten werden bei der Partitionierung der Festplatte vernichtet! Tun Sie dies nur, wenn Sie diese Daten nicht mehr benötigen oder auf andere Medien gesichert haben! |
Wir booten von der CD und installieren normal, bis zur Festplattenpartition. Dort "Manuell" auswählen.
Bei der Einrichtung der Partitionen nehmen wir 2 Stück:
1. /boot (/dev/sda1) etwa 100MB
2. Verschlüsselt (/dev/sda2)
Die Verschlüsselungskonfiguration aufrufen und dort das Passwort für die verschlüsselte Partition eingeben. Dieses Wort kann ruhig sehr kompliziert sein. Auf Sonderzeichen sollte man aber verzichten (üöäß)
Nun richten wir in der verschlüsselten Partiton ein LVM ein und gehen in die LVM-Konfiguration.
Dort müssen wir zuerst eine Volume Group einrichten. (z.B. vg01)
Nun richten wir uns 3 Logical Volumes ein. (swap, root und home) oder entsprechend mehr.
In der Partitonsübersicht haben wir nun noch 3 Partiitonen mehr, die wir entsprechend einrichten müssen (swap mit swap, root und home mit dem entsprechenden Filesystemen und den Mountpoints)
Nun können wir das System weiter installieren lassen, neu starten und alles wie es gefällt einrichten.
(und immer am Anfang das komplizierte Passwort eintippen)
Übrigens kann man auch erst mehrere Platten zu einem Software-Raid zusammen fassen und dann wie oben /boot und den Rest verschlüsselt auf ein LVM legen.
Wenn alles zur Zufriedenheit läuft erzeugen wir unseren Key auf dem USB-Stick:
Keyfile erzeugen und einbinden
Nun erzeugen wir unser Keyfile:
mkdir /<Mountpoint des Sticks>/keys
dd if=/dev/random of=/<Mountpoint des Sticks>/keys/mein.key bs=1 count=32
des weiteren müssen wir ein Script schreiben, das den Stick mountet und den Key liest. Ich hab ihn in /etc/keys/ abgelegt. Das Verzeichnis scheint neuerdings automatisch erzeugt zu werden und passte irgendwie :-)
vi /etc/keys/showkey
Inhalt:
ROOTKEY="$1"
sleep 10
mkdir /mnt
mount -t ext2 /dev/disk/by-uuid/00000000-4711-0815-ffff-000000000000 /mnt
/bin/cat/ $ROOTKEY
umount /mnt
Dann noch chmod 755 /etc/keys/showkey
Die Sleep-Anweisung ist ein böser Hack, da die USB-Sticks meist erst kurz nach der Passwort-Abfrage gefunden werden. Wenn jemand eine elegantere Lösung hat, dann bitte mailen.
Die Mount-Anweisung MUSS mit -t gemacht werden! Bitte das korrekte Filesystem angeben.
Die UUID muss entsprechend geändert werden. Mit ls -la /dev/disk/by-uuid/ kann man die UUIDs sehen, die gerade im Rechner vorhanden sind. Ich hab meine Sticks mit Absicht diese Nummer verpasst, um auch mit einem 2. Stick booten zu können (man kann mit tune2fs diese Nummern selber vergeben. ABER WARNUNG: 2 mal die selbe Nummer gleichzeitig im System ergibt Datensalat!)
Fat16-UUIDs sind zb nur xxxx-xxxx lang und besitzen Großbuchstaben.
Nun erzeugen wir erstmal eine Sicherheitskopie unserer initrd-Datei.
cd /boot
cp initrd.img-<kernelnummer>-generic initrd.img-<kernelnummer>-generic.kopie
Wenn also beim Versuch mit dem Keyfile gleich was schief geht, können wir in Grub beim booten noch die initrd wechseln und müssen dann wieder das komplizierte Passwort eingeben. (Esc-Taste, dann e wie edit, dann auf die Zeile mit der initrd, wieder e wie edit. am Ende um .kopie den Namen verlängern. Enter und b wie boot)
Config-Datei anpassen
Jetzt müssen wir die /etc/crypttab anpassen:
vi /etc/crypttab
Vorher:
sda2_crypt /dev/disk/by-uuid/<uuid> none luks
Hinterher:
sda2_crypt /dev/disk/by-uuid/<uuid> /mnt/keys/mein.key keyscript=/etc/keys/showkey,luks
Die <uuid> ist natürlich die Nummer eurer Partition und bleibt so!
Nun noch eine neue initrd-Datei erzeugen:
update-initramfs -u
Nun können wir den Rechner neu starten und er holt sich den Key vom USB-Stick und startet das System durch.
*Daumen drück*
Wenn alles richtig gemacht wurde und die Hardware auch alles mitgemacht hat, hat sich das System mit Hilfe des Keys auf dem USB-Stick selber gestartet. Dann kann man in /boot/ die initrd.img-<kernelnummer>-generic.kopie löschen.
Jetzt gibt es 2 Möglichkeiten:
1. Alles ist ok und bleibt so:
Vorteil: - Man kann mit der Rettungs-CD das System entschlüsseln (komplizierte Passwort eingeben) und retten.
- Wenn der Stick kaputt ist kommt man ans System.
Nachteil: Das Passwort kann herausgefunden werden (schneller als das Keyfile) z.B. über die Schulter gucken.
2. Wir löschen das komplizierte Passwort und nutzen nur den USB-Stick:
Vorteil: - Wer den Stick nicht besitzt hat kaum eine Chance an die Daten zu kommen.
- kein Ausspionieren des Passwortes möglich (Schultergucker)
Nachteil: Die Rettungs-CD kann so nicht benutzt werden. Wenn der Stick kaputt oder das Keyfile gelöscht wurde sind die Daten futsch.
Wer Fehler findet oder Verbesserungen hat, bitte mailen! Danke


