IT-Admin.tech

Encrypted-Root-Betrieb: LUKS-Header-Backup, Recovery und Remote-Unlock im Initramfs

Architekturdiagramm zu initramfs und LUKS-Root neben geöffnetem Server mit NVMe-SSDs
Der LUKS-Header und das initramfs sind die kritischen Komponenten für Boot und Recovery bei verschlüsseltem Root.

Ein Encrypted-Root-Betrieb (Root-Dateisystem per LUKS verschlüsselt) ist in vielen Umgebungen Standard: Er reduziert das Risiko bei Diebstahl von Datenträgern, unkontrolliertem Zugriff auf Storage im Rechenzentrum oder bei ausgemusterten Systemen. Gleichzeitig verlagert er kritische Verantwortung in eine sehr frühe Boot-Phase: initramfs (Initial RAM Filesystem) und der LUKS-Header entscheiden darüber, ob ein System überhaupt hochkommt. Wer hier keine sauberen Backups, Tests und ein Recovery-Runbook hat, merkt das meist erst im Notfall – und dann ist die Zeit knapp.

Dieser Beitrag konzentriert sich auf drei Praxisbereiche, die im Betrieb immer wieder entscheiden: LUKS-Header-Backup (und warum es anders behandelt werden muss als „normale“ Backups), Recovery inklusive realistischem Testpfad sowie Remote-Unlock im Initramfs (z. B. über Dropbear/SSH, oder über automatisierte Entsperrmethoden). Ziel ist, dass auch Teams ohne tiefes Kryptografie-Spezialwissen belastbare Abläufe aufbauen können – mit klaren Prüfschritten, typischen Stolperfallen und Rückfallstrategie.

Warum der LUKS-Header betriebsentscheidend ist

LUKS (Linux Unified Key Setup) trennt bei verschlüsselten Blockgeräten zwei Dinge: Header/Metadaten und Nutzdaten. Im Header liegen unter anderem die Parameter der Verschlüsselung, Schlüssel-Slots (Keyslots) und bei LUKS2 zusätzlich umfangreiche Metadaten (z. B. JSON-Strukturen, Token-Infos). Der eigentliche Datenbereich ist ohne den Header praktisch nicht interpretierbar.

Wichtig für den Betrieb: Ein defekter oder überschriebenen Header ist häufig schlimmer als eine beschädigte Datei im Dateisystem. Sie können dann zwar noch „verschlüsselte Daten“ sichern, aber ohne passende Header-Informationen nicht mehr entschlüsseln. Umgekehrt gilt: Ein kompromittierter Header (z. B. durch unkontrollierte Kopien) ist sensibel, weil er Angriffsfläche schafft (Offline-Angriffe auf Passphrasen) und je nach Setup Hinweise auf Schlüsselverwaltung enthält.

Typische Ursachen für Header-Probleme

  • Fehlbedienung bei Storage-Operationen: falsches Device, versehentliches wipefs oder Re-Partitionierung am falschen Datenträger.
  • Automatisierung ohne Schutzgeländer: Provisioning/Ansible/Skripte, die auf „/dev/sdX“ statt auf stabile IDs gehen.
  • Hardware-/Transportfehler: defekte Sektoren im Header-Bereich, Controller-Probleme, fehlerhafte RAID-Rebuilds.
  • Ungetestete LUKS2-Features: Metadaten-Resize, Token-Handling (TPM2/Clevis) oder Tool-Versionen, die nicht zusammenpassen.

Grundlagen vorab: Begriffe, Varianten, Abhängigkeiten

initramfs ist ein minimales Root-Dateisystem im RAM, das sehr früh im Bootprozess läuft. Es lädt Treiber, findet das Root-Blockdevice, entschlüsselt ggf. LUKS und übergibt dann an das „echte“ Root. Zwei verbreitete Toolchains sind dracut (häufig RHEL/Fedora/SUSE) und initramfs-tools (häufig Debian/Ubuntu). Das konkrete Verhalten (Hooks, Netzwerk im initramfs, SSH-Server) hängt stark davon ab.

cryptsetup ist das zentrale Werkzeug, um LUKS-Container zu verwalten: Header sichern, Keyslots hinzufügen/entfernen, Entschlüsselung starten. Im Betrieb sollten Sie außerdem unterscheiden, ob Sie LUKS1 oder LUKS2 nutzen: LUKS2 ist moderner (z. B. bessere Metadaten, Token), hat aber in heterogenen Umgebungen eher Versions-/Kompatibilitätsfragen.

LUKS-Header-Backup: Was sichern, wie oft, wohin?

Grafik zeigt LUKS-Headerbereich und separaten Backup-Blob als Datei
Der Header ist klein, aber für Entschlüsselung und Recovery entscheidend.

Ein LUKS-Header-Backup ist kein „Nice-to-have“. Es ist die kleinste Sicherung mit der größten Wirkung auf Ihre Wiederherstellbarkeit. Gleichzeitig ist es sensibel und braucht klare Aufbewahrungsregeln.

Was genau wird gesichert?

Mit cryptsetup luksHeaderBackup sichern Sie den Headerbereich eines LUKS-Geräts in eine Datei. Diese Datei enthält keine Nutzdaten, aber Metadaten und Keyslots. Sie ist damit hochkritisch: Wer sie erlangt, kann offline Passphrasen angreifen und erhält strukturelle Informationen über Ihr Setup.

Praktisches Vorgehen: Header-Backup erstellen (inkl. Verifikation)

Ermitteln Sie zuerst das korrekte Blockdevice. Nutzen Sie nach Möglichkeit stabile Pfade (z. B. /dev/disk/by-uuid/ oder /dev/mapper/), nicht wechselnde /dev/sdX-Namen.

Shell
# 1) Übersicht: Welche LUKS-Devices sind vorhanden?
lsblk -f

# 2) Header/Parameter prüfen (liest den Header, verändert nichts)
sudo cryptsetup luksDump /dev/nvme0n1p3

Erstellen Sie dann das Backup. Benennen Sie Dateien eindeutig (Hostname, Device, Datum, LUKS-Version). Legen Sie den Output nicht dauerhaft unverschlüsselt auf dem System ab.

Shell
# Header-Backup erstellen
sudo cryptsetup luksHeaderBackup /dev/nvme0n1p3 --header-backup-file luks-header_nvme0n1p3_$(date +%F).img

# Dateigröße/Existenz prüfen
ls -lh luks-header_nvme0n1p3_*.img

Eine „Verifikation“ bedeutet hier nicht, dass Sie das Backup in ein laufendes System einspielen (das wäre riskant), sondern dass Sie die Header-Informationen nachvollziehbar dokumentieren und den Backup-Prozess wiederholbar machen. Sinnvoll ist, die Ausgabe von luksDump (ohne Secrets) in Ihr Betriebsprotokoll aufzunehmen.

Shell
# Wichtige Metadaten für Dokumentation (keine Passphrase, keine Keys)
sudo cryptsetup luksDump /dev/nvme0n1p3 | sed -n '1,120p'

Wann müssen Sie den Header erneut sichern?

Header-Backups sind nicht „für immer“ korrekt. Sie sollten neu gesichert werden, wenn sich Keyslots oder Metadaten ändern. Typische Trigger:

  • Passphrase geändert oder zusätzlicher Keyslot hinzugefügt/entfernt
  • Wechsel auf TPM2-/Clevis-basierte Entsperrung (Token im Header)
  • Konvertierung LUKS1 → LUKS2 oder Metadaten-Operationen
  • Relevante Änderungen an initramfs-Entsperrlogik, wenn Token/Keyfile-Mechanismen betroffen sind

Aufbewahrung: Zugriff streng begrenzen

Ein tragfähiges Muster ist: Header-Backups offsite und verschlüsselt speichern, Zugriffe protokollieren und nur sehr wenige Personen/Automationen berechtigen. In der Praxis heißt das häufig: verschlüsseltes Backup-Repository, HSM/Key-Management für das Repository-Passwort, und zusätzlich eine Kopie als „Break Glass“ (z. B. offline, versiegelt, mit 4-Augen-Prozess).

Wichtig: Ein Header-Backup ist klein – das verführt zu „mal eben per Ticket anhängen“ oder in Chat-Tools zu verschicken. Genau das sollten Sie organisatorisch und technisch verhindern.

Recovery: Von „bootet nicht“ zu „Daten wieder da“

