[[Vorlage(getestet, kinetic)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:System verschlüsseln: Installation eines verschlüsselten Systems] [:LUKS:] [:SSH:] }}} [[Vorlage(Fortgeschritten)]] {{{#!vorlage Hinweis Falls man die Installation nicht richtig durchführt oder sich den falschen Schlüssel kopiert, ist es möglich, dass das System nicht mehr booten kann bzw. eine manuelle, lokale Eingabe des Schlüssels am Rechner notwendig ist. }}} [[Inhaltsverzeichnis()]] Dieser Artikel erklärt, wie man ein System mit verschlüsselter Root-Partition auch ohne physikalischen Zugang zum Rechner über [:SSH:] freischalten kann. Verwendet wird hierzu der dropbear-SSH-Server, der im initramfs untergebracht wird. Dieses Vorgehen kann man anwenden, wenn man z.B. „Dedicated Server“ fast komplett (in diesem Fall bis auf die '''/boot'''-Partition) verschlüsseln möchte. Dies ist z.B. bei der Nutzung von Servern vorteilhaft, an denen man nicht direkt arbeitet, und nur über das Netzwerk (komfortabel) erreichen kann. = Installation = Folgende Pakete müssen installiert[1] werden: {{{#!vorlage Paketinstallation cryptsetup, sollte schon vorhanden sein dropbear, universe dropbear-initramfs, universe }}} Wenn bereits ein anderer SSH-Server installiert ist, wird dies erkannt und dropbear wird nur während des Bootvorgangs gestartet. Zur späteren Verifikation sollte man sich die Fingerprints, die ausgegeben werden, aufschreiben. = Konfiguration = Nach jeder Änderung müssen die Dateien für initramfs neu erstellt werden. Dies kann durch folgenden dpkg-Befehl für Dropbear erledigt werden (die Installationsskripte des Paketes rufen '''update-initramfs''' auf). {{{#!vorlage Befehl sudo dpkg-reconfigure dropbear-initramfs }}} == Schlüssel kopieren == Man benötigt einen SSH-RSA-Schlüssel. Dieser muss in '''/etc/dropbear/initramfs/authorized_keys''' eingetragen sein und hat die gleiche Syntax wie '''~/.ssh/authorized_keys'''. Aus Sicherheitsgründen sollte diese Datei ``root`` gehören und von anderen nicht beschreibbar sein. == Netzwerk-Konfiguration im initramfs == Die Netzwerk-Konfiguration für den Remote-Zugriff auf den Server wird in der Datei '''/etc/initramfs-tools/initramfs.conf''' durchgeführt. Wie die genauen Regeln zur Konfiguration des Netzwerks aussehen, kann unter [https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt nfsroot.txt] {en} nachgelesen werden. Für DHCPv4 muss keine Zeile hinzugefügt werden. {{{ # # DEVICE: ... # # Specify the network interface, like eth0 # DEVICE= }}} Für eine statische IPv4-Adresse muss die Zeile wie folgt geändert werden (es werden nur IPv4, Gateway, Netzmaske und Gerät festgelegt): {{{ ip=::::::::: IP=192.168.56.101::192.168.56.1:255.255.255.0::ens192 }}} Nun muss wieder eine Aktualisierung des initramfs durchgeführt werden: {{{#!vorlage Befehl sudo update-initramfs -u }}} Nun wird das Netzwerk-Device bereits vor der Abfrage des Passworts konfiguriert. == Port ändern == Möchte man den Port ändern auf dem Dropbear lauscht oder weitere Konfigurationen während des Bootvorgangs vornehmen muss man folgende Zeile in '''/etc/dropbear/initramfs/dropbear.conf''' ergänzen: {{{ DROPBEAR_OPTIONS="-p 2222" }}} = Bootvorgang = Ist das System im initramfs, erscheint auf dem Monitor wie gewohnt die Kennwortabfrage. Ebenso wird ausgegeben, auf welcher Adresse Dropbear lauscht. Von außen kann man per ssh mit dem Befehl {{{#!vorlage Befehl ssh -i ~/.ssh/id_rsa root@server }}} eine Verbindung herstellen und bekommt eine BusyBox-Shell. Das eigentliche Freischalten erfolgt danach über den Befehl: {{{#!vorlage Befehl cryptroot-unlock }}} Ist die Partition erfolgreich entschlüsselt worden, wird der Bootvorgang fortgesetzt und die SSH-Verbindung getrennt. Ein Entsperren per angeschlossener Tastatur ist weiterhin möglich. = Links = * [bug: :][https://bugs.launchpad.net/ubuntu/+source/dropbear Launchpad: Übersicht bekanntgemachter Dropbear Fehlerberichte] * [https://www.thomas-krenn.com/de/wiki/Voll-verschl%C3%BCsseltes-System_via_SSH_freischalten Detaillierte Anleitung inkl. Import von OpenSSH-Schlüsseln] #tag: Netzwerk, Ubuntu, Internet, System, Sicherheit, Shell, Installation, Server