Tor
Ich suche nach einer nicht interaktiven Möglichkeit, eine Root-Dateipartition und eine mit LUKS verschlüsselte Swap-Partition beim nächsten Neustart des Systems zu entschlüsseln. Außerdem muss ich es nach dem Neustart rückgängig machen, damit nach einem weiteren Neustart das Kennwort erneut (oder sogar ein neues Kennwort) benötigt wird.
Das System verwendet LVM.
Ich möchte nicht das Passwort auf dem System eingeben oder ein anderes System verwenden müssen, um es zu entsperren, es muss sich einmal selbst entsperren.
Ich habe das Passwort, mit dem es verschlüsselt ist, und wäre bereit, es im Klartext auf der Festplatte zu speichern. Bei diesem Schritt geht es mir nicht um Sicherheit.
Hintergrund
Ich habe einen Ablauf für die Bereitstellung von Ubuntu, der auf einer Ubuntu-Serverinstallation mit einer benutzerdefinierten Voreinstellungs- und Kickstartdatei basiert. Kickstart installiert einen Dienst, der nach dem ersten Neustart (und nur nach dem ersten Neustart) ausgeführt wird, und startet dann erneut. Ich versuche, die LUKS-Disc-Verschlüsselung in diesem Ablauf zu implementieren, muss sie jedoch nicht interaktiv bleiben, damit sie beim ersten Mal ohne Kennwort neu gestartet werden kann.
Das während der Installation festgelegte Kennwort ist vorübergehend und wird vom Dienst geändert, der nach dem ersten Neustart ausgeführt wird, sodass das erste Kennwort im Klartext gespeichert werden kann.
Dinge, die ich mir angesehen habe, bevor ich diese Frage gestellt habe
Ich habe einiges gegoogelt, um dies herauszufinden, und das meiste, was ich finde, deutet auf eine Lösung hin, die die initramfs-Datei austauscht.
Ich habe mehrere Ressourcen gefunden, die erklären, wie dies verwendet wird, um das System per Fernzugriff zu entsperren, aber ich muss dies ohne Interaktion tun. Hier ist eine solche Ressource: https://hamy.io/post/0005/remote-unlocking-of-luks-encrypted-root-in-ubuntu-debian/
Das, was meiner Meinung nach einer Lösung am nächsten kommt, ist diese Ressource, die angeblich eine Möglichkeit darstellt, das zu erreichen, was ich für eine VPS-Lösung möchte, aber es handelt sich nur um eine Reihe von Befehlen ohne Erklärung, und ich weiß nicht, wie Passen Sie es an: https://dradisframework.com/pro/support/guides/customization/auto-unlock-luks-encrypted-drive.html
Ich habe diese Ressource auch für ArchLinux https://wiki.archlinux.org/index.php/Dm-crypt/System_configuration#cryptkey gefunden und versucht, die Kernel-Parameter hinzuzufügen, aber ich hatte auch kein Glück damit. Ich weiß nicht, ob es daran liegt, dass LUKS diese Kernelparameter nicht unterstützt.
quelle
ssh -o "HostKeyAlgorithms ssh-rsa" -p 4748 root@client-ip "cryptroot-unlock"
nachdem Sie den Server gestartet / neu gestartet habenAntworten:
Die Lösung scheint ziemlich einfach zu sein und wird in Wie konfiguriere ich LVM & LUKS für die automatische Verschlüsselung von Partitionen beschrieben?
Hier ist, wie ich es geschafft habe
Meine / boot-Partition ist / dev / sda1
Mein LVM-Volume, das ich entschlüsseln möchte, ist / dev / sda3
Ich war root, aber wenn Sie nicht sudo an alle Befehle anhängen.
Beginnen Sie, indem Sie eine Schlüsseldatei mit einem Passwort erstellen (ich generiere eine pseudozufällige)
Stellen Sie dann die Leseberechtigung für root und nichts für andere ein
Fügen Sie dann die Schlüsseldatei als Entsperrschlüssel hinzu
(Sie werden dann aufgefordert, das Verschlüsselungskennwort einzugeben.)
Suchen Sie die UUID der / boot-Partition mit (für diese Partition müssen Sie nicht root sein)
Hier ist ein Beispiel dafür, wie das aussieht (es ist nicht die tatsächliche Ausgabe, da ich dies von einem anderen Computer übernommen habe).
Bearbeiten Sie dann / etc / crypttab mit Ihrem Lieblingseditor
Der Inhalt sieht ungefähr so aus (wieder ist dies von einem anderen Computer)
Was Sie tun möchten, ist zu ersetze keine mit / dev / disk / by-uuid / [die UUID des / boot - Partition] und Sie ersetzen möchten Verwerfungs mit keyscript = / lib / cryptsetup / scripts / passdev
Das Ergebnis sollte ungefähr so aussehen
Speichern Sie die Datei und fahren Sie mit der Aktualisierung der initramfs fort
Das war's, Sie können jetzt neu starten.
Um es wieder zu entfernen (wie ich wollte)
Zuerst bestätige ich, dass das System nur zwei Schlüssel enthält (den ursprünglichen und die neue Schlüsseldatei).
Dadurch wird eine ähnliche Ausgabe generiert
So löschen Sie den Schlüssel in Schlüsselsteckplatz 1 (der Schlüsseldatei)
Sie werden dann aufgefordert, das Verschlüsselungskennwort einzugeben (das ursprüngliche, nicht das in der Schlüsseldatei).
Löschen Sie dann die eigentliche Schlüsseldatei
Aktualisieren Sie die initramfs erneut
Beim Neustart werden Sie erneut zur Eingabe eines Kennworts aufgefordert. Du bist fertig.
quelle
lsblk /dev/sda
sehe ich, dass ich eine/boot
Partition und eine/boot/efi
Partition habe. Welches sollte ich verwenden, wenn ich dieser Methode folge?Perfekt, nur eine kleine Änderung:
:keyfile
muss hinzugefügt werden:"Das Ergebnis sollte ungefähr so aussehen
quelle