Archiv/Verschlüsseltes System via SSH freischalten

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Installation eines verschlüsselten Systems

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.

Inhaltsverzeichnis
  1. Installation
  2. Konfiguration
  3. Netzwerk-Konfiguration
  4. Schlüssel kopieren
  5. Freischalten beim Bootvorgang
  6. Ab Ubuntu 10.04
  7. Port ändern
  8. Fehlerbehebung
  9. Links

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. Ob dies auch vor Angreifern schützt, die (physikalischen) Zugriff auf den Server haben, ist jedoch nicht sicher.

Installation

Folgende Pakete müssen installiert[1] werden:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install cryptsetup dropbear 

sudo aptitude install cryptsetup dropbear 

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

Achtung: Jegliche Konfigurationen bezüglich des initramfs müssen via "update-initramfs" aktualisiert werden:

sudo update-initramfs -u 

Netzwerk-Konfiguration

Die Netzwerk-Konfiguration für den Remote-Zugriff auf den Server wird in folgender Datei durchgeführt:

/etc/initramfs-tools/initramfs.conf

Wie die genauen Regeln zur Konfiguration des Netzwerks aussehen, kann unter nfsroot.txt nachgelesen werden. Für DHCP muss keine Zeile hinzugefügt werden!

#
# DEVICE: ...
#
# Specify the network interface, like eth0
#
DEVICE=

Für eine statische Adresse muss die Zeile wie folgt geändert werden:

DEVICE=ens192
IP=192.168.56.101:::255.255.255.0::ens192:off

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.

Schlüssel kopieren

Nun muss man seinen Public Key für die schlüssel-basierte Authentifizierung auf den Server kopieren.

Auf seinem Client erzeugt man SSH-Schlüssel und kopiert diese auf den Server der entsperrt werden soll

ssh-keygen
scp serveruser@server:~/.ssh/id_rsa.pub ~/dropbear_id_rsa.pub 

Auf dem Server hinterlegt man den öffentlichen Teil des Schlüssels als autorisierten Schlüssel

ssh serveruser@server
sudo touch /etc/dropbear-initramfs/authorized_keys
sudo cat ~serveruser/dropbear_id_rsa.pub >> /etc/dropbear-initramfs/authorized_keys
rm ~serveruser/dropbear_id_rsa.pub
sudo update-initramfs -u 

Freischalten beim Bootvorgang

Nach dem Kopieren des RSA-Schlüssels kann man ab sofort bei jedem Bootvorgang die Root-Partition per SSH freischalten. Mit

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

kann man sich einloggen und bekommt eine BusyBox-Shell.

Das eigentliche Freischalten erfolgt danach über den Befehl:

echo -n "Passphrase" > /lib/cryptsetup/passfifo 

wobei die Passphrase durch das eigene Passwort ersetzt wird, das bei der Einrichtung der Verschlüsselung ausgewählt wurde. Danach wird der Server ganz normal gestartet. Ein paar Sekunden später müsste man sich normal einloggen können.

Ab Ubuntu 10.04

Wegen der Einführung von Plymouth in 10.04 funktioniert das Freischalten nicht mehr. Eine Lösung wird in einem Fehlerbericht auf Launchpad in Kommentar #5 beschrieben. Nach einem Update des initramfs images mittels update-initramfs -u sollte das Freischalten via SSH auch unter Systemen ab Lucid Lynx funktionieren. Das System kann dann allerdings nur noch per SSH freigeschaltet werden; das Eingeben des Passworts vor Ort mit angeschlossener Tastatur ist nicht mehr möglich.

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/initramfs-tools/initramfs.conf ergänzen:

PKGOPTION_dropbear_OPTION="-p 2222"

Fehlerbehebung

Sollte eine Verbindung zu Dropbear mit der Meldung "server refused our key" abgewiesen werden, sind evtl. die Berechtigungen des .ssh-Ordners in den initramfs-tools falsch gesetzt. Ein Lösungsweg ist z.B. hier beschrieben. Außerdem muss nach jeder Änderung das initramfs image mittels update-initramfs -u erneuert werden.