Bearbeiten von „FreeBSD/System verschlüsseln mit geli(8)“

Aus UUGRN

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und speichere dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 2: Zeile 2:
  
 
Der hier beschriebene Ansatz unterscheidet sich von [https://www.bsdwiki.de/System_verschlüsseln_mit_geli(8) 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.
 
Der hier beschriebene Ansatz unterscheidet sich von [https://www.bsdwiki.de/System_verschlüsseln_mit_geli(8) 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.
[[Datei:FreeBSD System verschluesseln mit geli(8) Diagramm.png|thumb|450px|Slices und BSD Labels]]
 
__TOC__
 
{{Hinweis|Diesen Artikel habe ich anhand meiner Aufzeichnungen und Erinnerung geschrieben. Ich musste auf dem Weg dahin einige Umwege gehen, weil Zwischenschritte ursprünglich nicht funktioniert hatten. <br />
 
Ich denke dennoch, dass man diese Beschreibung als Rezept nutzen kann, auch wenn sie noch nicht 100% verifiziert ist. Feedback bitte auf der [[Diskussion:FreeBSD/System verschlüsseln mit geli(8)|Diskussionsseite]] oder als Kommentar zum [http://blogs.uugrn.org/freebsdtipps/2009/07/26/system-verschlusseln-mit-geli8/ Artikel im Blog].
 
--[[Benutzer:Rabe|rabe]] 16:49, 26. Jul. 2009 (UTC)}}
 
  
 
== Zielsetzung ==
 
== Zielsetzung ==
Zeile 33: Zeile 28:
 
;2 Slices (=Partitionen) mit Typ 165 (=FreeBSD) anlegen:  
 
;2 Slices (=Partitionen) mit Typ 165 (=FreeBSD) anlegen:  
 
:* ca 5GB für /dev/ad0s1
 
:* ca 5GB für /dev/ad0s1
:* Rest für /dev/ad0s2
+
:* Rest für /dev/ad0s1
 
:* BootLoader in MBR installieren
 
:* BootLoader in MBR installieren
  
Zeile 72: Zeile 67:
 
Wir legen nun auf /dev/ad0s2 einen geli-Layer. Das "-b" sorgt dafür, dass der Kernel vor dem Mounten von / nach der Passphrase fragt!
 
Wir legen nun auf /dev/ad0s2 einen geli-Layer. Das "-b" sorgt dafür, dass der Kernel vor dem Mounten von / nach der Passphrase fragt!
 
<pre>
 
<pre>
# geli init -b /dev/ad0s2
+
# geom init -b /dev/ad0s2
 
 
 
</pre>
 
</pre>
 
Hier eine nicht zu einfache Passphrase verwenden und gut merken!  
 
Hier eine nicht zu einfache Passphrase verwenden und gut merken!  
Zeile 106: Zeile 100:
 
* ein standard-Label schreiben:
 
* ein standard-Label schreiben:
 
<pre>
 
<pre>
# bsdlabel -w /dev/ad0s2.eli
+
# bsdlabel -e /dev/ad0s2.eli
 
</pre>
 
</pre>
  
Zeile 147: Zeile 141:
 
* bsdlabel schreiben:
 
* bsdlabel schreiben:
 
<pre>
 
<pre>
# bsdlabel -R ad0s2.eli /tmp/bsdlabel_ad0s2.eli
+
# bsdlabel -R /tmp/bsdlabel_ad0s2.eli
 
</pre>
 
</pre>
bsdlabel errechnet die richtigen Werte für ''size'' und ''offset''.
+
bsdlabel erreichnet die richtigen Größen für size und offset.
  
 
Die beiden Schritte ließen sich auch zu "bsdlabel -e" zusammenführen, hier geht allerdings dann die Datei verloren (falls man es modifiziert neu versuchen will).
 
Die beiden Schritte ließen sich auch zu "bsdlabel -e" zusammenführen, hier geht allerdings dann die Datei verloren (falls man es modifiziert neu versuchen will).
Zeile 214: Zeile 208:
 
# /usr/local/bin/cpdup -v /usr /geli/usr
 
# /usr/local/bin/cpdup -v /usr /geli/usr
 
[...]
 
[...]
</pre>
 
 
 
=== Bootkonfiguration ===
 
Auf /dev/ad0s1a liegt unverschlüsselt das /boot und ein /etc
 
 
;/boot/loader.conf ergänzen:
 
<pre>
 
geom_eli_load="YES"
 
</pre>
 
 
;/boot/device.hints ergänzen:
 
<pre>
 
hint.kbdmux.0.disabled="1"
 
</pre>
 
(das behebt Probleme bei der Passphrase-Eingabe im Kernel)
 
 
;/etc/fstab ändern:
 
<pre>
 
#/dev/ad0s1a            /              ufs    rw              1      1
 
/dev/ad0s2.elia        /              ufs    rw              1      1
 
</pre>
 
Wichtig ist hier nur die Zeile für "/", die vom Bootloader gelesen wird. Für die einzelnen Dateisysteme wird nachher die ad0s2.elia:/etc/fstab verwendet
 
 
;/geli/etc/fstab:
 
<pre>
 
# Device                Mountpoint      FStype  Options        Dump    Pass#
 
/dev/ad0s2.elib        none            swap    sw              0      0
 
/dev/ad0s2.elia        /              ufs    rw              1      1
 
/dev/ufs/VAR            /var            ufs    rw              2      2
 
/dev/ufs/USR            /usr            ufs    rw              2      2
 
/dev/acd0              /cdrom          cd9660  ro,noauto      0      0
 
</pre>
 
 
;/geli/etc/rc.conf ergänzen:
 
<pre>
 
dumpdev="/dev/ad0s1b" # unencrypted swapspace
 
</pre>
 
 
=== Rebooten ===
 
Einfach mit "reboot" neu starten.
 
 
In den Kernel-Messages beim Booten sollte dann sinngemäß folgendes erscheinen:
 
<pre>
 
[...]
 
Timecounter "TSC" frequency 1525848984 Hz quality 800
 
Timecounters tick every 1.000 msec
 
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
 
firewire0: bus manager 0 (me)
 
ad0: 38204MB <SAMSUNG MP0402H UC100-14> at ata0-master UDMA100
 
acd0: CDRW <QSI CD-RW/DVD-ROM SBW-241/VX11> at ata1-master UDMA33
 
Enter passphrase for ad0s2:
 
GEOM_ELI: Device ad0s2.eli created.
 
GEOM_ELI: Encryption: AES-CBC 128
 
GEOM_ELI:    Crypto: software
 
GEOM_LABEL: Label for provider ad0s1a is ufsid/4a6bbf04331e3ba9.
 
GEOM_LABEL: Label for provider ad0s2.elia is ufsid/4a6c7ef8e582dc1d.
 
GEOM_LABEL: Label for provider ad0s2.elia is ufs/ROOT.
 
GEOM_LABEL: Label for provider ad0s2.elid is ufsid/4a6c7f024e59d562.
 
GEOM_LABEL: Label for provider ad0s2.elid is ufs/USR.
 
GEOM_LABEL: Label for provider ad0s2.elie is ufsid/4a6c7f0a80b74113.
 
GEOM_LABEL: Label for provider ad0s2.elie is ufs/VAR.
 
Trying to mount root from ufs:/dev/ad0s2.elia
 
GEOM_LABEL: Label ufs/ROOT removed.
 
GEOM_LABEL: Label ufsid/4a6c7ef8e582dc1d removed.
 
GEOM_LABEL: Label for provider ad0s2.elia is ufsid/4a6c7ef8e582dc1d.
 
GEOM_LABEL: Label for provider ad0s2.elia is ufs/ROOT.
 
GEOM_LABEL: Label ufsid/4a6c7f0a80b74113 removed.
 
GEOM_LABEL: Label ufsid/4a6c7f024e59d562 removed.
 
GEOM_LABEL: Label ufs/ROOT removed.
 
GEOM_LABEL: Label ufsid/4a6c7ef8e582dc1d removed.
 
GEOM_LABEL: Label ufsid/4a6bbf04331e3ba9 removed.
 
</pre>
 
 
;Erläuterung:
 
: Nachdem die Platte ad0 erkannt wird, erkennt das Kernelmodul geom_eli (was im Bootloader geladen wird), dass es sich bei ad0s2 um ein geli-device mit dem init-Flag "-b" handelt. Deswegen fragt der Kernel hier nach der Passphrase.
 
: Man hat hier bis zu 3 Versuche (konfigurierbar)
 
: Schlägt alles fehl, kann der Kernel das vom Bootloader angegebene Filesystem /dev/ad0s2.elia nicht mounten, es kommt dann ein "mountroot>"-Prompt. Hier kann man das Maintenance-System auf ad0s1a angeben:
 
<pre>
 
mountroot> ufs:ad0s1a
 
</pre>
 
: ... wobei ":" im US-Layout da liegt, wo man mit einer Deutschen Tastatur Shift-Ö tippen muss.
 
 
 
=== Afterboot ===
 
* Nach dem Booten sollte, wenn alles geklappt hat, das ganze so aussehen:
 
<pre>
 
# mount
 
/dev/ad0s2.elia on / (ufs, local)
 
devfs on /dev (devfs, local)
 
/dev/ufs/VAR on /var (ufs, local, soft-updates)
 
/dev/ufs/USR on /usr (ufs, local, soft-updates)
 
/dev/ad0s1a on /mnt (ufs, local)
 
 
# swapinfo
 
Device          1K-blocks    Used    Avail Capacity
 
/dev/ad0s2.elib  2097152        0  2097152    0%
 
</pre>
 
 
* Aus der Bootmessage wissen wir ...
 
<pre>
 
GEOM_LABEL: Label for provider ad0s2.elid is ufs/USR.
 
GEOM_LABEL: Label for provider ad0s2.elie is ufs/VAR.
 
</pre>
 
... dass /dev/ufs/USR und /dev/ufs/VAR Labels auf /dev/ad0s2.eli sind und somit verschlüsselt sind.
 
 
== Nachbetrachtungen ==
 
=== Im Maintenance-System ===
 
* Will man (einmalig) direkt in Maintenance-System booten, kann man auch die Passphrase absichtlich mehrfach falsch eingeben oder den Parameter im Bootmenü ändern.
 
 
* Will man im Maintenance-System auf die verschlüsselten Dateisysteme zugreifen, so muss man /dev/ad0s2 manuell attachen:
 
<pre>
 
# geli attach /dev/ad0s2
 
(Passphrase eingeben)
 
</pre>
 
Auf der Konsole werden hier alle Filesysteme angezeigt, die auf ad0s2 liegen, diese können wir normale Filesysteme verwendet werden.
 
 
=== Im Normalsystem ===
 
* Will man das Maintenance-System bearbeiten, so kann das einfach gemountet werden:
 
<pre>
 
# mount /dev/ad0s1a /mnt
 
</pre>
 
 
;Wichtig: Bei einem Update muss ad0s1a:/boot manuell aktualisiert werden, d.h. nach "make installkernel" ist folgendes zu tun:
 
<pre>
 
(in /usr/src)
 
# make installkernel
 
# mount /dev/ad0s1a /mnt
 
# cpdup /boot/kernel/ /mnt/boot/kernel/
 
</pre>
 
 
;Wichtig: jegliche Bootkonfiguration muss auf ad0s1a:/boot stattfinden, denn ad0s2.elia:/boot wird nicht verwendet. Es bietet sich daher an, dieses als Sicherheitskopie zu verwenden:
 
<pre>
 
# mount /dev/ad0s1a /mnt
 
# cpdup /mnt/boot/ /boot/
 
 
</pre>
 
</pre>
  
 
== Weblinks ==
 
== Weblinks ==
* [http://blogs.uugrn.org/freebsdtipps/2009/07/26/system-verschlusseln-mit-geli8/ Eintrag im FreeBSD Tipps Blog]
 
 
* [https://www.bsdwiki.de/System_verschlüsseln_mit_geli(8) 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.
 
* [https://www.bsdwiki.de/System_verschlüsseln_mit_geli(8) 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.
  

Bitte kopiere keine Inhalte, die nicht Deine eigenen sind!

Du gibst uns hiermit Deine Zusage, dass
  • Du den Text nicht aus Wikipedia kopiert hast
  • Du den Text selbst verfasst hast
  • oder der Text entweder
    • Allgemeingut (public domain) ist
    • oder der Copyright-Inhaber seine Zustimmung gegeben hat.
Wichtig
  • Benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Copyright-Inhabers!
  • Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der 'Diskussion:'-Seite darauf hin.
  • Bitte beachte, dass alle UUGRN-Beiträge automatisch unter der der Creative Commons Lizenz stehen.
  • Falls Du nicht möchtest, dass Deine Arbeit hier von anderen verändert und verbreitet wird, dann drücke nicht auf "Artikel Speichern".

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

Die folgende Vorlage wird auf dieser Seite verwendet: