PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Server, LUKS + remote unlock mit Keyfile anstatt Passphrase



Norcoen
28.08.13, 00:08
Guten Abend,
ich hoffe ich poste hier im richtigen Bereich.

Vor meiner Frage kurz mein Setup:
-headless server im Rechenzentrum mit per debootstrap installierten Debian Wheezy
-2 Festplatten im Software RAID1 - /boot auf unverschlüsseltem 512 MB großen /dev/md0 LUKS auf /dev/md1, auf LUKS dann LVM mit allen weiteren Partitionen: /, swap, /home, usw.
Ich habe bereits alles soweit fertig eingerichtet, dass ich den Server bei einem Neustart per SSH entschlüsseln kann (mit busybox und dropbear)

Meine Frage/Problem:
Ich kann den Server nur entschlüsseln indem ich meine Passphrase übergebe per

echo -n "passphrase" > /lib/cryptsetup/passfifo
Das funktioniert zwar, finde ich aber ziemlich umständlich.

Ich finde leider keine Doku, was genau dabei passiert, denn wenn ich meine Platte von Hand mit
cryptsetup luksOpen ... öffne und den LVM aktiviere bootet die Maschine trotzdem nicht weiter. Die Doku unter /usr/share/doc/cryptsetup hat mir da leider auch nicht weitergeholfen. Interessanterweise gibt es dort noch einige Scripte die ich in busybox scheinbar nicht zur Verfügung habe. Dort gibt es nur passfifo(leer) und askpass
Ich habe habe außerdem verschiedene Keyfiles eingerichtet, von denen ich mindestens eins gerne nutzen würde anstatt der Passphrase. Auch dazu finde ich keine Doku, ob und wie ich diese an /lib/cryptsetup/passfifo übergeben kann.
Mein finales Problem ist, dass die Tools zum öffnen der Keyfiles unter busybox nicht zur Verfügung stehen, z.B. GPG.
Ich habe aber zumindest in einem Gentooforum schon gelesen, dass man die benötigen Tools für Initrd als Static kompilieren und in die entsprechenden Ordner kopieren kann. Hat dazu vielleicht jemand eine Anleitung oder einen leichteren Weg für Debian parat?

Freundliche Grüße

Frank M.

Tron
26.08.14, 14:16
Hallo,

die gesamten initrd Sachen werden von den scripten generiert und ggf. eingebunden (z.B. GPG). Das alles passiert basierend auf der /etc/crypttab (siehe auch man crypttab). Das binary "askpass" wird von den cryptsetup scripten aufgerufen und gibt als stdout das password zurück (das dann von den scripten zum unlocken verwendet wird). Es lohnt sich sehr die manpage zu den initramfs-tools zu lesen und die dateien unter /usr/share/initramfs-tools/scripte/ bzw. /etc/initramfs-tools/scripte zu lesen. Diese werden von sogenannten "hooks" (unter ...fs-tools/hooks/...) ggf. ins initrd eingebunden ;)

Viel Spaß damit!

Tron

EDIT: Jo ich weis ist lange her, aber habe mich kürzlich damit befasst und wenige Antworten zu dem Thema finden können. Das sind die Ergebnisse meiner Recherchen.