Ubuntu: Festplattenvollverschlüsselung inkl. Ruhezustand
5. Mai 2008
Getestet für Fiesty und Gutsy (Ubuntu 7.04, 7.10, 8.04 LTS)
Festplattenverschlüsselung unter Linux ist in der Regel nicht gerade einfach. Will man es, muss man sich meistens mit langen Kopierorgien abgeben.
Nicht so, mit diesem Howto. Wir werden hier einen Rechner / Notebook so installieren, dass nach der Installation alles verschlüsselt ist und man sofort mit dem System arbeiten kann. Weiterhin wird auch der Ruhezustand so funktionieren, dass der Speicher nicht unverschlüsselt auf die Festplatte geschrieben wird um das Lecken von Informationen zu unterbinden.
Außerdem arbeiten alle mir bekannten Howtos immer nur mit dem (veralteten) aes-cbc-essiv Cipher, hier zeige ich wie man die neuen (sichereren) LRW- und XTS Cipher nutzt.
Der Vorgang hier ist für Ubuntu 8.04 exemplarisch beschrieben, hat aber auch schon mit 7.04 und 7.10 funktioniert (bzw. sollte).
In blau geschriebene Befehle sind in der Konsole auszuführen.
1. Die Ubuntu-Live CD starten. (Ubuntu ausprobieren auswählen)
2. Eine Konsole starten.
3. Die Festplatte wie gewünscht partitionieren.
In der Konsole folgenden Befehl eingeben:
sudo gparted
Man sollte seine Platte wie folgt partitionieren:
Erklärung:
Die 100 MB Partition ist meine boot-Partition. Diese bleibt unverschlüsselt und enthält alles notwendige um Ubuntu später laden zu können. (/dev/sda1)
Die 1,5 Gigabyte Parition ist meine Swap-Partition. (/dev/sd2)
Achtung: Um den Ruhezustand nutzen zu können muss die Swap-Partition mindestens so groß sein, wie der eingebaute Arbeitsspeicher (in meinem Fall 1 Gigabyte). Besser ist, die Partition etwas größer zu machen. (Ich habe in meinem Setup die Größe von 1,5 Gigabyte gewählt.)
Den Rest verwende ich als root-Partition. (/dev/sda3) (Man kann theoretisch auch mehrere Partitionen erstellen. Allerdings verkompliziert dies das Setup, daher lasse ich es. )
Man kann die boot-Partition formatieren, muss es aber nicht. (Ich lasse es.)
Nachdem man mit Bearbeiten->Apply All Operations die Informationen auf die Festplatte geschrieben hat, kann man gparted beenden.
4. Als nächstes muss man das Verschlüsselungsprogramm installieren.
sudo aptitude install cryptsetup
5. Nun muss man die Kernelmodule für die Verschlüsselung laden.
for mod in dm_crypt sha256_generic aes_i586; do sudo modprobe $mod; done
6. Nun geht es ans Erstellen der verschlüsselten Partitionen.
Hinweis:
Wie immer hängt die Sicherheit der Daten vom gewählten Passwort ab.
/dev/sda3 ist bei mir die root-Partition und /dev/sda2 die swap-Partition. Das kann bei Euch abweichen, passt das einfach der Ausgabe von gparted an.
Die root-Partition:
sudo cryptsetup –verify-passphrase –verbose –hash=sha256 –cipher=aes-cbc-essiv:sha256 –key-size=256 luksFormat /dev/sda3
oder
sudo cryptsetup –verify-passphrase –verbose –hash=sha256 –cipher=aes-lrw-benbi –key-size=256 luksFormat /dev/sda3
oder
sudo cryptsetup –verify-passphrase –verbose –hash=sha256 –cipher=aes-xts-plain –key-size=256 luksFormat /dev/sda3
Erkärung:
Die verschiedenen Verschlüsselungsmethoden (Chiffrier-Modie) stehen erst alle in Ubuntu 8.04 (xts-plain ist erst im Kernel 2.6.24 enthalten) zur Verfügung. Ich habe sie der Sicherheit nach geordnet (xts-plain ist das sicherste Modul). Ab Kernel-Version 2.6.20 kann lrw-benbi genutzt werden, davor nur cbc-essiv.
lrw-benbi darf nicht für die Swap-Partition verwendet werden, da es in diesem Fall ein Sicherheitsloch hat!
xts-plain und lrw-benbi ist wohl noch als experimentel eingestuft. (Siehe: http://de.gentoo-wiki.com/DM-Crypt)
Wer auf hohe Sicherheit wert legt und Ubuntu 8.04 einsetzt sollte xts-plain nutzen.
Auf langsamen Computern kann folgende Variante, die etwas unsicherer als die drei oben ist, benutzt werden:
sudo cryptsetup –verify-passphrase –verbose –hash=sha256 –cipher=aes-cbc-essiv:sha256 –key-size=128 luksFormat /dev/sda3
Die swap-Partition:
sudo cryptsetup –verify-passphrase –verbose –hash=sha256 –cipher=aes-cbc-essiv:sha256 –key-size=256 luksFormat /dev/sda2
oder
sudo cryptsetup –verify-passphrase –verbose –hash=sha256 –cipher=aes-xts-plain –key-size=256 luksFormat /dev/sda2
Auf langsamen Computern kann folgende Variante, die etwas unsicherer als die beiden oben ist, benutzt werden:
sudo cryptsetup –verify-passphrase –verbose –hash=sha256 –cipher=aes-cbc-essiv:sha256 –key-size=128 luksFormat /dev/sda2
7. Einbinden der nun verschlüsselten Partitionen
sudo cryptsetup luksOpen /dev/sda2 cryptswap
sudo cryptsetup luksOpen /dev/sda3 cryptroot
sudo mkswap /dev/mapper/cryptswap
8. Minimiere das Terminal, doppelklicke auf Installieren. Wenn Ihr bei der Partitionierung angekommen ist, geht dieses Howto weiter.
9. Partitionieren im Installer
- Wähle Manuell

- Markiere die boot-Partition, klicke Partition bearbeiten und wähle diese Partition als /boot-Partition:

- Lege auf cryptroot eine neue Partitions-Tabelle an.
- Markiere die neue cryptroot-Partition, klicke Neue Partition und wähle diese Partition als /-Partition:
Die Swap-Partition sollte vom Installer automatisch erkannt worden sein, wenn nicht erstelle auch dort eine Partition mit diesen Eigenschaften:

- Fahrt mit der Installation wie gewohnt fort, wenn der Installer fragt ob Du neustarten möchtest, klicke auf mit der Live-CD weiterarbeiten.
10. Anpassen des neuen Systems
sudo mount /dev/mapper/cryptroot /mnt
sudo mount /dev/sda1 /mnt/boot
for dir in proc dev sys; do sudo mount –bind /$dir /mnt/$dir; done
cd /dev; sudo MAKEDEV generic
sudo chroot /mnt
aptitude install cryptsetup
Nun muss die Datei /etc/crypttab eingerichtet werden
nano /etc/crypttab
Dort gebt ihr folgendes ein:
# <target name> <source device> <key file> <options>
swap /dev/sda1 none luks
cp /usr/share/initramfs-tools/hooks/cryptroot /etc/initramfs-tools/hooks/cryptroot
cp /usr/share/initramfs-tools/scripts/local-top/cryptroot /etc/initramfs-tools/scripts/local-top/cryptroot
echo -e “\nalias aes aes_i586\n” >> /etc/modprobe.d/aliases
echo -e “CRYPTOPTS=target=cryptroot,source=/dev/sda3\ntarget=cryptswap,source=/dev/sda2\n” > /etc/initramfs-tools/conf.d/cryptroot
Hat man abweichende Cipher (andere als aes-cbc-essiv:sha256) benutzt, muss man noch die entsprechenden Module laden.
Hat man aes-xts-plain benutzt:
echo -e “\nxts\n” >> /etc/initramfs-tools/modules
Hat man aes-lrw-benbin benutzt:
echo -e “\nlrw\n” >> /etc/initramfs-tools/modules
echo -e “RESUME=/dev/mapper/cryptswap\n” > /etc/initramfs-tools/conf.d/resume
Editiere die Datei /boot/grub/menu.lst
nano /boot/grub/menu.lst
Ändere die Zeile
# defoptions=quiet splash
in
# defoptions=quiet
update-grub
update-initramfs -u
Fertig. Wenn ihr nun den Rechner neustartet, könnt ihr euer verschlüsseltes System nutzen.
Basiert auf: https://help.ubuntu.com/community/FeistyEncryptedRootWithInstaller
Entry Filed under: PC, Software. Schlagworte: Festplattenverschlüsselung, howto, ubuntu, Verschlüsselung.
4 Comments Add your own
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed



1.
Kay | 4. August 2008 at 20:46
Hallo, danke für die Anleitung. Nur kann ich die mitels cryptsetup eingebundenen Partitionen nicht beschreiben. Weder mit mit dem Installer bei Schritt 4, noch mir gparted. Der Installer bricht mit einer Fehler meldung ab, er könne die Partitionen nicht formatieren. ‘gparted &’ in der Konsole gestartet leifert folgendes beim formatierungsversuch:
Kann /dev/scd0 nicht zum Schreiben öffnen (Read-only file system). /dev/scd0 wurde nur zum Lesen geöffnet.
/dev/mapper/cryptroot kann nicht geöffnet werden – unerkanntes Disklabel.
Woran kann das liegen?
2.
quarkmitsauce | 6. August 2008 at 01:16
Ähm, Wenn ich mich richtig erinnere sind /dev/scd* Geräte SCSI-CDRom-Laufwerke. Das wirst du immer nur read-only mounten können.
Bist du sicher das du das richtige Gerät ansprichst?
Festplatten sind meines Wissens immer /dev/hd* bzw. /dev/sd*
3.
pise | 23. August 2008 at 14:52
Hey,
super howto! Ich kann blos nach dem reboot das passwort eingeben und dann sagt mir LUKS, das ich dm-crypt laden hätte sollen! Aussedem setht da noch ob denn mein kernel aes-xts-plain unterstüzen würde! Ich habe den 2.6.24-16-generic habe auch den 19er ausprobiert aber klappt leider auch net.
4.
quarkmitsauce | 24. August 2008 at 01:56
@pise
Um zu testen, ob dein Kernel xts unterstützt tippe:
modprobe -l | grep xts
ein.
Aus irgendeinem Grund wird deine ramdisk nicht mit dem dm-crypt Modul gebacken.
Sicher dass Du bei 10 keinen Schritt übersprungen hast?