Full Disk Encryption (FDE)

In den meisten Fällen ist die Festplattenverschlüsselung unnötig oder sogar schädlich. Bei Laptops schadet die Paranoia jedoch nicht. Nachdem ich einen neuen Laptop in die Hände bekommen hatte, kümmerte ich mich zuerst um die Festplattenverschlüsselung.

Derzeit haben viele Distributionen bereits die Möglichkeit, verschlüsselte Partitionen zu erstellen. Alle Optionen, auf die ich gestoßen bin, umfassen jedoch unverschlüsselt / boot. Keine kritische, aber eine unangenehme Unterlassung. Informationen zum Erstellen einer vollständig verschlüsselten Festplatte können im Internet leicht gesucht werden. Der überwiegende Teil der Informationen ist jedoch in englischer Sprache verfasst, und einige Fallstricke werden immer noch nicht beschrieben. Ich werde mich bemühen, diese Informationen möglichst kurz, verständlich und schrittweise in einem Text zusammenzufassen.

Was wir verwenden werden


Distribution : Slackware Linux 14.2 (aber ich denke, dass sich alles leicht an jede Linux-Distribution anpassen lässt)
Verschlüsselung : Luks
Markup : LVM
Bootloader : Grub2

Festplattenpartitionierung und -verschlüsselung


Wir beginnen mit dem Markieren der Scheibe. Da wir also die gesamte Festplatte verschlüsseln möchten, müssen wir nur eine Partition erstellen (ich verwende kein UEFI).

parted /dev/sda mklabel msdos
parted -a optimal /dev/sda mkpart primary 0% 100%

Formatieren Sie nun diesen Abschnitt für Luks und verbinden Sie ihn.

cryptsetup luksFormat /dev/sda1
cryptsetup luksOpen /dev/sda1 lda


Nach dem Ausführen von luksOpen haben wir ein Blockgerät lda erhalten, das wir bereits mit LVM auslegen können.

pvcreate /dev/mapper/lda
vgcreate vga /dev/mapper/lda
lvcreate -L4G -n swap vga
lvcreate -L32G -n root vga
lvcreate -l100%FREE -n home vga

Erstellen Sie eine Swap-Partition.

mkswap /dev/vga/swap

Als Nächstes können Sie mit der Installation des Systems auf den erstellten LVM-Partitionen beginnen. Nachdem die Installation abgeschlossen ist, starten wir nicht neu, sondern verlassen das Terminal und zaubern weiter.

Laden


Zunächst müssen wir initrd / initramfs erstellen, da der Kernel nicht unabhängig auf die verschlüsselte Festplatte zugreifen kann. Es ist zu beachten, dass die meisten Paketdistributionen so konzipiert sind, dass sie unverschlüsselt von der / boot-Partition booten, und dass das Kennwort für den Zugriff auf die verschlüsselte Festplatte beim Booten eingegeben werden muss (Systeminitialisierung). Für uns bedeutet dies, dass wir das Passwort zweimal eingeben müssen, was nicht sehr praktisch ist. Sie können dieses Problem lösen, indem Sie einen luks-Schlüssel erstellen und in initrd ablegen.

dd bs=512 count=4 if=/dev/urandom of=/root/boot.key
cryptsetup luksAddKey /dev/sda1 /root/boot.key

Es wird dringend empfohlen, die Hilfsprogrammdokumentation zu Rate zu ziehen, um die initrd / initramfs Ihrer Distribution zu erstellen. Es kann das Hinzufügen von luks-Schlüsseln unterstützen. In Slackware stieß ich auf die Tatsache, dass das Arbeiten mit solchen Schlüsseln unterstützt wird, der Schlüssel jedoch auf einem unverschlüsselten Medium (z. B. einem USB-Flash-Laufwerk) gespeichert werden muss. Ich musste wie folgt schummeln:

# создаём initrd
mkinitrd -c -k 4.4.14 -m ext4 -f ext4 -r /dev/vga/root -C /dev/sda1 -L
# копируем ключ
install -D -m 0600 /root/boot.key /boot/initrd-tree/mountkey/boot.key
# пересоздаём initrd
mkinitrd -c -k 4.4.14 -m ext4 -f ext4 -r /dev/vga/root -C /dev/sda1 -L -K :/boot.key

Grub


Ich habe nicht lange nachgesehen, aber nach den vorliegenden Informationen unterstützt nur Grub2 das Booten von einer verschlüsselten Festplatte.
Damit der Bootloader auf die Dateien auf der Festplatte zugreifen kann, müssen wir den entsprechenden Schlüssel in / etc / default / grub hinzufügen:

GRUB_ENABLE_CRYPTODISK=y
GRUB_CRYPTODISK_ENABLE=y

Wie Sie sehen, habe ich sowohl GRUB_ENABLE_CRYPTODISK als auch GRUB_CRYPTODISK_ENABLE angegeben. Dies ist die erste Falle, über die ich gestolpert bin. Ich habe mich nicht mit der Natur dieses Phänomens befasst, aber gemäß der Dokumentation ist es notwendig, das erste zu verwenden, und grub-mkconfig prüft für das zweite genau "y".

Installieren Sie den Bootloader.
grub-mkconfig -o /boot/grub/grub.cfg
grub-install /dev/sda

Hier können Sie die Installation als abgeschlossen betrachten. Als Ergebnis sollten wir ein System bekommen, das vollständig auf einem verschlüsselten Laufwerk läuft und beim Laden nur einmal nach einem Passwort fragt - beim Start von Grub.

Verwandte Materialien und Quellen


Vollständige Festplattenverschlüsselung mit LUKS (einschließlich / boot) - Pavel Kogan
Installation von Slackware auf verschlüsselten Volumes - Eric Hameleers

Jetzt auch beliebt: