Stoppen Sie CryptTab und fragen Sie nach dem Passwort für den Austausch

10

Ich habe ein neues 11.04-System installiert, als es veröffentlicht wurde, und die vollständige Festplattenverschlüsselung mit LUKS eingerichtet. Zuerst wurde ich nach einem Passwort für meine drei verschlüsselten Partitionen gefragt:

/
/home
swap

Das dreimalige Eingeben der Passphrase war frustrierend, daher habe ich versucht, / home einzurichten und zu tauschen, um eine auf / gespeicherte Schlüsseldatei zu entschlüsseln. Ich habe die Schlüsseldatei erstellt und auf den beiden Partitionen aktiviert. Mein Crypttab sieht jetzt so aus:

root-root_crypt UUID=13c21bf6-4d92-42a7-877a-87cc31b1aa19 none luks
home-home_crypt UUID=ba90ce5b-9df7-4764-8a72-011bbb164db4 /root/keyfile luks
home-home_crypt UUID=ba90ce5b-9df7-4764-8a72-011bbb164db4 none luks
sda3_crypt UUID=e4677895-2114-4054-9f23-d36f6bb0e6a2 /root/keyfile luks,swap

Dies funktioniert gut für / home, das automatisch gemountet wird, ohne nach einem Passwort zu fragen. Cryptsetup fragt jedoch immer noch nach einem Passwort für den Swap Space. Ich habe sogar versucht, noauto zum Swap-Bereich hinzuzufügen, damit er überhaupt nicht eingerichtet wird. Sobald das System gestartet ist, kann ich es ohne die Passphrase aktivieren. Daher dachte ich, ich würde nur ein spätes Init-Skript hinzufügen es, aber auch mit noauto cryptsetup fragt noch nach der passphrase.

Vielen Dank!

Brad
quelle
4
Aus diesem Grund wird empfohlen, bei mehreren Partitionen LVM + LUKS zu verwenden. Crypsetup kann über oder unter der LVM-Schicht verwendet werden (über -> Dateisystem, unter -> Festplatte). Die Verwendung von Cryptsetup unter LVM hat den Vorteil, dass Sie nur eine verschlüsselte Partition benötigen (die LVM-Partition).
Lekensteyn

Antworten:

10

Hatte die gleiche Frage, hier ist, wie ich es auf Ubuntu 12.04.1 und 12.10 gemacht habe,

--Vor dem Start stellen Sie sicher, dass Sie ein Backup haben und Ihr System auch mit Ubuntu CD oder USB booten können. Als ob Sie einen Fehler machen, startet Ihr System möglicherweise nicht mehr oder Sie verlieren möglicherweise Daten. Ich gehe davon aus, dass Sie ein verschlüsseltes Ubuntu-System mit LUKS haben. Innerhalb von LUKS haben Sie 3 Partitionen: SYSTEM-BOOT (nicht verschlüsselt), SYSTEM-SWAP (verschlüsselt) und SYSTEM-OS (verschlüsselt).

Sie müssen UUIDs, SYSTEM-SWAP_crypt, SYSTEM-OS_crypt, SYSTEM-SWAP, SYSTEM-OS an die auf Ihrem System verwendete Variante anpassen. Weitere Informationen finden Sie unter Referenzlink unter meiner Lösung

UUIDs abrufen:

blkid

Vorbereiten>

swapoff /dev/mapper/SYSTEM-SWAP_crypt
cryptsetup luksClose SYSTEM-SWAP_crypt

Weisen Sie cryptsetup an, die Passphrase der Swap-Partition aus dem Entschlüsselungsschlüssel des Volumes zu berechnen, auf dem sich das Root-Dateisystem befindet>

/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksFormat /dev/mapper/SYSTEM-SWAP --key-file -
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksOpen /dev/mapper/SYSTEM-SWAP SYSTEM-SWAP_crypt --key-file -
mkswap /dev/mapper/SYSTEM-SWAP_crypt

Informieren Sie das System über die Swap-Partition, bearbeiten Sie crypttab>

nano /etc/crypttab

=? Stellen Sie sicher, dass zwei Zeilen übereinstimmen

SYSTEM-OS_crypt UUID=uuid-of-luks-containing-osroot none luks
SYSTEM-SWAP_crypt UUID=uuid-of-luks-containing-swap SYSTEM-OS_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived

Informieren Sie das System über die Swap-Partition und bearbeiten Sie fstab>

nano /etc/fstab

=? Stellen Sie sicher, dass Sie diese Linie haben

/dev/mapper/SYSTEM-SWAP_crypt swap swap sw 0 0

Informieren Sie das System über die Swap-Partition und bearbeiten Sie den Lebenslauf>

nano /etc/initramfs-tools/conf.d/resume

=? Stellen Sie sicher, dass Sie diese Linie haben

RESUME=UUID=uuid-of-encrypted-swap-SYSTEM-SWAP_crypt

Aktualisieren Sie initramfs auf der Boot-Partition>

update-initramfs -u -k all

Referenz

Die Antwort, die vom Einrichten eines verschlüsselten Debian-Systems (archivierter Link) inspiriert wurde :

Wenn Sie ein verschlüsseltes Debian-System verwenden, müssen Sie wahrscheinlich einige Sicherheitsanforderungen erfüllen. In diesem Fall müssen Sie auch eine verschlüsselte Swap-Partition verwenden.

Die Swap-Partition kann auf zwei Arten verschlüsselt werden:

  • Es kann bei jedem Start mit einer zufälligen Passphrase neu erstellt werden
  • Es kann wie die anderen verschlüsselten Volumes mit einer dauerhaften Passphrase erstellt werden

Wenn Sie Suspend-to-Disk verwenden möchten, können Sie den ersten Ansatz nicht verwenden, da er Ihren in der Swap-Partition gespeicherten Speicherbedarf überschreibt. Darüber hinaus können Sie eine Schlüsseldatei nicht wie die anderen Partitionen verwenden, da das Root-Dateisystem zum Zeitpunkt des Beginns des Wiederaufnahmevorgangs nicht bereitgestellt ist (und nicht bereitgestellt werden muss) und die entschlüsselte Auslagerungspartition lesen muss.

Ich habe dies gelöst, indem ich cryptsetup angewiesen habe, die Passphrase der Swap-Partition aus dem Entschlüsselungsschlüssel des Volumes zu berechnen, auf dem sich das Root-Dateisystem befindet. Das Cryptsetup-Paket implementiert dies mit /lib/cryptsetup/scripts/decrypt_derived. Um die Swap-Partition einzurichten, gehe ich wie folgt vor, vorausgesetzt, hda2die Partition enthält den verschlüsselten Swap und das Root-Dateisystem befindet sich in hda5_crypt:

swapoff /dev/mapper/hda2_crypt
cryptsetup luksClose hda2_crypt
dd if=/dev/urandom of=/dev/hda2
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
  | cryptsetup luksFormat /dev/hda2 --key-file -
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
  | cryptsetup luksOpen /dev/hda2 hda2_crypt --key-file -
mkswap /dev/mapper/hda2_crypt

Um das System über diese Swap-Partition zu informieren, müssen wir sie zu /etc/crypttabund hinzufügen /etc/fstab. Stellen Sie sicher, dass diese Dateien Zeilen wie die folgenden enthalten:

/etc/crypttab:
  hda2_crypt /dev/hda2 hda5_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived

/etc/fstab:
  /dev/mapper/hda2_crypt swap swap sw 0 0

Sobald Sie das System für das Suspend-to-Disk konfigurieren, wird die Swap-Partition sehr früh während der Startsequenz automatisch neben dem Root-Dateisystem eingerichtet. Um herauszufinden, welche Swap-Partition zu diesem Zeitpunkt verfügbar sein soll, überprüft cryptsetup Folgendes: asfasfafs - eine Zeile wie RESUME=/dev/mapper/hda2_cryptin /etc/initramfs-tools/conf.d/resume - eine Einstellung für das Wiederaufnahmegerät in /etc/uswsusp.conf(siehe uswsusp.conf(5)) - einen Eintrag in /etc/suspend.conf - a resume=/dev/mapper/hda2_cryptin der Kernel-Befehlszeile

