Dual Boot, Vollverschlüsselung und Virtualisierung

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
Brancaleone
Beiträge: 62
Registriert: 20.02.2009 14:24:01

Dual Boot, Vollverschlüsselung und Virtualisierung

Beitrag von Brancaleone » 30.05.2017 06:02:01

Hallo Debianer,

folgendes Szenario: Ich habe auf meinem Laptop Triple Boot (Debian, zweites Linux, Windows) mit cryptsetup Vollverschlüsselung jeder einzelnen Partition (außer boot natürlich). Nun brauche ich das zweite Linux eher selten, es wäre aber eigentlich recht hilfreich, es ab und zu für bestimmte Aufgaben nutzen zu können. Den Rechner neustarten zu lassen, ist aber eher hinderlich und zeitaufwendig. Mein Ziel ist also, es aus Debian mittels virtualbox zu starten. Gleichzeitig soll es aber auch noch bootfähig bleiben, falls ich mal eine komplexere Aufgabe erledigen muss. Außerdem sollen die Partitionen von beiden Systemen aus rw bleiben. Zunächst mal die Partitionen:

Code: Alles auswählen

/dev/sda1  *         2048    206847    204800   100M  7 HPFS/NTFS/exFAT ######### Windows Boot
/dev/sda2          206848 105064447 104857600    50G  7 HPFS/NTFS/exFAT####### Windows
/dev/sda3       105064448 209922047 104857600    50G 83 Linux ################# Debian Root (verschlüsselt) 
/dev/sda4       209922048 976773119 766851072 365,7G  5 Extended
/dev/sda5       209924096 218312703   8388608     4G 83 Linux ################## swap (verschlüsselt) 
/dev/sda6       218314752 228800511  10485760     5G 83 Linux ################# boot
/dev/sda7       228802560 291717119  62914560    30G 83 Linux ################  Linux 2 root (verschlüsselt) 
/dev/sda8       291719168 501434367 209715200   100G 83 Linux ###############  Debian: Home / Linux 2: Data (verschlüsselt) 
/dev/sda9       501436416 711151615 209715200   100G 83 Linux ###############  Linux 2: Home / Debian: Data (verschlüsselt) 
/dev/sda10      711153664 976773119 265619456 126,7G  7 HPFS/NTFS/exFAT ### Windows Daten
Probleme:
1. Zunächst dachte ich, ich könnte über die RAW Disk Funktion einfach direkten Zugriff erlauben. Führt aber leider zu schweren Problemen, wenn Host und Guest gleichzeitig zugreifen. Das gilt auch für Datenpartitionen - keine Ahnung, ob das generell am Zugriff liegt oder an der Tatsache, dass beide OS die Partitionen separat entschlüsseln.

2. Einbindung als Shared Drive: Nur begrenzt möglich, denn dann müsste ich die fstab umschreiben. Das hätte zur Folge, dass kein normaler Boot mehr möglich wäre

3. Swap kann nur vom Host genutzt werden .... kann vernachlässigt werden

Lösungsvorschläge:

1. Vor der Virtualisierung alle entsprechenden Partitionen umounten - völlig unpraktikabel und schlicht unmöglich - dann müsste ich ja home im laufenden Betrieb rauswerfen, und da liegen die virtualbox Daten drauf

2. "dynamische" fstab: Falls das System normal gestartet wird, greift die normale fstab. In der Virtualisierung hingegen werden home, data und boot als shared Folder gemountet. Linux 2 Root müsste dabei im Host umountet werden - das wäre noch verschmerzbar.

Fragen:

1. Gibt es eine Möglichkeit, eine fstab mit "Bedingungen" zu versehen? Alternativ wäre der schmutzige Weg natürlich, das System erst starten zu lassen, dann die Partitionen zu umounten und shared neu einzubinden.

2. Wo wäre der beste Ort, um ein solches Skript "krisensicher" und "zukunftssicher" einzubinden?

3. Wie erkennt das OS am besten, dass es in einer virtuellen Umgebung läuft? Ich dachte, ich könnte eventuell die Hardware nutzen - If CPU= then, aber die könnte sich bei einem Update von VBox ja auch ändern.

4. Alternative Ansätze, die ich bisher noch nicht bedacht habe?

Ich bin gespannt auf eure Ideen,

mfg

Brancaleone
OS:
Debian Testing mit LXDE

Lizenz:
WTFPL V2
http://sam.zoy.org/wtfpl/

owl102

Re: Dual Boot, Vollverschlüsselung und Virtualisierung

Beitrag von owl102 » 30.05.2017 09:01:43

