Ubuntu: Festplattenvollverschlüsselung inkl. Ruhezustand

05.05.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

  1. Wähle Manuell
  2. Markiere die boot-Partition, klicke Partition bearbeiten und wähle diese Partition als /boot-Partition:
  3. Lege auf cryptroot eine neue Partitions-Tabelle an.
  4. 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:

  5. 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: , , , .

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Neueste Artikel

Top-Beiträge

Kategorien

Archive

Links

Schlagworte