# Wie verschlüssle ich ein auf SSD und HDD verstreutes System

## Gilgwath

Hallo Gentoo-Forum

Ich hab mir ein neues System zugelegt und wie immer wenn man ein neues Gentoo aufsetzt will man ja einige Dinge welche man in der Zwischenzeit gelernt hat umsetzen. Dazu gehört bei mir nebst dem einsatz von GRUB-2 und GPT als Partionstabelle auch das Verschlüsseln meines Systems. Ich hab mir einige Artikel und How-To's durchgelesen und hab jetzt eine vorstellung davon wie ich vorgehen müsste.

Zuerst dachte ich mir ich mach auf meiner 1 TB Grossen Sata3-Platte mit LVM eine VG und verschlüsse diese, so wie es in einigens How-To's vorgschelagen wird. Dann hab ich mich aber erinnert dass ich ja auf meiner SSD auf welcher ein Windwos läuft noch ca. 20 GB nicht formatierten speicher habe. Wäre doch nett wenn ich ich root, /boot und /usr (ohne /usr/portage) dort ablegen könnte. Wenn ich den Speicher auf der SSD in meine VG einbinde kann ich nicht mehr bestimmen welche Daten dort hin wandern, dass ist also keine Option. Ohne LVM zu arbeiten würde heissen ich hab irgendwo zwischen 5 und 7 verschiedene Schlüssel, jenach Aufbau des Partitions-Schema. So etwas ist alles andere als praktisch. Zu dem wird die Datensicherun unötig kompliziert.

Hat mir jemand einen guten Ratschlag wie ich das Problem lösen soll?

Vielen Dank für eure Antworten

----------

## Obelix

Hi,

korrigiere mich, wenn ich falsch liege (und jetzt kommts) ABER:

- du erwähnst ein Windows auf einer SSD. Daraus schließe ich, dass du eigentlich unter Windows arbeitest, denn sonst wäre nicht auf der schnellen "Platte" das Windows und Linux auf einer normalen.

- Wenn du 1 TB Platz für Daten hast, und diese verschlüsselst, kommst du (wenn ich mit meiner vorigen Annahme recht habe) vom Windows aus nicht an deine Daten auf der 1 TB Platte ran.

Das alles ist aber Wurscht, wenn deine Daten sowieso wo anders liegen (verschüsselt?).

Nun zur Verschlüsselung: Wenn du /usr (ohne Portage) und /boot und /root auf die SSD legst, muss das ja nicht zwangsweise verschlüsselt sein, denn da sind ja keine kritischen Daten drauf. Das maximale, was jemand, der dein System klaut herausfinden kann, ist, welche Programme du nach /usr installiert hast.

Die kritischen (Benutzer-)Daten sollen ja eh nicht auf die SSD, sondern auf die HDD. Und diese würde ich dementsprechend partitionieren, damit zum Schluß eine Datenpartition übrig bleibt, die du mit cryptSetup verschlüsselst. LVM für eine einzelne Partition zu verwenden erschließt sich mir nicht.

Wenn ich mit meiner ersten Annahme NICHT recht habe, dann wäre vielleicht folgende Überlegung noch der Verschwendung eines Gedanken wert:

Virtualisiere dein Windows, dann kannst du, obwohl du im Linux bist, was drin machen.

Pack deine gesamte Installation von Linux auf die SSD (unverschlüsselt)

Verschlüssel die 1TB Platte und pack da die wichtigen und kritischen Daten drauf.

Stelle diese Partition dann nach dem Mounten der virtuellen Maschine bereit, dann kommst du auch von Windows aus an die Daten.

Sollte jetzt jemand das System klauen, kann er nach dem Einschalten zwar Linux booten, aber kommt nicht an die Daten.

Und noch ein Satz zum Abschluß: Auch verschlüsselte Daten sollten gesichert werden, und diese Sicherung sollte dann auch verschüsselt sein, sonst wars für die Katz...

----------

## Gilgwath

Mein Arbeitssystem war, ist und wird auch immer ein linuxbasiertes System sein. Ich benutze Windwos nur zum Zocken, da aber die meisten Spiele welche ich spiele sehr texturenintensiev sind, profitiere ich von der SSD in verschiedenen hinsichten.(Windwos virtualsieren ist deshalb leider eine schlechte Idee) Zu dem bietet mir Gentoo die Felxibilität es auf verschiedene Platten zu verteilen, was bei Windwos so weit ich weiss schwierig ist. Wenn ich unter Windwos arbeiten würde, dann würde ich mir keine Gedanken darum machen mein Gentoo-System zu verschlüsseln.   :Wink:  Es ist mir eigentlich auch mehr als recht, wenn ich nicht (und auch sonst keiner) von meinen Windwos aus auf die unter Gentoo erzeugten Daten zugreifen kann.

