FreeBSD/System verschlüsseln mit geli(8)
Dieser Artikel beschreibt, wie man ein FreeBSD von einem (fast) vollständig geli-verschlüsselten System booten kann, d.h. auch / liegt auf einem geli-device.
Der hier beschriebene Ansatz unterscheidet sich von diesem Artikel grundlegend dadurch, dass der Bootloader und der Kernel nicht auf eiem USB-Stick oder externen Bootmedium abgelegt ist sondern unverschlüsselt auf der Platte liegt.
Zielsetzung
- Das gesamte (benutzte) System soll verschlüsselt werden (Ausnahmen... )
- Auf externe Bootmedien (USB-Stick, Diskette, ... ) soll verzichtet werden
Nebenbedingungen
- der FreeBSD Bootloader liest sowohl die erforderlichen Kernelmodule als auch den Kernel selbst aus <bootdevice>:/boot
- der FreeBSD Bootloader liest außerdem <bootdevice>:/etc/fstab und ermittelt dort das zu mountende Root-Filesystem (wird an den Kernel übergeben)
- der FreeBSD Bootloader kann nur unverschlüsseltes UFS lesen, es kann keine geli-encryption nutzen
- swap soll verschlüsselt sein
- es soll ein unverschlüsseltes dumpdevice existieren (für kernel panics, vmcore), Größe mind. RAM
- es gibt nur eine Festplatte (zB in einem Notebook)
- andere Betriebssysteme (Multiboot) sind hier möglich, aber nicht extra behandelt.
Vorüberlegung
Es werden 2 Bereiche auf der Festplatte benötigt: verschlüsselt und unverschlüsselt.
Die Festplatte (/dev/ad0) wird daher unterteilt in 2 slices: /dev/ad0s1 (unverschlüsselt) und /dev/ad0s2 (verschlüsselt).
Grund-Installation
Zunächst eine einfache Grundinstallation von FreeBSD durchführen, zB von CD, mit sysinstall. Fast wie immer. Wir benötigen hier zunächst keine Packages.
fdisk
- 2 Slices (=Partitionen) mit Typ 165 (=FreeBSD) anlegen
-
- ca 5GB für /dev/ad0s1
- Rest für /dev/ad0s1
- BootLoader in MBR installieren
bsdlabel
- In ad0s1 folgende BSD-Labels anlegen
-
- ca 1GB für /dev/ad0s1a, Filesystem / (das ist das Boot- und Maintenance-System, unverschlüsselt)
- Rest für /dev/ad0s1b, swap (das wird später unser unverschlüsseltes dumpdevice)
Software
- Distributions: Minimal
- keine weiteren Packages
abschließen
- Installation mit Netzwerkonfiguration, Root-Passwort, User, ... abschließen.
- Auf /dev/ad0s1a liegt nun ein bootfähiges und unverschlüsseltes Minimalsystem.
- Auf /dev/ad0s2 ist derzeit nichts abgelegt, es ist aber angelegt. Wichtig ist, dass es während der Grundinstallation angelegt wird, denn wenn das Maintenance-System von /dev/ad0s1a gebootet ist, kann die Partitionstabelle in /dev/ad0 nicht geschrieben werden. Ein Trick würde es zwar erlauben, aber man kann es dann nicht ohne weiteres sehen/benutzen.
- Rebooten.
Verschlüsseltes System einrichten
(folgt)
Weblinks
- System verschlüsseln mit geli(8) bei bsdwiki.de, verfolgt den Ansatz, dass die ganze Platte verschlüsselt wird und ersatzweise von einem USB-Stick gebootet wird.