staging.inyokaproject.org

Verschlüsseltes System via SSH freischalten

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

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.

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:

  • cryptsetup (sollte schon vorhanden sein)

  • dropbear (universe)

  • dropbear-initramfs (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install cryptsetup dropbear dropbear-initramfs 

Oder mit apturl installieren, Link: apt://cryptsetup,dropbear,dropbear-initramfs

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).

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 nfsroot.txt 🇬🇧 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=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>:<ntp0-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:

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

ssh -i ~/.ssh/id_rsa root@server 

eine Verbindung herstellen und bekommt eine BusyBox-Shell.

Das eigentliche Freischalten erfolgt danach über den 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.

Diese Revision wurde am 14. November 2022 07:33 von DJKUhpisse erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Server, Installation, System, Netzwerk, Internet, Ubuntu, Sicherheit, Shell