Sie können überprüfen, /usr/share/initramfs-tools/hooks/cryptrootob Sie mehr darüber wissen möchten.

Prinz
quelle
Willkommen bei Ask Ubuntu! Hätte + 1, wenn nicht einfach kopiert / eingefügt worden wäre, ohne auf die Formatierung zu achten (was ich gerade getan habe). Ich mag den Ansatz "Es kann bei jedem Start mit einer zufälligen Passphrase neu erstellt werden".
Gertvdijk
fügte die Befehle hinzu, die ich tatsächlich zur Antwort verwendet habe, ich werde sie auch am 12.10 testen, werde die Antwort später aktualisieren
Prinz
In Ordnung. Ich nahm an, dass Sie es vollständig kopiert / eingefügt haben. Bitte ändern Sie es, um zu erfahren, welche Änderungen Sie daran vorgenommen haben, damit es funktioniert. Wäre hilfreich, danke!
Gertvdijk
Versuchen Sie es nicht unter 12.10, da ich auf einen Fehler gestoßen bin, der das Booten verhindert. Ich erhalte die Meldung "cryptsetup lvm is not available", gibt die Google-Suche Fehler zurück. Ich muss mich eingehender damit befassen, habe aber keine Zeit. Ich werde es später wissen lassen.
Prinz
Die Antwort wurde aktualisiert. Mein 12.10-System ist jetzt voll funktionsfähig und fordert nur ein Kennwort an. Ich habe -initramfs -u -k nicht alle am Ende aktualisiert , die das Problem verursacht haben, das ich im vorherigen Kommentar erwähnt habe. @gertcdijk formierte alles, hoffe du bist jetzt glücklich
Prinz
4

Dies weist wahrscheinlich darauf hin, dass während des initramfsTeils des Startvorgangs auf die Swap-Partition zugegriffen wird. Zu diesem Zeitpunkt wurde das Root-Dateisystem noch nicht bereitgestellt, sodass dort gespeicherte Konfigurationsdateien nicht sichtbar sind.

Während der Auslagerungsbereich nach dem Root-Dateisystem bereitgestellt wird, gibt es einen Grund für den initramfsInitialisierungsprozess, auf den Auslagerungsbereich zuzugreifen: Wenn Sie Ihren Computer in den Ruhezustand versetzen, werden der Inhalt des Speichers und der Systemstatus in den Auslagerungsmodus geschrieben. Um den Ruhezustand fortzusetzen, muss überprüft werden, ob der Auslagerungsbereich ein Ruhezustand-Image enthält, für das die Passphrase erforderlich wäre.

Wenn es Ihnen nichts ausmacht, die Fähigkeit zu verlieren, aus dem Ruhezustand zurückzukehren, können Sie dieses Verhalten deaktivieren, indem Sie /etc/initramfs-tools/conf.d/resumedie Zeile beginnend mit bearbeiten und auskommentieren RESUME=. Führen Sie update-initramfs -unach der Änderung die Option aus , um das initramfsImage zu aktualisieren .

James Henstridge
quelle
Ah, Danke! Ich bin mir nicht sicher, ob ich den Winterschlaf opfern möchte. Ich benutze es nicht oft, aber wenn der Akku ohne mein Wissen abgenutzt ist, ist er praktisch. Wissen Sie, ob es eine Möglichkeit gibt, dass cryptsetup dasselbe Passwort für / wiederverwendet?
Brad
Ich kenne keinen Weg, das zu tun. Und bevor Sie fragen, versuchen Sie nicht, eine Kopie Ihrer Schlüsseldatei in das zu legen initramfs. Während die Passphrase-Eingabeaufforderung entfernt würde, würde sie auch jedem zur Verfügung stehen, der physischen Zugriff auf die Festplatte hat.
James Henstridge