Rescue-Setup mit Laptop, Boot-USB und externer SSD für Recovery
Für Recovery zählt eine vorbereitete Rescue-Umgebung mit passenden Tools.

Recovery im Encrypted-Root-Betrieb scheitert selten an „Kryptografie“, sondern an fehlenden Schritten, fehlender Umgebung oder falschen Annahmen: falsches Device, falsche Tool-Version, fehlende initramfs-Treiber, kein Out-of-Band-Zugang. Planen Sie daher ein Runbook, das zwischen Header-Recovery, Boot-Recovery und Schlüssel-/Unlock-Recovery unterscheidet.

Erste Diagnose: Ist es ein Header-Problem oder ein Boot-/Initramfs-Problem?

Wenn das System in einer Bootschleife hängt oder nach Passphrase fragt und trotzdem scheitert, trennen Sie diese Fälle:

  • Header defekt: cryptsetup luksDump liefert Fehler, „not a valid LUKS device“, I/O-Errors im Headerbereich.
  • Initramfs/Boot-Problem: LUKS ist intakt, aber initramfs findet das Device nicht (Treiber fehlen, UUID geändert, falsche Kernel-Parameter).
  • Unlock-/Keyslot-Problem: Header intakt, aber Passphrase/Keyfile/Token passt nicht (Keyslot deaktiviert/gelöscht, Tippfehler, andere KDF-Parameter).

Recovery-Umgebung vorbereiten: Live-System und Tool-Versionen

Planen Sie vorab, womit Sie im Notfall arbeiten: Rescue-ISO, PXE-Rescue, oder eine separate Maintenance-Partition. Kritisch ist, dass die cryptsetup-Version LUKS2-Features Ihres Systems versteht. Ein altes Rescue-System kann LUKS2 zwar teils öffnen, aber bei Token/Metadaten-Details scheitern.

Minimaler Prüfblock im Rescue-System:

Shell
# Versionen prüfen
cryptsetup --version
uname -r

# Blockgeräte und Partitionen erkennen
lsblk -o NAME,SIZE,TYPE,FSTYPE,UUID,MOUNTPOINTS

Header wiederherstellen (Restore) – nur mit klarer Rückfallstrategie

Das Einspielen eines Header-Backups ist ein destruktiver Vorgang für die aktuellen Headerdaten. Er ist nur sinnvoll, wenn der aktuelle Header kaputt ist oder sicher unbrauchbar. Wenn der Header noch teilweise lesbar ist, sichern Sie ihn zuerst (auch wenn er „defekt“ wirkt) als forensische Rückfallebene.

Shell
# 1) Aktuellen Header (auch wenn defekt) sichern
sudo cryptsetup luksHeaderBackup /dev/nvme0n1p3 --header-backup-file current-header_broken_$(date +%F).img

# 2) Header-Backup zurückspielen (Achtung: überschreibt Header!)
sudo cryptsetup luksHeaderRestore /dev/nvme0n1p3 --header-backup-file luks-header_nvme0n1p3_2026-08-01.img

Warum das funktioniert: LUKS speichert Schlüsselmaterial und Metadaten im Header. Wenn nur der Header beschädigt wurde, aber der Datenbereich unverändert ist, stellt ein passender Header die Fähigkeit wieder her, den Master Key zu rekonstruieren und damit die Nutzdaten zu entschlüsseln.

Wann es scheitert:

  • Das Header-Backup passt nicht zum Datenbereich (falsches Device, falscher Zeitpunkt, nachträgliche Re-Keying/Slot-Änderungen).
  • Der Datenbereich ist ebenfalls beschädigt (z. B. durch falsche Writes), dann kann Entschlüsselung zwar starten, aber Dateisystem ist inkonsistent.
  • Sie haben mehrere Layer (z. B. LVM-on-LUKS, RAID-on-LUKS) und stellen den falschen Layer wieder her.

Nach dem Restore: Entsperren und Dateisystem prüfen

Nach dem Header-Restore sollte die Entschlüsselung im Rescue-System wieder möglich sein. Öffnen Sie das Device und prüfen Sie das Dateisystem offline. Je nach FS: ext4 mit fsck, XFS mit xfs_repair (XFS-Checks brauchen oft spezielle Optionen, und ein „mount & hope“ ist im Notfall keine gute Idee).