Brancaleone hat geschrieben:2. Einbindung als Shared Drive
Alternativ könntest du auch die Verzeichnisse des Gastes, die auch via Host erreichbar sein sollen, per NFS exportieren.

Brancaleone
Beiträge: 62
Registriert: 20.02.2009 14:24:01

Re: Dual Boot, Vollverschlüsselung und Virtualisierung

Beitrag von Brancaleone » 30.05.2017 09:43:13

Wäre jetzt unter dem Aspekt der Performance interessant, löst aber nicht das Grundproblem, das ich derzeit in der initramfs sehe. Diese müsste beim Booten die Umgebung erkennen und entweder NFS/Shared Directories oder Partitionen mounten. Das ließe sich sicherlich leicht über ein entsprechendes Skript lösen, aber ich empfinde dieses Vorgehen als eher umständlich. Ich suche nach einer Lösung, die mit Updates über mehrere Jahre kompatibel ist und keine manuelle Betreuung erfordert ....

Obwohl das vielleicht ein passender Ansatz wäre, ein entsprechendes Script in die init einzubinden... Allerdings habe ich offen gestanden keine Ahnung, ob ich auf diese Weise eine alternative fstab zuweisen könnte. Möglich wäre es sicher, aber dauerhaft zuverlässig???
OS:
Debian Testing mit LXDE

Lizenz:
WTFPL V2
http://sam.zoy.org/wtfpl/

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Dual Boot, Vollverschlüsselung und Virtualisierung

Beitrag von breakthewall » 30.05.2017 21:37:00

Brancaleone hat geschrieben:mit cryptsetup Vollverschlüsselung jeder einzelnen Partition (außer boot natürlich).
Eine kleine Anmerkung hierzu. Wenn Du Grub verwendest, dann ist dieser seit Version 2 in der Lage auch verschlüsselte Datenträger zu entsperren. Daher muss /boot als sehr sensibler Bereich nicht unverschlüsselt bleiben. Das ist einfach zu bewerkstelligen indem der Inhalt von /boot zunächst gesichert wird. Dann wird /boot via cryptsetup formatiert, geöffnet und anschließend mit einem z.B. Ext4 Dateisystem formatiert. Nun kannst wieder die Daten nach /boot verschieben, und alternativ auch dort z.B. nur für Root lesbare Schlüsseldateien ablegen um die anderen Volumes zu entschlüsseln. Dann musst /boot nur noch mit korrekter Crypto-UUID in die crypttab eintragen, mit none für die Passworteingabe während der Rest via Schlüsseldatei entsperrt wird, und dann sollte der /boot Eintrag in der fstab noch daran angepasst werden. Jetzt noch ein update-grub && update-initramfs -u -k all dann kannst dein System mit verschlüsseltem /boot Volume starten. Leider macht der Debian-Installer das nicht automatisch. Aber ist kein Hexenwerk das nachzurüsten.

Brancaleone
Beiträge: 62
Registriert: 20.02.2009 14:24:01

Re: Dual Boot, Vollverschlüsselung und Virtualisierung

Beitrag von Brancaleone » 02.06.2017 06:42:04

Danke für den Hinweis. Habe ich gleich mal gemacht, musste nur noch ein grub-install nachschieben, aber das liegt wahrscheinlich auch nur daran, dass ich zwischenzeitlich das Booten auf die beiden Systempartitionen verschoben habe. Theoretisch sind die meisten Probleme auch gelöst - mein Ansatz sieht folgendermaßen aus:

1. "Temporäre" Partitionen mounten
2. Über nofail + xsystemd-timeout als "nicht notwendig" markieren
3. home, boot und Daten wahlweise als ext4 oder vboxsf einbinden

Allerdings liegt der Teufel wie immer im Detail. Derzeit startet das virtualisierte System zwar blitzschnell durch und läuft auch so problemlos, scheint die nofail-devices der fstab aber vollständig zu ignorieren. Der Boot rasselt in zwei Sekunden durch - von Warten kann keine rede sein. Ich kann anschließend z.B. home problemlos manuell mounten, beim Start fehlt es aber. Spannend wird es sowieso noch einmal, wenn ich die crypttab einbinde - ich habe noch nicht getestet, wie die auf fehlende Devices reagiert.

Edit: OK, sieht so aus, als hätten die Modules schuld. Nachdem ich sie im emergency mode nachgeladen habe, funktioniert auch die Einbindung. Allerdings habe ich sie vorsorglich auch bereits zu Anfang in der /etc/modules eingetragen - entweder wird die nicht übenommen oder schlicht zu spät geladen ....
OS:
Debian Testing mit LXDE

Lizenz:
WTFPL V2
http://sam.zoy.org/wtfpl/

Antworten