21x9.org | System Administration | Home Automation | Smart Home
11.07.2023

SSH während des Bootvorgangs - dropbear

Dropbear ist eine leichtgewichtige SSH-Server-Implementierung für Unix-ähnliche Systeme. Es ermöglicht sichere Fernzugriffe und Dateiübertragungen über das SSH-Protokoll. Dropbear bietet ähnliche Funktionen wie der bekannte OpenSSH, ist jedoch aufgrund seiner geringen Größe und Ressourcenanforderungen besonders für eingebettete Systeme oder Geräte mit begrenzten Ressourcen geeignet.

Eben weil Dropbear so leichtgewichtig ist, lässt es sich bereits in den Bootprozess integrieren. Dies kann man nutzen, um verschlüsselte Festplatten via SSH zu entsperren und so auch das System selbst zu verschlüsseln. Normalerweise müsste bei einem solchen Setup während des Bootvorgangs das Kennwort für die Entschlüsselung direkt am Gerät eingegeben werden. dropbear ermöglicht es diese Eingabe via SSH vorzunehmen.

Hinweis:

Ab Debian 12 (Bookworm) hat sich der Pfad für Konfigurationsdateien von dropbear geändert und lautet nun /etc/dropbear/initramfs/ statt /etc/dropbear-initramfs/ und die Konfigurationsdatei selbst heißt nicht mehr config sondern dropbear.conf.

Die Installation und Einrichtung ist einfach und schnell erledigt:

apt install dropbear-initramfs
cp ~/.ssh/authorized_keys /etc/dropbear-initramfs/
sed -i 's|#DROPBEAR_OPTIONS=|DROPBEAR_OPTIONS="-p 22 -s -j -k -I 300 -c /bin/cryptroot-unlock"|g' /etc/dropbear-initramfs/config
echo "IP=192.168.178.10::192.168.178.1:255.255.255.0:homeserver:eth0" > /etc/initramfs-tools/conf.d/ip
update-initramfs -u -v

In ~/.ssh/authorized_keys müssen sich natürlich die Keys die zur Anmeldung an Dropbear genutzt werden sollen befinden. Ich gehe hier davon aus, dass diese bereits für den generellen Einsatz auf dem Server hinterlegt sind und mit denen die für Dropbear genutzt werden sollen identisch sind.

Die Angaben in der Zeile IP= werden mittels Doppelpunkt voneinander getrennt und setzen sich wie folgt zusammen:

  • IP-Adresse des Geräts auf dem Dropbear genutzt wird
  • leer
  • Gateway (also die IP des Routers im Heimnetz)
  • Subnetzmaske
  • Name des Geräts auf dem Dropbear genutzt wird
  • Name des Netzwerkinterfaces auf dem Dropbear gestartet werden soll

Um die Konfiguration zu testen, führt man einen Reboot des Servers durch und verbindet sich dann mittels ssh root@192.168.178.10, hier sollte man dann zur Eingabe des Kennworts für die Festplattenverschlüsselung aufgefordert werden. Nach der Eingabe des Kennworts sollte der Server normal starten.

Die Optionen in der Zeile DROPBEAR_OPTIONS bewirken folgendes:

  • -p 22: Listen on specified tcp port (and optionally address)
  • -s: Disable password logins
  • -j: Disable local port forwarding
  • -k: Disable remote port forwarding
  • -I 300: Idle timeout
  • -c /bin/cryptroot-unlock: Force executed command

Anstelle einer statischen IP-Adresse kann auch DHCP genutzt werden:

IP=:::::eth0:dhcp

Wichtig, wenn man auf dem Heimserver z.B. Pi-Hole betreibt und dessen DHCP-Funktion nutzt, sollte man hier natürlich eine fest IP statt DHCP nutzen, da Pi-Hole ja nicht erreichbar ist, wenn Dropbear zum Einsatz kommt.

Die vollständige Syntax für die IP= Config findet sich unter https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt

Tags: linux cryptsetup dropbear ssh

Mehr

  • Flexible, bootfähige USB-Sticks mit Ventoy
  • Backups mit Borg und ZFS/LVM Snapshots
  • Ansible: Best Practice
  • SSH-Keys mit TPM
  • SSH-Keys mit Yubikey

Tags

linux cryptsetup dropbear ssh

Archiv

  • Mar 2025 (2)
  • May 2024 (2)
  • Oct 2023 (1)
  • Aug 2023 (5)
  • Jul 2023 (31)

  • Ältere Einträge (95)

Feeds

Atom 1.0 RSS JSON
  • Datenschutz
  • Impressum
  • Archiv