Shell
# Entschlüsseln
sudo cryptsetup open /dev/nvme0n1p3 cryptroot

# Beispiel ext4: Check durchführen (Device/Mapper anpassen)
sudo fsck -f /dev/mapper/cryptroot

Wenn LVM im Spiel ist (häufig bei Root), aktivieren Sie Volume Groups erst nach erfolgreichem Unlock:

Shell
sudo vgscan
sudo vgchange -ay
lsblk

Remote-Unlock im Initramfs: Betriebsnutzen, Risiken, Architektur

Architekturpfad für Remote-Unlock im initramfs über Management-Netz
Remote-Unlock sollte über Management-Pfade segmentiert und minimal gehalten sein.

Remote-Unlock bedeutet: Das System bootet bis in initramfs, bringt Netzwerk hoch und bietet eine Möglichkeit, die LUKS-Passphrase remote einzugeben oder einen Entsperrvorgang zu triggern. Das ist vor allem für Headless-Server wichtig (keine Konsole, kein IP-KVM), für Außenstellen und für Systeme, die nach Kernel-Updates unbeaufsichtigt wiederkommen müssen.

Architektonisch ist das heikel, weil Sie Netzwerk und Authentisierung in eine sehr frühe Bootphase ziehen. initramfs ist nicht Ihr vollwertiges Userspace: weniger Tools, weniger Logging, andere Treiberlage. Genau deshalb muss die Lösung bewusst minimalistisch und robust sein.

Variante A: SSH im initramfs (z. B. Dropbear)

Ein etabliertes Muster ist ein kleiner SSH-Server im initramfs (häufig Dropbear). Der Server startet im initramfs, Sie verbinden sich per SSH, entsperren das LUKS-Device (oder lassen ein Hook-Skript entsperren) und der Boot geht weiter.

Wesentliche Voraussetzungen:

  • Netzwerk im initramfs muss zuverlässig hochkommen (Treiber, Firmware, DHCP oder statische Konfiguration).
  • Auth via SSH-Key statt Passwort. Keys müssen sauber verwaltet/rotiert werden.
  • Firewall/Segmentierung: Initramfs-SSH nur aus Admin-Netzen erreichbar, nicht aus „irgendwo“.
  • Runbook für Ausfallfälle: DHCP down, falsches VLAN, geänderte NIC-Namen, fehlende Firmware.

Debian/Ubuntu: Remote-Unlock mit initramfs-tools + Dropbear (Beispielpfad)

Die konkrete Implementierung variiert je Distribution, aber das Prinzip bleibt: Dropbear ins initramfs integrieren, Netzwerk konfigurieren, authorized_keys bereitstellen, initramfs neu bauen und testen.

Shell
# Pakete (Bezeichnungen können je nach Release variieren)
sudo apt update
sudo apt install -y dropbear-initramfs cryptsetup-initramfs

Authorized Keys werden typischerweise in einer Datei abgelegt, die beim Build ins initramfs übernommen wird. Achten Sie darauf, dass Sie nur dedizierte Admin-Keys verwenden (keine „Allzweck-Keys“ von Bastion-Hosts) und dass Sie den Zugriff im idealen Fall zusätzlich über Netzwerkpfade begrenzen.

Shell
# Beispiel: Keys für initramfs-SSH
sudo install -d -m 0700 /etc/dropbear-initramfs
sudo tee /etc/dropbear-initramfs/authorized_keys >/dev/null <<'EOF'
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... admin-key-1
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... admin-key-2
EOF
sudo chmod 0600 /etc/dropbear-initramfs/authorized_keys

Netzwerk im initramfs kann per Kernel-Parameter (ip=) oder über initramfs-Konfiguration erfolgen. Für planbaren Betrieb sind statische Parameter oder ein dediziertes DHCP-/PXE-Admin-Netz oft stabiler als „Produktiv-DHCP, das auch mal Wartungsfenster hat“.

Shell
# initramfs neu bauen
sudo update-initramfs -u -k all

Testen Sie den Pfad kontrolliert: Wartungsfenster, Out-of-Band bereit, vorher ein Snapshot/Backup. Der entscheidende Test ist nicht „Paket installiert“, sondern: Nach Reboot ist die Maschine per SSH im initramfs erreichbar und lässt sich zuverlässig entsperren.

