Ubuntu 12.04 „Precise Pangolin“
Ubuntu 11.10 „Oneiric Ocelot“
Ubuntu 10.04 „Lucid Lynx“
Ubuntu 8.04 „Hardy Heron“
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Ohne ein sicheres Kennwort nutzt die stärkste Verschlüsselung nicht! Wie man Passwörter am besten wählt, steht hier: Sicherheits 1x1
Mit dieser Anleitung wird Ubuntu bis auf die Boot-Partition, die nur den Kernel und Bootloader enthält, in verschlüsselten Partitionen installiert. Es wird die LUKS-Schlüsselableitung eingesetzt, da mit dieser beim Start nur eine Passworteingabe nötig ist und der Ruhezustand (S4) noch funktioniert.
Sollte mehr als eine Partition für Ubuntu verwendet werden (z.B. eine separate Home-Partition), ein zusätzliches Betriebssystem auf der Festplatte bereits installiert sein oder nachträglich installiert werden, ist die Variante auf Basis von LVM, die unter System verschlüsseln ausführlich beschrieben wird, vorzuziehen. Mit dieser ist es auch im Gegenteil zu der hier beschriebenen möglich, nachträglich die internen Partitionsgröße zu verändern oder weitere hinzuzufügen oder zu löschen.
Das hier erörterte Verfahren ist unflexibler, funktioniert aber ohne LVM.
Wenn sich auf dem Computer schon ein Betriebssystem (wie beispielsweise Windows, Mac OS oder ein anderes Linux-System) oder wichtige Daten befinden, sollte von den wichtigen Daten unbedingt eine Sicherung erstellt werden. Wie bei jeder Veränderung am Computer kann immer auch etwas schiefgehen.
Zur Installation wird die normale Desktop-CD benötigt. Diese einfach booten [1]. Nachdem das Live-System geladen wurde, jedoch nicht das Installationsprogramm ausführen. Es wird zwingend eine funktionierende Internetverbindung [2] benötigt, da Programme nachinstalliert werden müssen.
Alle folgenden Befehle benötigen Root-Rechte. Man sollte also mit sudo -s Root-Status erlangen!
Die Desktop-CD bis einschließlich Jaunty unterstützt von Haus aus kein LUKS, dies wird aber durch die Installation des folgenden Paketes [3] korrigiert:
cryptsetup
Dann werden in einem Terminal [4] durch Eingabe von
modprobe dm-crypt
die benötigten Kernelmodule geladen.
Änderungen an Partitionen können nicht mehr rückgängig gemacht werden!
/dev/sdX1, /dev/sdX2 bzw. /dev/sdX3 müssen im folgenden immer durch die tatsächlichen Bezeichnung der Partitionen ersetzt werden!
Außerdem ist zu beachten, dass ohne eine erweiterte Partition nicht mehr als eine zusätzliche neben den dreien von Ubuntu vorhanden sein können.
Es werden mindestens drei Partitionen benötigt [5]:
/dev/sdX1 (ext3)
Boot-Partition (unverschlüsselt)
Größe: mindestens 200 MB (mehr ist im Regelfall aber nicht nötig)
/dev/sdX2 (unformatiert)
verschlüsselte Swap-Partition
Größe: ca. 1,3fache des RAMs (bei weniger als 512 MB Arbeitsspeicher das 2fache)
/dev/sdX3 (unformatiert)
verschlüsselte Root-Partition
Größe: üblicherweise der verfügbare Rest, aber mindestens 8 GB
Es ist aus Sicherheitsgründen empfehlenswert, die Partitionen einmal mit Zufallszahlen zu überschreiben, vor allen Dingen, wenn vorher auf diesen unverschlüsselte Daten gespeichert waren. [6] Ansonsten sind unter Umständen viele Dateien nach dem Verschlüsseln noch auslesbar.
Daraufhin wird die root Partitionen verschlüsselt und mit den Namen root geöffnet [7].
Sollte eine niedrigere Schlüssellänge oder ein anderer Verschlüsselungsalgorithmus bevorzugt werden, müssten die Befehle entsprechend angepasst werden[7].
cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sdX3 cryptsetup luksOpen /dev/sdX3 root
Anschließend wird die Swap-Partition mit einem von der Root-Partition abgeleiteten Schlüssel [8] erstellt und geöffnet:
/lib/cryptsetup/scripts/decrypt_derived root | cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sdX2 /lib/cryptsetup/scripts/decrypt_derived root | cryptsetup luksOpen /dev/sdX2 swap
Aufgrund von Problemen mit dem Live-CD-Installer müssen die verschlüsselten Partitionen vorher manuell formatiert werden:
mkfs.ext3 /dev/mapper/root mkswap /dev/mapper/swap
Danach wird das Installationsprogramm gestartet [1] und mit diesem bis Schritt 4 fortgefahren, bei dem die "manuelle Partitionierung" ausgewählt wird.
Im nächsten Installationspunkt werden die folgenden Partitionen jeweils mit einem Doppelklick auf die entsprechenden Einträge konfiguriert. Die Swap-Partition braucht nicht ausgewählt zu werden, da sie automatisch erkannt wird.
/dev/sdX1
Boot-Partition
Dateisystem: ext3
Formatieren: ja
Einhängepunkt: /boot
/dev/mapper/root
Root-Partition
Dateisystem: ext3 oder gewünschtes Linux-Dateisystem
Formatieren: ja
Einhängepunkt: /
Danach wird gemäß Anleitung [1] mit der Installation fortgefahren, jedoch nach dem Abschluss der Installation nicht neugestartet.
Sollte parallel Windows installiert und mit Truecrypt verschlüsselt worden sein, wird GRUB in die Boot-Partition /dev/sdX1 anstelle des MBRs installiert. Das wird im Installations-Punkt 7 unter Erweitert eingestellt. Dort wird anstelle von hd0 die Boot-Partition ausgewählt. GRUB erscheint dann, sobald die Taste Escape im Truecrypt-Bootloader gedrückt wird.
Alle folgenden Befehle müssen in ein und demselben Terminal [4] ausgeführt werden.
Um die nötigen Anpassungen vorzunehmen, wird mittels chroot in das eigentliche, verschlüsselte System gewechselt. Das geschieht durch die Eingabe der folgenden Befehle:
mount /dev/mapper/root /mnt mount /dev/sdX1 /mnt/boot mount -o rbind /dev /mnt/dev mount -t proc proc /mnt/proc mount -t sysfs sys /mnt/sys cp /etc/resolv.conf /mnt/etc/resolv.conf chroot /mnt /bin/bash
Die benötigten Pakete werden mit diesem Befehl [4] installiert:
apt-get install cryptsetup
Zuerst muss die UUID der Root- und Swap-Partition ermittelt werden. Das geschieht mit folgenden Befehlen:
blkid /dev/sdX3 blkid /dev/sdX2
Daraufhin wird mit dieser Eingabe die nötige Zeile in /etc/crypttab eingefügt, wobei <..._VOLUME_ID>
vorher durch die ermittelte UUID (ohne Anführungszeichen!) ersetzt werden muss:
echo "root UUID=<SDX3_ROOT_VOLUME_ID> none luks" >> /etc/crypttab echo "swap UUID=<SDX2_SWAP_VOLUME_ID> root luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived" >> /etc/crypttab
Anschliessend kann man prüfen[9], ob auch wirklich alles korrekt eingetragen wurde und gegebenenfalls nachbessern. Ein Beispiel mit nicht repräsentativen UUIDs:
1 2 3 | # <target name> <source device> <key file> <options> root UUID=c9e6aab5-e3a0-43e9-a594-4bcf1b61e7c1 none luks swap UUID=d09e29f2-9882-457d-b4f0-42f12aebdd3b root luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived |
Um die Änderungen an der crypttab zu übernehmen, muss noch
update-initramfs -u -k all
ausgeführt werden.
Mit den beiden folgenden Befehlen wird die Chroot-Umgebung geschlossen und das System neugestartet. Beim Bootvorgang sollte dann nach dem Passwort gefragt werden.
exit reboot