• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] OpenSUSE 11.2: Verschlüsselung LUKS + LVM + RAID-1

F9race

Newbie
Hallo zusammen,

nachdem ich viel Gutes über OpenSUSE 11.2 gehört habe und nun auch die Verschlüsselung des gesamten Systems einschließlich des Root-Dateisystems im Installer unterstützt wird, möchte ich nach einer Zeit der Abstinenz mal gerne wieder meine frühere, langjährige Lieblings-Distribution installieren. Im Moment scheitere ich allerdings genau beim Punkt Verschlüsselung, und hoffe, dass Ihr mir über diese Hürde hinweg helfen könnt.

Ich habe ein System, das ich nach folgendem Rezept eingerichtet habe:
http://www.iverbi.de/slackware/RAID1_LVM_LUKS_Slackware12_2_Howto.html

Ich würde Partitionierung, RAID-1-Verbund, LVM und LUKS-Verschlüsselung gerne lassen, wie sie sind, und auch /home komplett unverändert weiter nutzen, nur eben mit OpenSUSE 11.2 statt Slackware 12.2.

Das Problem: In YaST gelingt es mir einfach nicht, die vorhandene Struktur zu übernehmen. YaST will mich zwingen, eine verschlüsselte Volume Group anzulegen, und kann mit dem verschlüsselten RAID-1-Verbund /dev/md1 offenbar nichts anfangen. Es kann aber gut sein, dass ich da nur irgendwas falsch verstehe, denn die Struktur in YaST und die Hilfstexte dazu sind leider nicht ganz so klar...

Ich wäre wirklich äußerst dankbar, wenn Ihr mir hier ein paar Tipps geben könntet, wie ich weiterkommen kann. Ziel ist, wie gesagt, folgender Aufbau:

4 - Dateisystem: ext2 für /boot auf /dev/md0, ext4 für den Rest
3 - LVM: /dev/md1 wird der Volume Group cryptvg zugeordnet, die wiederum zwei logical volumes für root und home enthält
2 - LUKS für /dev/md1
1 - RAID-1 für /dev/md0 (/boot) und /dev/md1 (verschlüsselter Rest)
0 - Drei Partitionen auf jeder Festplatte: swap, eine kleine und eine große Partition für die beiden RAID-1-Verbünde

Wie gesagt: Das ist alles schon da, aber wie kann ich darauf jetzt ein OpenSUSE 11.2 installieren, ohne das alles neu einzurichten?

Allerherzlichsten Dank!

F9Race

EDIT: Musste den Betreff etwas umschreiben, damit "[gelöst] vorne hin passt. Also nicht wundern, wenn die Antworten einen etwas anderen Betreff haben.
 
OP
F

F9race

Newbie
Hallo zusammen,

meine Frage ist zwar noch nicht alt, dennoch noch mal meine Bitte um Hilfe. Falls mein Anliegen unverständlich sein sollte, fragt mich bitte, was Ihr an Infos noch benötigt. Ich würde mein Vorhaben wirklich gerne bald in die Tat umsetzen.

Danke nochmals!

F9Race
 
Irgendwo im YaST-Partitionierer (Experten-Modus?) gibt es die Möglichkeit, eine vorhandene fstab übernehmen zu lassen (z.B. von einem externen Medium, aber auch über ein noch vorhandenes System), ich mache das regelmäßig so und das funktioniert sehr zuverlässig. Nach dessen Übernahme solltest Du jede Partition genau überprüfen (Verschlüsselung, Einhängepunkte, Dateisystem, formatieren / nicht formatieren etc.), dann sollte das eigentlich locker klappen.
 
OP
F

F9race

Newbie
Danke, ja, ich kenne diese Funktion. Und tatsächlich wird auch alles richtig angezeigt. Insbesondere wird erkannt, das mein RAID-1-Verbund /dev/md1 verschlüsselt ist. Auch das Zuordnen von /dev/md1 zur Volume Group cryptvg klappt.

