Automatisches Entschlüsseln von root usw. per usb-key bei systemd

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
jh47
Beiträge: 53
Registriert: 12.07.2017 20:42:31

Automatisches Entschlüsseln von root usw. per usb-key bei systemd

Beitrag von jh47 » 25.01.2021 09:40:43

Liebe Forumsmitglieder,

nach tagelanger Recherche traue ich mich, mich jetzt doch wieder an Euch zu wenden, weil ich glaube, dass das ein ganz gängiges Problem ist, das bestimmt schon gelöst ist.

******************************************
In aller Kürze: Habe hier im Forum gelesen, dass Vollverschlüsselung wichtig ist. Weiteres ist eine lange Passphrase natürlich sicherer als eine kurze. Kann mir daher kaum vorstellen, dass Ihr alle lange Bios-Passphrase und lange Passphrasen für mehrere Partitionen bei jedem Neustart aufwendig eingebt.

Ja, ich weiß, dazu es haufenweise Anleitungen (viele veraltet, da mit systemd nicht mehr funktionsfähig), habe auf Testrechner einiges ausprobiert, hat aber nicht geklappt, root (!) automatisch per usb-schlüssel zu entsperren.
******************************************

Aktueller Status Quo: ich habe ein thinkpad mit Debian Buster aufgesetzt und bei der Installation mit Luks ohne LVM verschlüsselt (4 Partitionen: boot unverschlüsselt, root, swap und home verschlüsselt). Nun möchte ich ja nicht für jede Partition ein (sicheres und daher eher langes) Passwort eingeben müssen, Bios-Passwort kommt ja auch noch mal hinzu..., sondern möglichst root,swap und home mit usb-stick entschlüsseln.

Im Augenblick siehts so aus:

1) Werde Passphrase von root abgefragt und nach Eingabe auch noch die der swap, dann fährt der Rechner hoch (home wird komischerweise gar nciht abgefragt, habe aber irgendwo gelesen, dass bei gleicher Passphrase diese bei systemd irgendwie im keyring gespeichert bleibt und daher wohl weitere Partitionen ohne weitere Eingabe sich entsperren...).

2) Eine Änderung in der crypttab, dass sich wenigstens swap per usb-key entsperrt hat keine Wirkung (muss etwa dieser Entsperrmechanismus auch bei swap ins initram gepackt werden?)

(Noch steckt wenig Arbeit im Einrichten des Notebooks, d.h. sollte was schiefgehen, kann ich es zur Not einfach nochmal aufsetzen -- später ist das schlechter möglich. Habe es aber auf Testrechner schon geschafft, trotz initram-Backup mich erst mal auszusperren...vor initram-updates habe ich also grundsätzlich Respekt, weil das für mich eher eine black box ist)

Vielleicht hat ja jemand Link zu einem Tutorial, das bei ihm mit systemd genau so FUNKTIONIERT hat, o.ä. -- ich bin jedenfalls mit allen Suchmaschinen-Treffern bisher gescheitert.

Vielen Dank auf jeden Fall für jede Art von Hilfe,
Jan

Benutzeravatar
Tintom
Moderator
Beiträge: 3066
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Automatisches Entschlüsseln von root usw. per usb-key bei systemd

Beitrag von Tintom » 25.01.2021 10:19:18

Nur als Anmerkung: Auch mit systemd ist automatisches Entschlüsseln möglich. Der Punkt, warum gesagt wird, es geht nicht, liegt darin, dass 90% der Anleitungen ein (eigenes) Keyscript verwenden. Die Option ist aber debianspezifisch und wird von systemd ignoriert (siehe auch man crypttab). So ist der Stand jedenfalls unter Buster, zu Bullseye kann ich noch nichts sagen.

Liegt der Schlüssel hingegen als Datei ab oder direkt auf einem Gerät funktioniert die automatische Entschlüsselung.

jh47
Beiträge: 53
Registriert: 12.07.2017 20:42:31

