Startseite
» LINUX
»
Wie man eine verschlüsselte Swap-Partition unter Debian 12 einrichtet
Wie man eine verschlüsselte Swap-Partition unter Debian 12 einrichtet
Die Verschlüsselung des Auslagerungsspeichers auf einem bestehenden Debian 12-System ist sinnvoll, wenn verhindert werden soll, dass Speicherseiten, Passwörter, Dokumentfragmente und andere temporäre Daten unverschlüsselt auf die Festplatte geschrieben werden. Für Systeme, die keinen Ruhezustand benötigen, beschreibt Debian ein einfaches Verfahren: Die Auslagerungspartition wird mit unverschlüsseltem dm-crypt verschlüsselt, und bei jedem Systemstart wird ein neuer, zufälliger Verschlüsselungsschlüssel generiert.
Diese Anleitung verwendet dieses Design. Sie setzt Debian 12 „bookworm“, eine dedizierte Swap- Partition und systemd als Init-System voraus. Die Befehle sind bewusst konservativ gehalten, da ein Fehler im Pfad eines Blockgeräts die falsche Partition überschreiben kann. Lesen Sie daher zuerst die Entscheidungspunkte und ersetzen Sie dann Ihre eigenen Geräte-IDs, anstatt die Beispielwerte blind zu kopieren.
Die Dokumentation von Debian cryptsetup beschreibt verschlüsselten Swap-Speicher detailliert und empfiehlt, den Swap-Speicher zu deaktivieren, die Partition /etc/crypttabmit ` <debug>` hinzuzufügen, zum gemappten Gerät /dev/urandomzu wechseln und anschließend den Swap-Speicher wieder zu aktivieren. Siehe die README-Datei von Debian cryptsetup . Das Handbuch `crypttab(5)` von Debian 12 dokumentiert ebenfalls die crypttab-Felder und die Optionen von `dm-crypt`./etc/fstab
Sollte man eine Swap-Verschlüsselung mit Zufallsschlüssel verwenden?
Verwenden Sie diese Funktion, wenn Sie eine verschlüsselte Auslagerungsdatei benötigen und keinen Ruhezustand wünschen. Der Schlüssel wird bei jedem Systemstart neu generiert, sodass alte Auslagerungsdateien nach dem Herunterfahren unlesbar werden. Genau diese Sicherheitsfunktion ist für die meisten Desktop- und Serverinstallationen erforderlich.
Verwenden Sie diese Konfiguration nicht, wenn Sie auf Ruhezustand, Suspend-to-Disk, Hybrid-Ruhezustand oder Suspend-then-Ruhezustand angewiesen sind. Das Fortsetzen erfordert, dass beim nächsten Neustart dasselbe Ruhezustandsabbild entschlüsselt wird. Ein neuer Zufallsschlüssel macht dies unmöglich. Debian weist ausdrücklich darauf hin, dass der Zufallsschlüssel-Tausch nicht als Fortsetzensmethode verwendet werden kann. Auch die Dokumentation zu systemd hibernate-resume in Debian 12 zeigt, dass das Fortsetzen von einer persistenten Fortsetzensmethode abhängt.
Wenn der Ruhezustand erforderlich ist, verwenden Sie stattdessen eine dauerhafte Verschlüsselungslösung, beispielsweise ein LUKS-basiertes Auslagerungsgerät mit entsprechender Entsperr- und Fortsetzkonfiguration. Dies ist eine andere Vorgehensweise und wird in diesem Leitfaden bewusst nicht behandelt.
Ist Ihre Auslagerungsdatei bereits durch Festplattenverschlüsselung geschützt?
Prüfen Sie dies, bevor Sie Änderungen vornehmen. Befindet sich Ihr Swap-Volume bereits in einem LUKS-verschlüsselten Container, bietet das Hinzufügen einer weiteren dm-crypt-Schicht möglicherweise nur geringen praktischen Nutzen und erhöht gleichzeitig die Komplexität.
Betrachten Sie das angezeigte Gerät swapon --showund verfolgen Sie dessen übergeordnete Elemente in lsblk. Ein gängiges unverschlüsseltes Layout könnte /dev/sda3direkt als Typ angezeigt werden swap. Eine verschlüsselte LVM-Installation könnte stattdessen Swap unterhalb eines crypto_LUKSübergeordneten Elements anzeigen.
Ermitteln Sie die aktive Swap-Partition und eine stabile Partitionskennung, bevor Sie Änderungen vornehmen. Die hier aufgeführten Gerätenamen und -kennungen dienen lediglich als Beispiele.
Diese Unterscheidung ist wichtig, da es in diesem Artikel um die Konvertierung einer unverschlüsselten dedizierten Swap-Partition geht . Falls swapon --showstattdessen eine Swap-Datei gemeldet wird, verwenden Sie ein entsprechendes Verfahren. Befindet sich der Swap bereits in einem verschlüsselten Speicher, prüfen Sie zunächst, ob eine zweite Schutzebene tatsächlich erforderlich ist.
Was sollten Sie aufzeichnen, bevor Sie den Swap-Modus deaktivieren?
Notieren Sie den genauen Partitionspfad, seine Größe und seine PARTUUID . Eine PARTUUID identifiziert den Partitionstabelleneintrag und bleibt auch dann noch nützlich, nachdem die Swap-Signatur innerhalb der Partition durch verschlüsselte Daten ersetzt wurde.
Zum Beispiel:
sudo blkid /dev/sda3
ls -l /dev/disk/by-partuuid/
Möglicherweise sehen Sie eine Ausgabe mit einem Wert wie dem folgenden:
PARTUUID="11111111-2222-3333-4444-555555555555"
In den folgenden Beispielen ist der entsprechende stabile Pfad:
Verlassen Sie sich nicht darauf, /dev/sda3ob sich die Datenträgeraufzählung ändern könnte. Vermeiden Sie außerdem die Verwendung der alten Swap-Dateisystem-UUID als langfristigen Quellbezeichner: Die Einrichtung des verschlüsselten Swap-Speichers erstellt die Swap-Signatur auf dem zugeordneten verschlüsselten Gerät neu, sodass die alte Raw-Swap-UUID nicht die richtige persistente Identität für die zugrunde liegende Partition darstellt.
1. Wie bereitet man das System sicher vor?
Installieren Sie cryptsetup, falls es noch nicht vorhanden ist, und sichern Sie anschließend die beiden Konfigurationsdateien, die Sie bearbeiten werden.
sudo apt update
sudo apt install cryptsetup
sudo cp -a /etc/crypttab /etc/crypttab.before-encrypted-swap 2>/dev/null || true
sudo cp -a /etc/fstab /etc/fstab.before-encrypted-swap
Falls /etc/crypttabes noch nicht existiert, ist das kein Problem; erstellen Sie es einfach beim Bearbeiten der Konfiguration.
Stellen Sie als Nächstes sicher, dass das System für die kurze Zeit, in der der Swap-Speicher deaktiviert ist, über ausreichend Arbeitsspeicher verfügt. Deaktivieren Sie dann nur die Swap-Partition, die Sie konvertieren möchten. Die Verwendung desselben Geräts ist sicherer als swapoff -aauf einem System mit mehreren Swap-Bereichen.
sudo swapoff /dev/sda3
swapon --show
Deaktivieren Sie die Auslagerungsdatei, bevor Sie sie verschlüsseln. Bei Systemen mit mehreren Auslagerungsdateien sollten Sie die gewünschte Datei bearbeiten, anstatt unnötigerweise alle zu deaktivieren.
Führen Sie mkswapab diesem Zeitpunkt keine Operationen mehr auf der Rohpartition durch. Die Swap-Signatur sollte auf dem verschlüsselten Mapper-Gerät und nicht auf der unverschlüsselten Hintergrundpartition erstellt werden.
2. Was gehört in die Datei /etc/crypttab?
Erstellen oder bearbeiten /etc/crypttabSie einen Eintrag für die verschlüsselte Swap-Zuordnung und fügen Sie einen weiteren hinzu. Die folgende Vorgehensweise orientiert sich an der Debian-Dokumentation zu cryptsetup:
Ersetzen Sie die Beispiel-PARTUUID durch die PARTUUID Ihres Systems.
Die Felder bedeuten:
cswapist der Name des Mappers, der erstellt wird /dev/mapper/cswap.
Das zweite Feld ist die eigentliche zugrunde liegende Swap-Partition.
/dev/urandomliefert bei jeder Erstellung der Zuordnung einen neuen zufälligen Schlüssel.
plainWählt den einfachen dm-crypt-Header anstelle eines persistenten LUKS-Headers aus.
cipher=aes-xts-plain64,size=256macht die plain-dm-crypt-Parameter explizit, anstatt sich auf Standardwerte zu verlassen, die sich ändern können.
swapTeilt der cryptsetup-Integration mit, dass es sich bei diesem zugeordneten Gerät um einen Swap-Speicher handelt und es entsprechend initialisiert werden sollte.
Der Eintrag in crypttab erstellt bei jeder Aktivierung eine temporäre verschlüsselte Zuordnung namens cswap mit einem neuen Schlüssel aus /dev/urandom.
Das Handbuch von Debian crypttab warnt davor, dass dm-crypt im Gegensatz zu LUKS keine Metadaten zu Verschlüsselungsalgorithmus, Hashwert oder Schlüssellänge im Header speichert. Daher ist die explizite Protokollierung von Verschlüsselungsalgorithmus und Schlüssellänge sinnvoll. Das Handbuch beschreibt auch die discardSicherheitsrisiken, weist aber darauf hin; fügen Sie dm-crypt nicht allein deshalb hinzu, weil es sich beim Speichermedium um eine SSD handelt, ohne die damit verbundenen Risiken sorgfältig abzuwägen.
3. Welche Änderungen gibt es in der Datei /etc/fstab?
Suchen Sie die alte, unverschlüsselte Swap-Zeile in /etc/fstab. Sie kann eine UUID, einen Gerätepfad oder eine andere persistente Kennung verwenden. Zum Beispiel:
UUID=OLD-SWAP-UUID none swap sw 0 0
Ersetzen Sie es durch das zugeordnete verschlüsselte Gerät:
/dev/mapper/cswap none swap sw 0 0
Lassen Sie nicht beide Einträge aktiv. Wenn sowohl die Rohpartition als /dev/mapper/cswapauch die Swap-Partition aktiviert sind, wird der Zweck der Partitionsverschlüsselung zunichtegemacht und die Aktivierung beim Systemstart kann beeinträchtigt werden.
Die fstab-Datei sollte auf das verschlüsselte Mapper-Gerät verweisen, nicht auf die ursprüngliche Roh-Swap-Partition.
Das fstab(5)-Handbuch von Debian definiert das Format der Swap-Einträge, während swapon(8) erklärt, wie als Swap markierte Einträge aktiviert werden.
4. Wie kann man es vor dem Neustart aktivieren und überprüfen?
Nach dem Speichern beider Dateien starten Sie die verschlüsselte Zuordnung und aktivieren anschließend den Swap-Eintrag. Die Dokumentation zu cryptsetup in Debian verwendet folgende Hinweise:
sudo cryptdisks_start cswap
sudo swapon -a
Überprüfen Sie nun alle drei Ebenen:
swapon --show
sudo cryptsetup status cswap
lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINTS
Ein korrektes Ergebnis sollte den Swap-Speicher auf der Partition anzeigen /dev/mapper/cswap, nicht direkt auf der ursprünglichen Partition. cryptsetup status cswapDie Zuordnung sollte als aktiv gemeldet werden.
Falls cryptdisks_startdas Paket in Ihrer Installation nicht verfügbar ist, führen Sie keine improvisierten, destruktiven Befehle aus. Überprüfen Sie erneut, ob das cryptsetupPaket installiert ist und die Syntax der crypttab-Datei korrekt ist. Alternativ können Sie die Zuordnung auch vom normalen Debian-Bootvorgang erstellen lassen, nachdem Sie die unten beschriebene Konfiguration wiederhergestellt haben. Debian 12 verwendet Systemd-Generatoren, um die crypttab- und fstab-Konfiguration in Boot-Einheiten zu übersetzen.
5. Muss die Aufwachfunktion nach dem Ruhezustand deaktiviert werden?
Ja, wenn diese Partition als Wiederherstellungsgerät des Systems konfiguriert war. Ein zufälliger Schlüssel kann ein mit dem vorherigen Schlüssel geschriebenes Ruhezustandsabbild nicht entschlüsseln. Die Debian-Anleitung für verschlüsselten Swap weist Administratoren ausdrücklich darauf hin, die Wiederherstellung zu deaktivieren, wenn die alte Wiederherstellungs-Swap-Partition in einen mit einem zufälligen Schlüssel verschlüsselten Swap-Speicher umgewandelt wird.
Falls es sich um die soeben konvertierte Swap-Partition handelt, setzen Sie „resume“ auf „none“:
echo "RESUME=none" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo update-initramfs -u
Hier update-initramfs -ukommt es auf Folgendes an: Sie müssen die initramfs nicht neu erstellen, nur weil sich ein normaler Swap-Eintrag nach dem Systemstart geändert hat; Sie müssen sie jedoch aktualisieren, wenn Sie ein altes Ziel für das Aufwachen aus dem Ruhezustand entfernen, das die initramfs andernfalls möglicherweise verwenden möchte.
Neustarttest: Was beweist, dass die Konfiguration funktioniert?
Starten Sie das System erst neu, wenn die Live-Aktivierung funktioniert hat und die Konfigurationsdateien korrekt sind:
sudo reboot
Nachdem das System zurückgekehrt ist, führen Sie Folgendes aus:
Die Rohdatenpartition wird nicht direkt als aktiver Swap-Speicher aufgeführt.
cryptsetup status cswapmeldet eine aktive einfache dm-crypt-Zuordnung.
Die Maschine startet ohne Abfrage einer Swap-Passphrase; der Zufallsschlüssel wird automatisch generiert.
Sie können auch zweimal neu starten und das Mapping-Verhalten vergleichen. Der Sinn dieser Konstruktion besteht darin, dass der Verschlüsselungsschlüssel nur temporär ist; die Inhalte des Swap-Speichers des vorherigen Starts können nach der Neuerstellung des Mappings nicht wiederhergestellt werden.
Was passiert, wenn die Maschine in den Notmodus schaltet?
Die häufigsten Ursachen sind ein falscher Pfad zum Sicherungsmedium, ein Tippfehler in der Konfigurationsdatei /etc/crypttaboder eine /etc/fstabZeile, die noch auf den alten Roh-Swap verweist. Starten Sie im Wiederherstellungsmodus oder verwenden Sie eine Rettungsumgebung, binden Sie das Root-Dateisystem mit Lese- und Schreibrechten ein und stellen Sie gegebenenfalls die Sicherungen wieder her.
Nützliche Prüfungen umfassen:
sudo cryptsetup status cswap
systemctl status systemd-cryptsetup@cswap.service
systemctl status dev-mapper-cswap.swap
journalctl -b -u systemd-cryptsetup@cswap.service
Bei ungewöhnlichen Mapper-Namen können Unit-Namen unterschiedlich maskiert werden. Verwenden Sie daher eine andere Methode, systemctl list-units '*cryptsetup*'wenn der genaue Dienstname nicht offensichtlich ist.
Wie sieht es mit dem SSD-Disk-Verfahren aus?
Aktivieren Sie Discard nicht standardmäßig, nur um theoretische SSD-Leistung zu erzielen. Die Dokumentation von Debian crypttab weist darauf hin, dass die Weiterleitung von Discard-Anfragen über ein verschlüsseltes Gerät Sicherheitsrisiken birgt. Auch das Debian swapon-Handbuch merkt an, dass Discard die Leistung auf einigen SSDs verbessern kann, dies aber häufig nicht der Fall ist. Falls Sie Discard benötigen, analysieren Sie zunächst Ihr Speichermodell und das Bedrohungsmodell und aktivieren Sie es dann gezielt.
Ist verschlüsselter Swap-Speicher noch sinnvoll, wenn das Root-Dateisystem unverschlüsselt ist?
Ja, aber man muss die Grenzen verstehen. Verschlüsselter Auslagerungsspeicher schützt Speicherseiten, die auf die Auslagerungspartition geschrieben werden. Er verschlüsselt keine Dateien, die auf einem unverschlüsselten Root- oder Home-Dateisystem gespeichert sind, keine Shell-Historie, keine Anwendungscaches, keine Crash-Dumps, keine temporären Dateien und keine Protokolle. Wenn es um einen umfassenden Schutz vor Datenverlust durch eine gestohlene Festplatte geht, ist die vollständige Festplatten- oder Dateisystemverschlüsselung die sicherste Methode.
Abschließende Checkliste
Vergewissern Sie sich, dass es sich bei dem Ziel um eine dedizierte, unverschlüsselte Swap-Partition handelt, nicht um eine Auslagerungsdatei und nicht bereits durch ein verschlüsseltes übergeordnetes Gerät geschützt ist.
Notieren Sie einen stabilen Partitionspfad, z. B. /dev/disk/by-partuuid/....
Deaktivieren Sie den Raw-Swap, bevor Sie dm-crypt konfigurieren.
Füge einen Eintrag für den Klartext-DM-Verschlüsselungsalgorithmus mit Zufallsschlüssel hinzu zu /etc/crypttab.
Zeigen Sie /etc/fstabnur auf /dev/mapper/cswap.
Aktivieren Sie die Zuordnung und überprüfen Sie sie vor dem Neustart.
Wenn der alte Swap ein Resume-Gerät war, dann einstellen RESUME=noneund ausführen update-initramfs -u.
Nach dem Neustart überprüfen Sie, ob nur der verschlüsselte Mapper als Swap aktiv ist.
Bei Debian 12-Systemen ohne Ruhezustand hält dieser Ansatz die Konfiguration klein und vermeidet die Speicherung eines permanenten Swap-Schlüssels. Die entscheidende Frage ist nicht, welchen Verschlüsselungsbefehl ich verwenden soll, sondern ob ein Swap mit zufälligem Schlüssel Ihren Anforderungen an das Energiemanagement entspricht. Sobald dies geklärt ist, erfolgt eine kontrollierte Migration von der ursprünglichen Swap-Partition zu einer dm-crypt-Zuordnung, die bei jedem Systemstart sicher neu erstellt wird.