Beim "Partitionieren" (genauer: beim Einrichten der Logical Volumes und beim Festlegen des jeweiligen Dateisystems) bleibe ich dann aber stecken.

Ich möchte zwei Logical Volumes (LV) einrichten, nämlich /dev/cryptvg/root (oder /dev/mapper/cryptvg-root, das ist äquivalent) unter / und eines /dev/cryptvg/home (oder /dev/mapper/cryptvg-home) unter /home.

root will ich formatieren, und unter / einhängen, was auch klaglos von YaST akzeptiert wird.

ABER jetzt das PROBLEM:

/dev/cryptvg/home möchte ich unter /home einhängen, ohne zu formatieren. Und hier meckert YaST, dass das Dateisystem unbekannt sei, und das LV deshalb nicht eingehängt werden könne. Und über diesen Punkt komme ich nicht hinaus.

Nun habe ich vor lauter Verzweiflung tatsächlich schon zwei Mal /home formatiert (Daten natürlich vorher auf externem Laufwerk gesichert).
1. Versuch: Ich werde nach keinem Kennwort gefragt, und das System "sieht" kein verschlüsseltes /dev/md1.
2. Versuch: Dieses mal habe ich die Volume Group verschlüsselt, indem ich einfach das Häkchen gesetzt habe. Ergebnis: System bootet nicht durch.

Was mich kirre macht: Die wunderschöne Grafik, die die Struktur der "Partitionierung" anzeigt, ist absolut richtig, trotzdem funktioniert es nicht. Dabei will ich ja eigentlich nur das machen, was in besagtem Dokument beschrieben ist, nur eben mit OpenSUSE 11.2:
http://www.iverbi.de/slackware/RAID1_LVM_LUKS_Slackware12_2_Howto.html.

Weiß jemand Rat? Wahrscheinlich verstehe ich da einfach was nicht. Nur: Was?

F9Race
 
OP
F

F9race

Newbie
gropiuskalle schrieb:
Irgendwo im YaST-Partitionierer (Experten-Modus?) gibt es die Möglichkeit, eine vorhandene fstab übernehmen zu lassen (z.B. von einem externen Medium, aber auch über ein noch vorhandenes System), ich mache das regelmäßig so und das funktioniert sehr zuverlässig. Nach dessen Übernahme solltest Du jede Partition genau überprüfen (Verschlüsselung, Einhängepunkte, Dateisystem, formatieren / nicht formatieren etc.), dann sollte das eigentlich locker klappen.

Ich vermute, mein voriger Post war einfach zu lang, daher noch mal in Kurzform. Die Funktion kenne ich natürlich, und sie funktioniert auch. Tatsächlich wird erkannt, dass /dev/md1 verschlüsselt ist. Aber: Ich werde nirgendwo nach der LUKS Passphrase gefragt. Somit bleibt YaST der Zugriff auf /dev/md1 und die darauf liegenden Logical Volumes verwehrt. Folgerichtig erkennt es das Dateisystem auf /home nicht, und kann es nicht einhängen.

Wie kriege ich YaST dazu, /dev/md1 zu entschlüsseln und dann die Logical Volumes zu übernehmen?

Nochmals besten Dank!

F9Race
 
Aber: Ich werde nirgendwo nach der LUKS Passphrase gefragt. Somit bleibt YaST der Zugriff auf /dev/md1 und die darauf liegenden Logical Volumes verwehrt. Folgerichtig erkennt es das Dateisystem auf /home nicht, und kann es nicht einhängen.

Hm... ist das so? Meine Premiere beim Übernehmen einer verschlüsselten Partition steht noch bevor (aber ich weiß schon, warum ich von einem verschlüsselten /home lieber die Finger gelassen habe) - ich würde versuchen, die Partition nach der Grundinstallation einzuhängen und dann auch systemweit einzubinden, dann wird zumindest die Einrichtung des Systems nicht aufgehalten. Ein provisorisches /home lässt sich ja schnell einrichten und anschließend wieder entsorgen.
 
OP
F

F9race

Newbie
Wenn ich richtig verstehe:

