LUKS und Loop-Gerät

LUKS und Loop-Gerät

Ich habe viele Tutorials zu LUKS/dm-crypt/cryptsetup gelesen, insbesondere darüber, wie man einen verschlüsselten Dateicontainer erstellt.

Der erste Schritt besteht darin, die Datei mit zu erstellen dd.

Dann ordnen einige Tutorials die Datei /dev/loop0dem Loop-Gerät zu und formatieren es, andere Tutorials formatieren die Datei direkt, ohne sie einem Loop-Gerät zuzuordnen.

Meine Frage: Ist der Loop-Device-Schritt notwendig? Was ist der Unterschied?

Antwort1

Sie können ddoder fallocate(oder headoder einige andere Tools) verwenden, um eine Datei zu erstellen, die als Container fungiert. Dann cryptsetupkann Vincent Yu, wie bereits erwähnt, den Loop-Aufbau/-Abbau für Sie übernehmen.

fallocate -l 100M mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup -y luksFormat mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup luksOpen mypath/filecontainer filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo mkfs -t ext4 /dev/mapper/filecontainer
sync
sudo cryptsetup luksClose filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script

Beachten Sie in der Debug- sudo losetupAusgabe AUTOCLEAR = 1den filecontainerEintrag. Siekönntestattdessen verrückt werden mit loopdev=$(sudo losetup -f); mount -o loop <etc>, aber damit cryptsetupumgehen zu lassen istWEGschöner.

Entscheidend ist, dass Sie ZUERST sicherstellen, dass es standardmäßig cryptsetup luksOpen containerfile mappednamegemountet wird (Sie können einen vollständigen Pfad angeben, der mit beginnt , und es wird meines Wissens stattdessen dort gemountet). DANN formatieren Sie das Ziel und stellen Sie sicher, dass Sie es NICHT direkt berühren , da Sie sonst die Verschlüsselungs-Engine umgehen und nur eine unverschlüsselte Loopback-Datei erstellen./dev/mapper/mappedname//dev/mapper/mappednamefilecontainer

Antwort2

Wenn Sie das Loop-Gerät nicht selbst verwalten, cryptsetupwird automatisch ein Loop-Gerät eingerichtet und geschlossen, wenn es nicht mehr benötigt wird. Es gibt also keinen Unterschied zwischen den beiden; cryptsetupfunktioniert immer auf dem Loop-Gerät. Siehe man cryptsetup:

HINWEISE ZUR VERWENDUNG VON LOOPBACK-GERÄTEN

Cryptsetup wird normalerweise direkt auf einem Blockgerät (Festplattenpartition oder LVM-Volume) verwendet. Wenn das Geräteargument jedoch eine Datei ist, versucht Cryptsetup, ein Loopback-Gerät zuzuweisen und es dieser Datei zuzuordnen. Dieser Modus erfordert Linux-Kernel 2.6.25 oder neuer, der das Loop-Autoclear-Flag unterstützt (Loop-Gerät wird beim letzten Schließen automatisch gelöscht). Natürlich können Sie eine Datei immer manuell einem Loop-Gerät zuordnen. Ein Beispiel finden Sie in den Cryptsetup-FAQs.

Wenn die Gerätezuordnung aktiv ist, können Sie die Loop-Backing-Datei in der Ausgabe des Statusbefehls sehen. Siehe auch losetup(8).

verwandte Informationen