Re: Automatisches Entschlüsseln von root usw. per usb-key bei systemd

Beitrag von jh47 » 25.01.2021 20:08:57

Danke für den Hinweis. Nutze allerdingas auch kein keyscript.

Home mit USB-key entschlüsseln hat auch auf System mit unverschlüsselter Root- und Swappartition schon ganz einfach geklappt.
Bei Vollverschlüsselung mit Luks lässt der Debian Installer einen aber mit einer Crypttab zurück, bei der beim Booten die Passphrase für root und swap abgefragt wird.
Und wenn ich den Eintrag der Swap-Partition auf usb-keyfile umstelle, bleibt das aber ohne Auswirkung auf die Passphrasen-Abfragge; genauer gesagt, jetzt fragt er für swap die Passphrase ab und will dann swap später auch noch per usb-key entsperren (was dann auch funktioniert) -- aber so wars natürlich nicht gedacht :facepalm:

Debian-Installer Crypttab-Zeile für swap:
sda2_crypt UUID= .... none luks, swap, discard

veränderte Crypttab-Zeile
sda2_crypt UUID= .... /dev/disk/by-path/pci... luks, ...

Wahrscheinlich ist die Passphrase Teil von initramfs und die key-Abfrage wird dann zum späteren Zeitpunkt -- unabhängig von initram -- einfach noch obendrauf geschaltet. Wenn ich jetzt ein update-initramfs mache, ist die Frage, ob das mit dem key dann funktionieren kann oder ob da noch usb-Treiber das filesystem usw. geladen werden müssen?

Möchte System ja auch nicht allzu leichtfertig zerschiessen, etwa weil usb-stick nicht gemountet werden kann und Abfrage der Passphrase aber dann auch nicht mehr erfolgt.
Gibt es mit update-initramfs irgendwelche Seiteneffekte auf andere Dateien, Einstellungen o.ä. oder sollte einfaches Rückkopieren des Backups des initrd-Images bzw. grub-Start des Backups immer(!!) funktionieren (glaube, bei Testrechner habe ich dabei was zerschossen und mich ausgesperrt)?

mcb

Re: Automatisches Entschlüsseln von root usw. per usb-key bei systemd

Beitrag von mcb » 25.01.2021 20:20:24

Kann dir auch nicht wirklich weiterhelfen.

Ev. sind hier ein paar Sachen zu finden:

https://cryptsetup-team.pages.debian.ne ... -boot.html

jh47
Beiträge: 53
Registriert: 12.07.2017 20:42:31

Re: Automatisches Entschlüsseln von root usw. per usb-key bei systemd

Beitrag von jh47 » 29.01.2021 18:22:12

Hallo an alle,

da ich gesehen habe, dass einige in dieses Thema hier reingeschaut haben, eine Rückmeldung, die vielleicht anderen mit ähnlicher Fragestellung hilft:

nach viel trial and error bei den Feineinstellungen hat letztlich das Vorgehen geklappt gemäß:

https://wiki.debianforum.de/Cryptsetup_ ... _USB-Stick

Allerdings gibt es schon Fallstricke, etwa dass bei der Angabe des Pfades zum key-File Sonderzeichen octal escaped werden müssen (man crypttab), was etwa eine Rolle spielt wenn man statt /dev/disk/by-uuid... /dev/disk/by-path nutzen möchte, z.B. um mehrer USB-Sticks zur Entschlüsselung zu verwenden: Hier kommen Doppelpunkte ins Spiel, die eben oktal escaped werden müssen. Da bin ich dann ausgestiegen, der utf-code vom Doppelpunkt
müsste 058 sein aber /058 als escape-Sequence wird beim Parsen wohl nicht gefressen (Und gefühlte 100 updates-initram und reboots haben mir jetzt erst mal gereicht, da die Lebenszeit ja doch begrenzt ist... :mrgreen:

lg Jan!

Antworten