Erst eine Art "Schattenpartitionierung" anlegen, darauf installieren, dann die verschlüsselten Teile einhängen und schließlich das installierte System dorthin "umziehen". Hast du das gemeint?

Schatteninstallation, dann umziehen?
Dazu müsste ich allerdings trotzdem zuerst /dev/md1 entschlüsseln, damit ich überhaupt die vorhandenen Logical Volumes (oder die Volume Group) verkleinern und die "Schattenpartitionen" (oder zusätzliche Logical Volumes) anlegen kann. Für /home wäre das Vorgehen in Ordnung, in Bezug auf / habe ich da allerdings ein paar Bedenken, die aber vielleicht unbegründet sind. Immerhin beschreibt ein Artikel in der Support Datenbank (die jetzt irgendwie anders zu heißen scheint...) so was Ähnliches. Allerdings mit einem großen Unterschied: Dort wird Verschlüsselung auf die Volume Group angewendet, bei mir aber auf den RAID-1-Verbund, also das Physical Volume.

Wie es sein sollte
Die Idee ist ja, dass ich beim Booten nach der LUKS-Passphrase gefragt werde. Das klappt bei Slackware unabhängig davon, auf welcher Ebene man verschlüsselt hat. Es passiert in Etwa folgendes (mag sein, dass die letzte technische Genauigkeit fehlt, ich bin da eigentlich Laie).
In meinem Fall startet der Kernel zuerst die beiden RAID-1-Verbünde, also /dev/md0 für /boot und /dev/md1 für den Rest (ausgenommen swap). LILO weiß, dass /root auf /dev/cryptvg/root liegt, und der Device Mapper erkennt, dass dieses wiederum auf /dev/md1 untergebracht ist. Das System stoppt und fragt nach der LUKS Passphrase.

Was bei SuSE passiert
SuSE erkennt beim Booten offenbar hingegen nicht, dass /dev/md1 verschlüsselt ist. Es stoppt nicht und gibt mir keine Möglichkeit, eine LUKS Passphrase einzugeben. Was viel helfen würde, wäre eine Möglichkeit, das Installations-System dazu zu bringen, zu stoppen, und dann auf der Kommandozeile /dev/md1 zu entschlüsseln. Aber die Tatenkombinationen, mit denen man früher auf eine Konsole wechseln konnte, z. B. Strg.Alt-F2, zeigen jetzt zwar die wichtigsten Protokolldateien an, ich finde aber keine Möglichkeit, irgendwo selbst was einzugeben.

Ich frage mich immer noch, wo mein Denkfehler ist, denn dass es nicht geht, kann ich mir bei SuSE ja an sich kaum vorstellen....

F9Race
 

Rainer Juhser

Moderator
Teammitglied
Wie wäre es denn, wenn du mal versuchst, das ganze in einer VM durchzuspielen?

Noch etwas, was mir aufgefallen ist: In dem Slackware-Howto ist von LILO die Rede. Benutzt du auch bei Suse weiterhin LILO, oder bist du jetzt auf Grub umgestiegen? Und könnte das einen Einfluss haben?

Ansonsten klinke ich mich direkt wieder aus, da ich mich mit LVM und Verschlüsselung noch nicht praktisch befasst habe.
 
Zeige auch mal die fstab, die den blueprint Deines gewünschten Aufbaus liefert.

Was meine Idee wohl tatsächlich nicht umsetzbar macht, ist die verschlüsselte /-Partition, denn Du hast Recht, wenn Du schreibst, dass derlei zwar für ein /home klappen mag, naturgemäß aber nicht für eine (zunächst unverschlüsselte) /-Partition.

Ganz ehrlich: auch wenn es vermutlich eine Lösung gibt, Dein Vorhaben umzusetzen (die ich aber nicht liefern kann, weil ich wiederum keinen Plan von RAIDs habe), so würde ich doch nahe legen wollen, das grundsätzliche Konzept zu überdenken. Die komplette Verschlüsselung eines Systems ergibt für mich schon aus Performance-Gründen wenig Sinn, auch sicherheitstechnisch... okay, so was mag Ansichtssache sein, aber Fakt ist, dass solche Konstruktionen nicht eben die Flexibilität eines Systems fördern. Ließe sich die Verschlüsselung nicht auf einen klar umrissenen Bereich beschränken?
 
OP
F

F9race

Newbie
Vielen Dank für die guten Anregungen, auf die ich weiter unten einzeln eingehe. Erst mal, wie gewünscht, hier die /etc/fstab aus dem gerade laufenden Slackware64-current-System:

Code:
/dev/sda1        swap             swap        defaults         0   0
/dev/sdb1        swap             swap        defaults         0   0
/dev/cryptvg/root /                ext4        defaults         1   1
/dev/md0         /boot            ext2        defaults         1   2
/dev/cryptvg/home /home            ext4        defaults         1   2
#/dev/cdrom      /mnt/cdrom       auto        noauto,owner,ro  0   0
/dev/fd0         /mnt/floppy      auto        noauto,owner     0   0
devpts           /dev/pts         devpts      gid=5,mode=620   0   0
proc             /proc            proc        defaults         0   0
tmpfs            /dev/shm         tmpfs       defaults         0   0

Flexibilität
Was den Vorschlag angeht, das Konzept zu überdenken: Ich habe mehrere Stellen im Internet gefunden, die exakt diese Struktur empfehlen, gerade weil sie flexibler ist als andere. Ich kann nämlich jederzeit meine "Partitionierung", also die Aufteilung in logical volumes komplett umbauen, Dateisysteme vergrößern und verkleinern und auch weitere Platten dazunehmen, ohne am RAID-Verbund herumfummeln zu müssen, oder mir jedes Mal Gedanken machen zu müssen, wie ich einen hinzugekommenen Bereich jetzt nachträglich verschlüsseln könnte.

Performance-Aspekte
Ich habe das jetzt seit Slackware 12.1 immer so gemacht, und das Ganze läuft auf drei Rechnern (jeder mit je zwei identischen Platten) seit mehreren Jahren störungsfrei. Was die Performance-Bedenken angeht: Ich kann da keine Einbußen feststellen. Tatsächlich vermute ich, dass RAID-1 hier sogar beschleunigend wirkt. Denn die Köpfe beider Platten arbeiten ja zusammen, und suchen auf beiden Platten nach Daten. Lesezugriffe gehen also theoretisch doppelt so schnell, was wahrscheinlich die Rechenzeit für die Entschlüsselung mehr als wett macht. Gemessen habe ich das alles nicht, aber mir erscheinen alle drei Systeme, die ich so eingerichtet habe, ausgesprochen flott.

Sicherheit
Ob es überhaupt Sinn ergibt, Desktop-Systeme zu verschlüsseln, kann man lange diskutieren. In vielen Fällen wird es verzichtbar sein, aber ich sehe vor Allem folgenden Vorteil: Nicht autorisierte Benutzer, können mein System nicht einfach hochfahren. Sollte meine Platte oder mein ganzer Rechner gestohlen werden, wird der Dieb erst mal wenig damit anfangen können. Bei Laptops ist die Verlustgefahr viel größer, und die Verschlüsselung deshalb meines Erachtens notwendig, nicht optional.

Warum will ich die vorhandene Struktur behalten?
Weil sie sich, wie gesagt, seit einigen Jahren gut bewährt, und weil ich vor dem Verschlüsseln immer die Festplatten mit Zufallszahlen vollschreibe. Das dauert bei großen Platten viele Stunden. Ich will das einfach nicht noch mal machen müssen. Außerdem: Wenn Slackware das kann, heißt es, dass der Standard-Linux-Kernel es kann. Dann sollte der SuSE-Kernel das doch eigentlich erst recht beherrschen...? Zumal SuSE ja mal Pionierarbeit geleistet hat, was die Nutzung von Linux auf Laptops angeht. Woanders gab es ähnlich leistungsfähige Konzepte für Nutzerprofile erst Jahre später oder bisher überhaupt nicht. Da wäre es doch nur logisch, wenn so etwas Wichtiges, wie die Verschlüsselung von Festplatten auch gut unterstützt werden würde. Dachte ich jedenfalls.

Wenn es auf Slackware so gut läuft, warum will ich dann SuSE installieren?
Vor dem Umstieg auf Slackware hatte ich viele Jahre SuSE im Einsatz. Ich war insgesamt sehr zufrieden damit. Aber genau das Thema Verschlüsselung, das mir sehr wichtig geworden ist, war seinerzeit nicht gut gelöst. Nun wollte ich 11.2 probieren, weil ich SuSE immer noch toll finde (Slackware aber auch!), und weil ich sehr viel Gutes darüber gehört habe, zum Beispiel auch, dass jetzt das Thema Verschlüsselung gut integriert sei.

LILO oder Grub?
Grub ist in vielen Punkten moderner als LILO, aber der Verteran hatte gegenüber früheren Versionen von Grub einen Vorteil: Er hat sich automatisch in die MBRs aller Platten des RAID-Verbunds geschrieben. Bei Grub musste man das bis vor Kurzem händisch selbst erledigen. Wenn man es vergaß, war im Falle eines Crashs das RAID nutzlos.
Aber bei SuSE ist Grub nun mal die Voreinstellung, und habe auch nicht wirklich was dagegen. Ich würde annehmen, dass YaST sicher stellt, dass er überall hingeschrieben wird, wo er hin soll. Andererseits: LILO hat mir noch nie irgendwelche Probleme bereitet, abgesehen davon, dass ich schon mal vergessen habe, lilo aufzurufen, nachdem ich einen neuen Kernel installiert oder die Partitionierung geändert hatte. ;) Ansonsten lief er viele Jahre auf SuSE und zuletzt eben auf Slackware einwandfrei.

Virtualisierung
Könnte ich natürlich machen, aber ich würde entweder nicht sehen, was wirklich passiert, oder an denselben Punkten stecken bleiben.... Außerdem scheue ich ein wenig den Aufwand, obwohl es mit VirtualBox nicht so schwierig ist. Aber selbst wenn es ginge, würde mir das wenig helfen: Erstens müsste ich es dann noch mal installieren, zweitens könnte das dann trotzdem fehlschlagen, weil die virtuelle Umgebung eben doch anders ist als die "echte" Hardware.

Verschlüsselung bei OpenSUSE 11.2 nur mit LVM?
Beim weiteren Recherchieren bin jetzt auf den Hinweis gestoßen, dass Verschlüsselung bei OpenSUSE nur mit LVM möglich ist. Ich hatte das zuvor schon gelesen, aber wohl nicht richtig verstanden. Nach meinen Beobachtungen heißt das wohl, dass man eben keine Festplatte und keinen RAID-Verbund verschlüsseln kann, sondern nur eine Volume Group. Die Verschlüsselung setzt also eine Ebene höher an. Ich hatte trotzdem gehofft, dass man eine bereits verschlüsselte Partition weiter nutzen kann, auch wenn man so etwas im OpenSUSE-Installer nicht erzeugen kann. Das scheint aber nicht zu gehen.
Könnt Ihr das bestätigen, oder gibt es doch einen Weg?

F9Race
 
OP
F

F9race

Newbie
Vielleicht war mein letzter Post etwas viel zum Lesen. Deshalb hier noch mal kurz meine Frage:

Unterstützt OpenSUSE 11.2 Verschlüsselung auf Geräte-Ebene, also zum Beispiel für einen RAID-1-Verbund /dev/md1, oder geht das erst "weiter oben" mit LVM, also zum Beispiel für eine Volume Group, etwa cryptvg in meinem Fall?

Ich wäre für eine Klarstellung dankbar, denn wenn es mit /dev/md1 nicht gehen sollte, spare ich mir die Zeit für weitere Recherchen. Wenn es aber doch geht, werde ich weiter versuchen herauszufinden, wie.

Danke nochmals!

F9Race
 
OP
F

F9race

