Als ich Ubuntu 10.04 und jetzt 10.10 installiert habe, wurde mir die Option angeboten, "verschlüsseltes LVM" für meine Festplatte zu aktivieren. Nachdem ich diese Option ausgewählt habe, werde ich während des Startvorgangs aufgefordert, mein Kennwort einzugeben, um den LVM zu entschlüsseln.
Jetzt denke ich über die Einrichtung eines Headless-Servers nach, auf dem Linux ausgeführt wird (nicht unbedingt Ubuntu), aber ich mache mir Sorgen, dass ich ihn während des Startvorgangs nicht entschlüsseln kann, da der Server Headless ist. Kann ich während des Startvorgangs SSH ausführen, um mein Kennwort für den verschlüsselten LVM einzugeben? Wenn ja, wie richte ich es ein? Oder gibt es eine andere Lösung? Auch diese Frage ist NICHT Ubuntu-spezifisch. Vielen Dank.
zless /usr/share/doc/cryptsetup/README.remote.gz
Antworten:
Für neuere Ubuntu-Versionen, zum Beispiel 14.04, fand ich eine Kombination aus @dragly und den Antworten dieses Blogposts sehr hilfreich. Umschreiben:
(Auf dem Server) Installieren Sie Dropbear
(Auf dem Server) Kopieren Sie die Berechtigungen für die Anmeldung mit dem öffentlichen / privaten Root-Schlüssel und weisen Sie sie zu
erinnern sich ändern Benutzer auf Ihren Benutzernamen auf dem Server
(Auf dem Client) Privaten Schlüssel vom Server abrufen
(Auf dem Client) Fügen Sie einen Eintrag zu ssh config hinzu
(Auf dem Server) Erstellen Sie diese Datei unter
/etc/initramfs-tools/hooks/crypt_unlock.sh
(Auf dem Server) Machen Sie diese Datei ausführbar
Aktualisieren Sie die initramfs
Deaktivieren Sie den Dropbear-Dienst beim Booten, damit openssh verwendet wird, nachdem die Partition entschlüsselt wurde
Sie sind fertig. Versuch es. In dem oben verlinkten Blogbeitrag finden Sie Anweisungen zum Konfigurieren des Servers mit einer statischen IP-Adresse, falls Sie dies tun müssen.
quelle
/etc/initramfs-tools/root/.ssh/authorized_keys
, auch wenn noch der private Schlüssel von Dropbear kopiert wird, den man völlig ignorieren kann. Das Befolgen der restlichen Anweisungen funktioniert für mich. Das bedeutet, dass dies die akzeptierte Antwort sein sollte (sobald diese Änderung übernommen wurde), da nur öffentliche Schlüssel verwendet werden.Eine Anleitung für ein solches Setup mit BusyBox und Dropbear finden Sie in diesem Blogbeitrag . early-ssh hat bei mir nicht funktioniert und wird anscheinend nicht mehr benötigt.
Ich habe im Folgenden zusammengefasst, was Sie tun müssen. Weitere Details finden Sie im obigen Beitrag:
Installieren Sie BusyBox und Dropbear auf Ihrem Server
Aktualisieren Sie Ihre initramfs auf dem Server
Kopieren Sie den von dropbear generierten privaten Schlüssel auf Ihren Client-Computer. Möglicherweise müssen Sie dies in ein neues Verzeichnis kopieren und den Eigentümer ändern, um dies zu tun. Gehen Sie auf Ihrem Server folgendermaßen vor:
Denken Sie daran, den Benutzer durch Ihren Benutzernamen zu ersetzen. Kennwortanmeldungen scheinen nicht zu funktionieren.
Jetzt können Sie den privaten Schlüssel mit scp übertragen, indem Sie auf Ihrem Client Folgendes aufrufen :
Richten Sie die ~ / .ssh / config-Datei Ihres Clients für die einfache Anmeldung ein. Öffnen Sie es mit einem Texteditor und fügen Sie Folgendes hinzu:
Ändern Sie den Host in einen beliebigen und den Hostnamen in den Namen Ihres Servers. Lassen Sie den Benutzer root sein. Es scheint der einzige akzeptierte Benutzer in Dropbear zu sein. Speichern und schließen Sie die Datei.
Starten Sie Ihren Server neu und warten Sie auf die Aufforderung zur Eingabe der Passphrase. Geben Sie Dropbear ein paar Sekunden Zeit, um die Internetverbindung zu erkennen und einzurichten. Stellen Sie mit dem folgenden Befehl auf Ihrem Client eine Verbindung zu Ihrem Server her :
Wenn Sie angemeldet sind, geben Sie den folgenden Befehl auf Ihrem Server ein . Weitere Informationen finden Sie im Blog-Beitrag:
Es dauert einige Zeit (30 Sekunden), bis Sie Ihre Passphrase eingeben können. Geben Sie es ein, wenn Sie dazu aufgefordert werden.
Schließen Sie die Verbindung, indem Sie Folgendes eingeben
Ihr Server sollte nun die verschlüsselte Festplatte entsperren und wie gewohnt starten.
(Ein großes Dankeschön an den ursprünglichen Autor des Blogposts!)
quelle
Ich denke, Early-ssh bietet das, wonach Sie suchen:
Es ist bereits ein .deb-Paket verfügbar, sodass Ubuntu wahrscheinlich für Sie in Ordnung ist.
quelle
Schauen Sie sich die Cryptsetup-Readme dazu in
/usr/share/doc/cryptsetup/README.remote.gz
(Ubuntu-Paketcryptsetup
) an. In gibt es eine vollständige Anleitung, um dies zu erreichen. Es ist ähnlich wie die Antwort von Dragly , aber ich denke, das ist ein bisschen eleganter. (Mit Dropbear formatierte Schlüssel, die die Passphrase nicht über ein fragiles Shell-Skript, sondern über ein FIFO weitergeben usw.)Vielen Dank an jap , der mich auf einem anderen Kanal darauf hingewiesen hat.
quelle
read -s -p
.Wenn Sie in der Lage sein möchten, sowohl unbeaufsichtigt als auch remote zu booten , sollten Sie sich auch Mandos ansehen (was ich und andere geschrieben haben):
Kurz gesagt, der Boot-Server erhält das Passwort auf sichere Weise über das Netzwerk. Einzelheiten finden Sie in der README.
quelle
Kopfloser Server? Wenn es eine serielle Schnittstelle hat, verwenden Sie diese.
GRUB kann so konfiguriert werden, dass es über die serielle Schnittstelle arbeitet. Ihr Kernel kann auch so konfiguriert werden, dass er über den seriellen Port die ersten Startmeldungen ausgibt, das Kennwort zum Entsperren Ihrer Laufwerke eingibt und sich anmeldet. (Wenn Ihr Server das serielle BIOS unterstützt, aktivieren Sie dies ebenfalls. Dann müssen Sie keine Verbindung herstellen ein Monitor an der Maschine überhaupt).
Es ist immer eine gute Idee, einen Server ohne Netzwerkverbindung einzurichten.
quelle
Unter Arch Linux gibt es ein AUR-Paket dropbear_initrd_encrypt , das das macht, was Sie wollen. Funktioniert ziemlich gut für kabelgebundene Schnittstellen. Ich musste es für drahtlose Netzwerke ein wenig hacken.
quelle
Leider hat keine der obigen Antworten für mich funktioniert. Darüber hinaus erscheint das Kopieren eines privaten Schlüssels vom Server paradox.
Jedenfalls haben sich folgende Anweisungen ergeben :
Starten Sie Ihren SERVER, indem Sie die verschlüsselte Partition über Ihren CLIENT verbinden und entsperren
Pflichtpakete installieren (auf SERVER)
Fügen Sie Ihre gewünschten öffentlichen Schlüssel in die Datei authorized_keys des SERVER ein
Kopieren Sie einfach Ihre öffentlichen Schlüssel und fügen Sie sie in den
/etc/dropbear-initramfs/authorized_keys
SERVER einErstellen Sie das Entsperrskript
Erstellen Sie folgendes Skript in
/etc/initramfs-tools/hooks/crypt_unlock.sh
Mach es ausführbar:
Erstellen Sie eine statische IP (oder überspringen Sie diesen Schritt, um DHCP zu verwenden)
Bearbeiten
/etc/initramfs-tools/initramfs.conf
, um die Zeile hinzuzufügen (oder zu ändern):Aktualisieren Sie initialramfs
Deaktivieren Sie den Dropbear-Dienst beim Booten, damit openssh verwendet wird, nachdem die Partition entschlüsselt wurde
Testen
ssh [email protected] [-i ~/.ssh/id_rsa]
quelle
Unter Debian 9 (stabil) war diese Lösung veraltet. Während der Installation wird eine Warnung angezeigt
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!
und ich konnte die benötigten Schlüssel nicht finden. Diese Methode ist übrigens sehr einfach und wurde mir auf dem tollen #debian-Kanal erklärt (nochmals vielen Dank):Stellen Sie zunächst sicher , dass
busybox
,dropbear
unddropbear-initramfs
installiertFügen Sie dann Ihren öffentlichen Schlüssel (meistens
~/.ssh/id_rsa.pub
) in die Datei ein/etc/dropbear-initramfs/authorized_keys
.Aktualisieren Sie dann
initramfs
, um die Änderungen zu berücksichtigen:: update-initramfs -uDas ist alles!
Hinweis: Wenn Sie vermeiden möchten, dass die Schlüssel zwischen
dropbear
und nicht in Konflikt geratenopenssh
(sie haben dieselbe IP-Adresse, verwenden jedoch einen anderen Schlüssel), möchten Sie Ihren Client möglicherweise folgendermaßen einrichten~/.ssh/config
:Dann verbinden Sie sich einfach mit:
und sobald Sie eine Eingabeaufforderung erhalten, geben Sie ein, wie von der Besetztbox-Eingabeaufforderung vorgeschlagen:
und geben Sie Ihr Passwort ein.
Genießen!
quelle
Ich habe eine Ansible-Rolle geschrieben, die dies für Sie erledigt. Holen Sie sich einfach die Rolle debops-contrib.dropbear_initramfs und führen Sie sie aus. Weitere Informationen finden Sie in der Dokumentation der Rolle .
quelle
Ich verwende seit einigen Jahren die von anderen auf dieser Seite erläuterte Technik (SSH im initramfs mit einem Kernel-
IP
Parameter zum Konfigurieren des Netzwerks), um kopflose Ubuntu-Linux-Server (12.02, 14.04, 16.04 und 18.04) remote zu entsperren.Ich ging sogar so weit, ein Python-Programm ( Unlock-Remote-System ) zu entwickeln, das das eigentliche Unlock- Verfahren für mich ausführt, da sich der Vorgang manuell als etwas zerbrechlich anfühlte und ich anfing, einen Neustart meiner Server zu befürchten, also im Geiste von "Wenn es weh tut, lohnt es sich zu automatisieren" Ich habe mein Wissen in Python verschlüsselt (und dies hat es in der Tat viel einfacher gemacht, regelmäßige Neustarts durchzuführen, um Sicherheitsupdates anzuwenden).
Seitdem habe ich mich entschlossen, meine persönlichen Notizen zur Remote-Root-Festplattenverschlüsselung mit der ganzen Welt zu teilen . Die verlinkte Seite enthält einige Details zur Vorgehensweise (auch einige Hinweise, die hier nicht erwähnt werden) und ich beabsichtige, sie auf dem neuesten Stand zu halten.
quelle