Du würdest mir also nahe legen die Verzeichnisse /var, /etc und /home (habe ich etwas vergessen?) auf der HDD zu verschlüsseln und /boot, root und /usr für jeden lesbar auf die SSD zu schreiben?

Einfach mal angenommen jemand reisst sich meinen Rechner unter den Nagel. Alles was er herausfinden kann wird ihm dabei helfen sein Diebesgut zu knacken. /boot, root und /usr über eine Live-CD zu Mounten wird ihm nicht schwer fallen. Alles was ihm das erzählen kann ist was für Programme ich installiert habe, er kann an meinem Bootloader und an meinem Kernel herumfummeln und er kann ein Stück weit nachvollziehen was ich alles gebastelt habe, so lange ich als Root an meinem System angemeldet war. Bringt alles nicht wirklich viel oder? Trotzdem kann ich mir vorstellen dass man das System nach einiger Frickelei wahrscheinlich in einem ziemlich entstellten Zustand booten? Ich meine ist ja alles da was es wirklich braucht ausser /etc. Welche gefahr birgt das?

Wie siehts im laufenden Betrieb aus (Gentoo oder Windwos. Wo bei mich die Windwosdaten nicht kratzen)? Wenn jemand ins System eindringt während Gentoo läuft, dann würde mich eine Verschlüsselung auch nicht mehr schützen. Ausser davor das dieser jemand meine Daten stiehlt und sie auf einem anderen Rechner liest.  Oder habe ich da was verpasst? Naja gut, wenn jemand in meinem Rechner ist, dann ist so oder so schon vorher etwas schief gelaufen.

Wegen der Sicherung musst du dir keine Sorgen machen. Der grossteil meiner Privatdaten liegen momentan in unserem Natursteinkeller auf einer verschlüsselten externen Festplatte. Da kann die ganze Hütte abbrennen und denen passiert nix.

----------

## Obelix

ok, dann hab ich das wohl miss(t)interpretiert, mit dem Windows.

Empfehlen in dem Sinn kann ich bei der Konstellation nicht wirklich etwas (ich stand vor einer ähnlichen Entscheidung und habe mich durchgerungen eine zweite SSD anzuschaffen), aber wo wir schon mal einer Meinung sind, ist, dass niemand mit den Systemdaten wirklich etwas anfangen kann, auch wenn sie unverschlüsselt sind. Also zumindest sehe ich darin keine Gefahr (ich habe Kundendaten auf meinem Server liegen, bei dem die Systemplatte nicht verschlüsselt ist, aber die Datenplatten sind alle verschlüsselt).

An die verschlüsselten Daten kommt jeder "Einbrecher", solange der Rechner läuft, aber das ist ja normal. Man könnte eine Art Sicherheitsstufe einbauen und die verschlüsselten Partitionen immer wieder unmounten, solange man nicht aktiv arbeitet. Das ließe sich sicherlich auch per script realisieren...

Solange du ebenfalls der Meinung bist, dass die Systemdateien unkritisch sind (wenn nicht, klär mich bitte auf), dann würde ich mir den Zirkus nicht antun, dass ich die Systempartitionen verschlüssle. Denn das ist ja kein Geheimnis.

Die Daten allerdings würde ich (abhängig von der Relevanz) schon verschlüsseln. Das ist aber, wenn man _nicht_ LVM oder RAID einsetzt, nicht weiter tragisch.

Ich persönlich habe LVM (bisher) noch nicht im praktischen Einsatz. Meine "worst case" Aktion war bisher 2xRAID5-Türmchen die ich zu einem RAID1 gespiegelt habe zu verschlüsseln. Von solchen Konstrukten kann ich aber aus Erfahrung nur aufs schärfste abraten. Wenn mal der Wurm drin ist, dann ist er drin. Ich habe in den letzten Wochen mindestens 4 Versuche unternommen, das RAID1 wieder sauber zu bekommmen. Da aber jeder RAID5 Turm 12TB hat, dauert der Sync ca. 6 Tage. Und nach 55, Tagen (grob um die 94% sync) ist alles wieder auseindander gefallen.

Jetzt löse ich grad das RAID1 auf und werde zukünftig nachts einen rsync laufen lassen, der den einen RAID5 Turm auf den anderen spiegelt. Beide sind verschlüsselt und somit relativ sicher.

Aber insgesamt finde ich das ein extrem spannendes Thema...

----------

## bell

Bei LVM kannst Du normalerweise bestimmen auf welches PV die LV kommt.

```
lvcreate -n ssdroot volumegroup /dev/sdb1
```

In wie fern das transparent durch die Verschlüsselung unterstützt wird kann ich nicht sagen. Das könntest Du mal testen.

----------

## Gilgwath

 *bell wrote:*   