Newbie
So schnell gebe ich nicht auf, ein Mal (mindestens) hake ich deshalb noch nach. Immer noch in der Hoffnung, dass jemand von Euch sowas schon mal gemacht hat mit OpenSUSE 11.2 und mir helfen kann, damit ich es auch hin bekomme.

Also, in der Beschreibung von OpenSUSE 11.2 http://de.opensuse.org/OpenSUSE_11.2 steht:
Dateisysteme und Partitionierung
[...]
Es ist nun möglich, die komplette Festplatte zu verschlüsseln.

Da steht also Festplatte. Da steht nicht Logical Volume. Wenn das keine unpräzise Formulierung ist, sollte das, was ich vorhabe, möglich sein. Nur YaST scheint da ein wenig im Wege zu stehen. Wenn ich zum richtigen Zeitpunkt auf die Kommandozeile wechseln könnte, würde ich wohl weiterkommen. Aber die alte Tastenkombination Strg-Alt-F2 oder Strg-Alt-F6 bewirkt leider nichts.

Irgendwie kann ich es ja nicht glauben, dass ich der einzige oder der erste sein könnte, der das probiert, und deshalb niemand mehr antwortet... ?
Wie gesagt: Über Tipps, die mir hier weiterhelfen, würde ich mich sehr freuen.

Herzlichen Dank schon vorab!

F9Race
 

nunja

Newbie
Nunja, openSUSE 11.2 über die per YaST von der CD bzw. DVD durchgeführte Installation keine Festplattenverschlüssellung auf Geräteebene (Hardware) sondern nur über die darüberliegende Ebene per LVM mithilfe von Luks.

Andere Linuxzusammenstellungen können das, z.B. unter Verwendung von /dev/loopX. Dabei wurden auch die entsprechenden Dateien aus dem Bereich initrd angepaßt.

Für openSUSE 11.2 muß man den traditionellen Weg gehen. Erst drei Festplattenteilungen anlegen, eine für eine "normale" Installation ohne Verschlüsselung, eine die man mit etwas Handarbeit nach der Erstinstallation in ein verschlüsseltes /root umwandelt und eine Teilung für das ebenfalls per Hand anzulegende verschlüsselte /home.
Siehe auch http://en.opensuse.org/Encrypted_Filesystems sowie http://en.opensuse.org/Encrypted_Root_File_System und http://en.opensuse.org/Encrypted_Root_File_System_with_SUSE_HOWTO
 
OP
F

F9race

Newbie
Danke, das habe ich mittlerweilen schon fast befürchtet.
Das bedeutet, dass ich OpenSUSE 11.2 nicht auf meiner vorhandenen Struktur installieren kann --- schade. :(

Und ein ein wenig verwunderlich: Andere Distributionen jeden Alters können es, warum ausgerechnet OpenSUSE nicht? Eine sonst wohl sehr schöne Distro, was man so hört.

Nunja, danke nochmals.

Die Dokumente hinter deinen Hyperlinks hatte ich natürlich alle vorher gelesen, mehr als ein Mal! Leider setzt das Vorgehen voraus, dass ein unverschlüsselter Bereich vorhanden ist, was es bei mir nicht mehr gibt, und es ist recht umständlich und fehlerträchtig. Vielleicht wird's ja beim nächsten Mal was, mit OpenSUSE 11.3 oder 12.0. ;)

F9Race
 
OP
F

F9race

Newbie
In OpenSUSE 11.4 gibt es endlich eine vernünftige Unterstützung in YaST. Ist sehr schön gelöst, finde ich, mit einer kleinen Einschränkung: Es gibt keine Möglichkeit, vor dem Verschlüsseln das Dateisystem mit Zufallszahlen zu füllen, was die Sicherheit zumindest theoretisch noch mal erhöhen kann. Aber das ist auch eine extrem zeitaufwändige Prozedur, und wieviel das wirklich bringt wage ich nicht zu beurteilen.

Jedenfalls ist das Thema aus meiner Sicht nun gelöst, und sogar recht schön.

F9Race
 
Oben