GEOM: RAID1 und GELI

elesdo

Dämonologe
Hi,

hat jemand schon einmal versucht eine einzelne Partition aus einem GEOM_MIRROR nachträglich per GELI zu verschlüsseln? Bei dem Swap hat es geklappt, bei meiner Home-Partition habe ich folgendes Problem beim Attachen:

# geli attach -k /root/gm0s1f.key /dev/mirror/gm0s1f
MD5 hash mismatch for /dev/mirror/gm0s1f

Das könnte damit zusammenhängen, dass die Initialisierung durch Geli die MD5-Checksumme der RAID-Komponente verändert. Ich habe bis jetzt keine Möglichkeit gefunden, das zu verhindern. Ich bin für jede Hilfe dankbar.

Grüße
elesdo
 
Du wirfst leider nur Brocken hin.

Wie ist das bestehende Setup? Was hast du getan?

Da GELI einen Sektor fuer die Metadaten braucht, ist der Provider nachher 1-Sektor kleiner und passt nicht mehr in den Mirror. Falls du das wissen willst.
 
Als erstes arbeite ich die RAID1-Anleitung von Dru durch: http://www.onlamp.com/pub/a/bsd/2005/11/10/FreeBSD_Basics.html?page=1

Nach der Synchronisation und dem Neustart habe ich ein funktionsfähiges RAID1.

Jetzt möchte ich gerne Verschlüsseln, da ich unseren Innenminister nicht mag. Das habe ich die ganze Zeit schon ohne RAID1 mit GEOM_ELI gemacht. Hat immer sehr gut funktioniert.
Mein Plan ist es, so wie immer, den Swap und eine Partition die ich auf /crypt einhänge zu verschlüsseln. Vor RAID1 war der Swap /dev/ad0s1b und meine "Krypta" /dev/ad0s1f. Jetzt ist das /dev/mirror/gm0s1b und /dev/mirror/gm0s1f.

Ich füge der loader.conf 'geom_eli_load="YES"' hinzu. In der /etc/fstab hänge ich '.eli' an den /dev/mirror/gm0s1b und starte neu.

Nach dem Neustart ist der Swap verschlüsselt. Alles Prima.

Ich hänge /crypt aus und generiere wie im FreeBSD-Handbuch einen Schlüssel mit dd. Mit diesem Schlüssel initialisiere ich /dev/mirror/gm0s1f und gebe zweimal meine Passphrase ein. Das hat auch funktioniert.

Nun muss ich eigentlich nur noch attachen und dann könnte ich dem neuen /dev/mirror/gm0s1f.eli ein Dateisystem verpassen. Aber denkste...

# geli attach -k /root/gm0s1f.key /dev/mirror/gm0s1f
MD5 hash mismatch for /dev/mirror/gm0s1f

Das muss mit RAID1 zusammenhängen. In dem Manual von gmirror gibt es einen Befehl Namens gmirror dump, der mir neben vielen verwirrenden Informationen auch pro RAID1-Komponente einen MD5-Hash ausspuckt. Die beiden Hashes sind verschieden, aber keine der beiden Komponenten ist als "DIRTY" geflaggt. Ich weiß nicht, wozu der Hash da ist. Leider ist GEOM nicht so toll dokumentiert.

Ich habe heute schon versucht, die Partition im Single-User-Mode zu attachen, sie während der Installation von der Installations-CD zu attachen und sie nach der Installation vor der Sychronisation zu attachen. Alles erfolglos; identische Fehlermeldung.

Zunächst dachte ich, es sei ein Bug im 6.2 Release und habe es mit 6.2 200708 STABLE versucht. Es kam zum selben Fehler.

Ich bin nun verständlicherweise etwas ratlos, besonders da der Swap ja verschlüsselt ist.

Grüße
elesdo
 
Zuletzt bearbeitet:
Ok, ich dachte du wolltest die Consumer verschluesseln, nicht den Provider. Da der Provider ja leer ist, einfach nochmal 'geli clear', dann 'geli init' (mal ohne Key, zum Testen) und danach 'geli attach'.

Es gibt keinen Grund, warum das nicht gehen sollte, aber lass mal den Key weg, daran koennte es liegen.
 
Es gibt wieder die gleiche Fehlermeldung:

# geli clear /dev/mirror/gm0s1f
# geli init -s 4096 -l 256 /dev/mirror/gm0s1f
Enter passphrase:
Reenter passphrase:

# geli attach /dev/mirror/gm0s1f
MD5 Hash mismatch for /dev/mirror/gm0s1f

Auf der freebsd-questions-Mailingliste wurde mir von einer Person geraten einen größeren Key zu nutzen:

> # dd if=/dev/random of=/root/gm0s1f.key bs=64 count=1
> 1+0 records in
> 1+0 records out
> 64 bytes transferred in 0.000580 secs (110331 bytes/sec)

longer.. 32k or so.

Leider kommt es auch mit einem 32k Schlüssel zum "MD5 hash mismatch".

Ich bin ratlos. Woran kann es liegen?
 
Mh. Wie ist denn gm0 aufgeteilt?

Dieses MD5 hash mismatch Problem hatte ich nämlich auchmal, aber das lag afair daran das ich den falschen Key zur falschen Partition benutzt habe.
 
Mh. Wie ist denn gm0 aufgeteilt?

/dev/mirror/gm0s1a 128MiB /
/dev/mirror/gm0s1b.eli 512MiB swap
/dev/mirror/gm0s1d 512MiB /var
/dev/mirror/gm0s1e 6GiB /usr
/dev/mirror/gm0s1f 272GiB /crypt

Dieses MD5 hash mismatch Problem hatte ich nämlich auchmal, aber das lag afair daran das ich den falschen Key zur falschen Partition benutzt habe.

Das ist interessant! Du hattest die gleiche Fehlermeldung? Was war bei dir genau falsch?
 
Mh hab ich ja gesagt das ich glaube das es daran lag weil ich einfach den falschen Schlüssel zur falschen Partition genommen habe. ;)

Mh.. was man vermuten könnte ist, das geli nicht mit den bsdlabels umgehen kann, warum auch immer. Vllt wäre es itneressant zu wissen wenn du eine extra Partition erzeugts für crypto und dann nochmal versuchst und zwar ohne ein label drüber zu legen. Bei mir habe ich einfach den Provider auf gm0 gesetzt (also der Provider war dann gm0.eli) ohne Partition und das geht einwandfrei.
 
Ich würde aber lieber nur /dev/mirror/gm0s1f verschlüsseln. Das muss auch möglich sein. Auffällig ist, dass /dev/gm0s1b erfolgreich mit einem Random-Key verschlüsselt ist. Ich vermute deshalb, dass das Problem mit dem Schlüssel in Beziehung steht. Wenn jemand eine Idee hat bitte posten, etwas gemeinsames Brainstorming kann nicht schaden.


EDIT: Ich habe gerade /dev/mirror/gm0s1f mit einem Random-Key verschlüsselt:

# geli onetime -l 256 -s 4096 /dev/mirror/gm0s1f
GEOM_ELI: Device mirror/gm0s1f.eli created.
GEOM_ELI: Encryption: AES-CBC 256
GEOM_ELI: Crypto: Hardware

Warum funktioniert es mit dem Random-Key?

EDIT-2: Der Fehler entsteht auch beim Dumpen -> Irgendetwas mit den Meta-Daten?
 
Zuletzt bearbeitet:
Hi, ich habe das selbe Problem mit einem verschlüsselten softraid unter NetBSD. ich fürchte das man RAIDs nicht einfach verschlüsseln kann... Noch hat mir aber niemand eine definitve Aussage gegeben:

http://www.bsdforen.de/showthread.php?p=166706#post166706

Verschlüsseln kann ich das auch ganz toll, nur wenn ich die verschlüsselte Partition einmal un'gemountet habe kriege ich sie nie weider gemountet...
 
Ich kann mir nicht vorstellen, dass es nicht geht. Schließlich lässt es sich mit einem Onetime-Key ohne Probleme verschlüsseln.
Mit Raidframe und CGD und NetBSD habe ich es schon hinbekommen. Ich habe alles dazu im NetBSD-Guide gefunden. Ich würde aber lieber FreeBSD nutzen, da ich das Gefühl habe die Performance ist besser.
 
Probiere es mal alternativ mit gbde.
Ich hab mehrere Raid1 gmirror Partitionen damit verschlüsselt.

Die GBDE Einrichtung is dazu sogar noch fast ein Stückchen simpler als mit GELI.
 
Zurück
Oben