> Bei LVM kannst Du normalerweise bestimmen auf welches PV die LV kommt.
> 
> ```
> lvcreate -n ssdroot volumegroup /dev/sdb1
> ```
> ...

 

Gut das du mich darüber aufklärst. Dann hab ich das doch irgendwie falsch Verstanden. Ich hab das bis jetzt so verstanden das verschiedene Partitionen über eine zwischen Ebene zusammen gepapt werden und dann einen virtuellen grossen Kuchen bilden. In diesem virtuellen Speicher kann ich dann zwar LV erzeugen unabhängig von den grenzen der PV's. Aber dann muss ich mir das wohl eher wie eine Ansammlung von "Kuchenstücken" vorstellen, welche ich nach meinem Gutdünken als einzelne Stücke, eine Untergruppe von Stücken oder als ganzen Kuchen betrachten kann. Ich glaube langsam klingelts auch was der Unterschied zu RAID-0 ist.

 *bell wrote:*   

> In wie fern das transparent durch die Verschlüsselung unterstützt wird kann ich nicht sagen. Das könntest Du mal testen.

 

Ich denke mit der Verschlüsselung wird das schon klappen. Eine Verschlüsselung ist ja nichts anderes wie eine mathematisch clever angefertigte Brille die sich der Kernel aufsetzt bevor er die VG mountet.  :Cool:  Darum muss mann ja die init-scripte und das initramfs meist modifzieren damit man eine Passwortabfrage machen kann, die Schlüssel von einem USB geladen werden usw. Korrigier mich wenn ich hier auch einen Denkfehler gemacht habe. Wie gesagt ist LVM und Verschlüsselung sind für mich neu und ich bin froh um jede korrektur. 

Ich werde es mal wie bell vorgaschlagen hat versuche mit einem LVM zu lösen und mich dann wieder melden. Mal sehen was es dann zu berichten gibt. Vor erst Danke an alle.

----------

## bell

 *Quote:*   

> Aber dann muss ich mir das wohl eher wie eine Ansammlung von "Kuchenstücken" vorstellen

 So ist es. Und jede LV kann aus mehreren davon bestehen. Hab mir mal eine Commandline zusammengestellt um den Kuchen "von Oben" zu betrachten..

```
lvdisplay -C -o lv_name,lv_size,segtype,seg_start,seg_size,seg_tags,devices  -O devices
```

PS: Wenn Du oft am LVM was änderst, also LV's vergrößen und verkleinern etc. dann fragmentiert der Kuchen so dass es passieren kann dass nur noch Krümmel bleiben  :Wink: Last edited by bell on Tue Aug 14, 2012 2:49 pm; edited 1 time in total

----------

## cryptosteve

vgdisplay ..., oder?

----------

## bell

lvdisplay  :Wink:  habs korrigiert, Copy&Pasete-Error

 :Shocked:  EDIT: Beide Befehle bringen die selbe Ausgabe   :Shocked: 

----------

## cryptosteve

jetzt bin ich aber überrascht, dass sowohl vgdisplay als auch lvdisplay mit den genannten Parametern exakt das gleiche Ergebnis ausspuckt.  :Smile: 

----------

## Gilgwath

So nach einem erholsamen Urlaub und einer guten Woche herumgepröbel und bastelei kann ich mich wenigstens mit einem Teilergebnis zurück melden. 

Bilanz:

 *Windows geschrottet, da mit dd gelöscht, weil die Windows installation damals seinen Eigenen ESP gemacht hat und deshalb mein auf Papier   aufgeschriebenes Partitionsschema nicht mehr stimmte   :Laughing: 

 *Partitionen erstellt und LVM erstellt.

 *Veschlüsselung erstellt

 *Initramfs gebaut

 *Initscripte editiert

 *GRUB2 kompiliert und im ESP plaziert

 *Kernel konfiguriert und kompiliert

Fehlt nur noch der EFI-Menü eintrag für booten mit GRUB2. Aber da liegt der Hase im Pfeffer. Meine Gentoo-LiveCD bootet nicht im UEFI-Mode. Ich probiers mal mit Ubuntu oder so. Ich muss ja nur den Eintrag erstellen. Oder hat jemand eine bessere Idee?

----------

## mrueg

Ich hoffe ich hijacke den Thread jetzt nicht, aber ich stehe vor einem ähnlichem Problem demnächst (500gb hdd + 24gb ssd)

Bis jetzt habe ich immer im cryptsetup dm-mapper volume als unterste Schicht gehabt, in dem ein LVM Volume war. 

In diesem Fall muss ich also umgekehrt vorgehen? Erst ein LVM aufsetzen und dann die einzelnen LV verschlüsseln?

Oder könnte ich mit cryptsetup beide Festplatten verschlüsseln und dann die Mapperdevices als PV an LVM weiterreichen um eine Volumegroup daraus zu bilden?

----------