RHEL/Fedora/SUSE: dracut-Ansatz und typische Stolperfallen

Mit dracut wird initramfs modular zusammengestellt. Remote-Unlock kann über dracut-Module, Netzwerk-Units und je nach Distribution über ergänzende Pakete erfolgen. In der Praxis sind die Stolperfallen ähnlich: NIC-Treiber/Firmware fehlen im initramfs, falsche rd.neednet=1-Parameter, DHCP wartet zu kurz/lang, oder die initramfs-Policy blockiert SSH.

Wenn Sie dracut nutzen, ist eine wichtige Betriebsdisziplin: nach Änderungen (Treiber, Netz, Crypt-Policy) das initramfs neu generieren und die Artefakte versionieren (z. B. „welches initramfs gehört zu welchem Kernel“). Bei Problemen ist ein schneller Rollback auf ein vorheriges Kernel+initramfs-Paar häufig der sauberste Weg.

Sicherheits- und Betriebsaspekte bei Remote-Unlock

Remote-Unlock löst ein Betriebsproblem, aber es verändert Ihr Bedrohungsmodell: Sie exponieren vor dem eigentlichen Systemstart einen Remote-Einstiegspunkt. Deshalb sollten Sie die Lösung so designen, dass ein Fehler nicht sofort zu „Root ist offen“ führt.

Best Practices: Minimaler Zugriff, klare Grenzen

  • Nur Key-basierte SSH-Authentisierung; keine Passwörter im initramfs.
  • Separate Admin-Keys nur für initramfs, mit klarer Rotation und Widerruf (z. B. wenn ein Admin-Laptop verloren geht).
  • Netzwerksegmentierung: Initramfs-SSH nur aus einem Management-Netz oder via Bastion/VPN erreichbar.
  • Logging/Beweissicherung: initramfs kann wenig loggen; kompensieren Sie über Netzwerk- und Bastion-Logs (Firewall, SSH-Gateway).
  • Timeouts und Fallback: Wenn Remote-Unlock nicht klappt, muss klar sein, wie Sie per Konsole/OOB fortfahren.

Automatisiertes Unlock vs. interaktives Unlock

Manche Umgebungen wollen automatisiert entsperren, z. B. über TPM2 (Trusted Platform Module; Hardware-Modul für sichere Schlüsselablage) oder Tang/Clevis (Network Bound Disk Encryption; Entsperrung über Netzwerk-Trust). Das reduziert den Bedarf an interaktivem Remote-Unlock, erhöht aber die Abhängigkeit von Hardwarezustand, PCR-Bindings (TPM-Messwerte) oder Netzwerkdiensten (Tang-Server erreichbar?).

Praxisempfehlung: Selbst wenn Sie automatisieren, halten Sie einen interaktiven Remote-Unlock-Pfad als Rückfallebene bereit (oder OOB-Konsole). Automatisches Unlock kann nach Firmware-Updates, Secure-Boot-Änderungen oder Mainboardtausch bewusst fehlschlagen – und das ist aus Sicherheitsgründen sogar korrekt.

Typische Fehlerbilder und Troubleshooting-Checkliste

Im Betrieb zählen reproduzierbare Prüfsequenzen. Die folgende Checkliste ist bewusst so formuliert, dass sie in ein Runbook übernommen werden kann.

Fehlerbild 1: System hängt im initramfs, keine Netzwerk-Erreichbarkeit

  • Prüfen: richtige VLAN/Port (Switch-Konfig, Management-Netz)?
  • Prüfen: NIC-Treiber/Firmware im initramfs enthalten? (häufig bei neuen NICs oder Bonding)
  • Prüfen: DHCP verfügbar? Falls nicht: statische ip=-Parameter testen.
  • Prüfen: Kernel-Parameter wie rd.neednet=1 (dracut) oder initramfs-netboot-Optionen.

Fehlerbild 2: SSH erreichbar, aber Unlock scheitert

  • Prüfen: korrektes Device/Mapper-Name? (UUID-Änderungen, udev-Naming)
  • Prüfen: Keyslot vorhanden und aktiv? (cryptsetup luksDump)
  • Prüfen: Tippfehler vs. geänderte Passphrase (4-Augen-Prinzip)
  • Prüfen: LUKS2-Header-Metadaten beschädigt? (I/O-Errors)

Fehlerbild 3: Nach Unlock bootet Root, aber Services fehlen / Mounts brechen

  • Prüfen: /etc/fstab (UUIDs, Mapper-Names), besonders nach Storage-Migration
  • Prüfen: LVM-Activation und device-mapper-Dependencies
  • Prüfen: Dateisystem-Integrität (fsck/xfs_repair im Wartungsmodus)
  • Prüfen: initramfs veraltet (Kernel aktualisiert, initramfs nicht neu gebaut)

Rückfallstrategie: Wenn Remote-Unlock nicht funktioniert

Ein robuster Encrypted-Root-Betrieb braucht immer einen zweiten Weg. Welche Rückfallebene sinnvoll ist, hängt von Ihrem Betriebsmodell ab:

  • Out-of-Band-Management (IPMI/iDRAC/iLO/Redfish): Konsole und Reboot unabhängig vom OS.
  • Virtuelle Konsole (bei Hypervisor/Cloud): Serielle Konsole oder VNC-Konsole, um Passphrase direkt einzugeben.
  • Rescue-Boot (ISO/PXE): Entschlüsseln im Rescue-System, initramfs regenerieren, Bootloader reparieren.

Definieren Sie in Ihrem Runbook explizit, wann Sie von „Remote-Unlock troubleshoot“ auf „Rescue-Plan“ umschalten. Typisch: nach X Minuten ohne Netzwerk und ohne Fortschritt nicht weiter probieren, sondern den OOB-/Rescue-Pfad nehmen, um Folgeschäden (z. B. wiederholte harte Reboots) zu vermeiden.

Operative Best Practices: So bleibt es dauerhaft beherrschbar

1) Changes an LUKS/Initramfs wie „Boot-Änderungen“ behandeln

Alles, was initramfs, Bootloader, Kernel-Parameter oder LUKS-Keyslots betrifft, sollte in Change-Prozessen denselben Stellenwert haben wie Netzwerk-Core oder Storage-Core. Ein vermeintlich kleiner Keyslot-Cleanup kann im Worst Case den einzigen funktionierenden Unlock-Pfad entfernen.

2) Header-Backup und Restore regelmäßig testen – aber sicher

Testen Sie Header-Restore nicht auf dem Produktionsdevice. Nutzen Sie stattdessen eine Kopie (z. B. Storage-Snapshot/Clone in einer Testumgebung) und üben Sie dort: Header „beschädigen“ (kontrolliert), Restore einspielen, entsperren, FS prüfen, Boot simulieren. So validieren Sie Tool-Versionen, Dokumentation und Zuständigkeiten.

3) Dokumentation: Was muss im Notfall in einem Ticket stehen?

  • Device-Topologie (RAID/LVM/LUKS/Partitionen), UUIDs, Mapper-Namen
  • Welche initramfs-Toolchain (dracut vs. initramfs-tools), welche Kernel-Version
  • Wo liegt das LUKS-Header-Backup, wer darf es abrufen, wie läuft der Freigabeprozess?
  • Welche Unlock-Wege existieren (lokal, remote, TPM/Tang) und welche sind aktuell aktiv?

Fazit: Encrypted-Root-Betrieb ist zuverlässig – wenn Sie Header und Initramfs als Kernkomponenten behandeln

Ein Encrypted-Root-Betrieb mit LUKS ist im Alltag stabil, aber nur dann wirklich resilient, wenn Sie zwei Dinge ernst nehmen: Der LUKS-Header ist ein eigener Backup-Gegenstand (mit eigener Sensibilität und eigenen Triggern), und initramfs ist eine produktive Betriebsumgebung, die Sie testen, versionieren und über Rückfallpfade absichern müssen. Mit einem sauberen Header-Backup-Prozess, realistischen Recovery-Übungen und einem minimalistisch abgesicherten Remote-Unlock-Konzept reduzieren Sie Ausfallzeiten deutlich – und vermeiden die unangenehme Kategorie von Incidents, in denen Daten physisch noch da sind, aber niemand mehr an sie herankommt.

Für dieses Thema sind auch Luks Header Backup und Luks Recovery wichtig. Der Beitrag ordnet diese Aspekte verständlich ein und zeigt, worauf es im Alltag ankommt.

Weiterfuehrend

Passende weitere Inhalte