FreeBSD/System verschlüsseln mit geli(8)

Aus UUGRN
< FreeBSD
Version vom 26. Juli 2009, 15:02 Uhr von Rabe (Diskussion | Beiträge) (ein anfang, grundinstallation)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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