Limetten-HeaderText-Header

Festplatten verschlüsseln unter Linux

Hier hat sich eine Kombination aus cryptsetup und LUKS bewährt: Wiki Pfeil.

Benötigt wird das Paket cryptsetup. Und los gehts (im Beispiel wird eine externe Festplatte unter /dev/sdh verwendet):

  • Mit fdisk /dev/sdh (mindestens) eine Partition auf der Platte erstellen.
  • cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sdh1 Definiert die Verschlüsselung.
  • cryptsetup luksOpen /dev/sdh1 extern Stellt die Partition unter /dev/mapper/extern zur Verfügung.
  • mkfs.ext3 -m 1 /dev/mapper/extern Erzeugt ein Dateisystem.
  • mount /dev/mapper/extern /mnt/extern Mountet das Dateisystem.
  • sudo umount /mnt/extern && sudo cryptsetup luksClose /dev/sdh1 Hängt die verschlüsselte Partition /dev/sdh1 aus.

Verschlüsselte Dateisysteme automatisch mounten

Dies ist ebenfalls möglich, wenn die Module dm-crypt, dm-mod, aes, xts geladen sind:

  • modprobe [dm-crypt|dm-mod|aes|xts] Lädt ein Modul in den Kernel.
  • echo [dm-crypt|dm-mod|aes|xts] >> /etc/modules Sorgt dafür, dass die Module automatisch beim Start geladen werden.
  • Eintrag in /etc/crypttab:
extern /dev/sda8 none luks
  • Eintrag in /etc/fstab nicht vergessen:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/extern /mnt/extern ext3 errors=remount-ro 0 1

Root-Partition verschlüsseln

Wenn man ein System frisch installiert bietet sich folgender Trick an: Betriebssystem in die spätere swap -Partition installieren, root -Partition vorbereiten, umkopieren. Nehmen wir folgendes Plattenlayout an:

/dev/sda1   /boot   ext3
/dev/sda2   /       ext3
/dev/sda3   none    swap
Nehmen wir weiter an, das System ist in /dev/sda3 installiert, wir haben mit Live-CD gebootet und /dev/sda3 ist mit cryptsetup eingerichtet und mit mkfs.ext3 formatiert. Dann:
  • /etc/fstab und /etc/crypttab mit den entsprechenden Einträgen versehen:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/root    /     ext3 relatime,errors=remount-ro 0 1
# /dev/mapper/swap  none swap 0 0
/dev/sda1      /boot ext3 relatime,errors=remount-ro 0 2
bzw.
# <target name> <source device> <key file> <options>
root /dev/sda2 none luks
# swap /dev/sda3 /dev/urandom swap
  • mount /dev/mapper/root /mnt/root && mount /dev/sda3 /mnt/root-old Mountet das zukünftige und das alte Root-Dateisystem.
  • rsync -aXHA /mnt/root-old /mnt/root Kopiert die Dateien sauber (behält Hardlinks, Sockets, etc. korrekt bei).
  • mount -t sysfs /sys /mnt/root/sys
  • mount -t proc /proc /mnt/root/proc
  • mount -o bind /dev /mnt/root/dev
  • mount -o bind /dev/pts /mnt/root/dev/pts Mountet weitere wichtige Dateisysteme.
  • chroot /mnt/root Wechselt in die neue Root-Umgebung.
  • Einträge der /boot/grub/menu.lst anpassen:
# kopt=root=/dev/mapper/root ro
...
title Ubuntu 10.10, kernel 2.6.35-25-generic
uuid <UUID of boot-device>
kernel /vmlinuz-2.6.35-25-generic root=/dev/mapper/root ro quiet splash
initrd /initrd.img-2.6.35-25-generic
quiet
  • update-initramfs -u -kall Aktualisiert die Initramdisk. Siehe auch LinuxBoot.
Nach einem Neustart muss noch die swap -Partition erstellt werden. Dazu kommentiert man die entsprechenden Zeilen in /etc/fstab und /etc/crypttab wieder ein.

Andere Möglichkeiten

Eine Variante mit LVMs: Wiki Pfeil.

Weitere Links: