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/loop0
dem 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 dd
oder fallocate
(oder head
oder einige andere Tools) verwenden, um eine Datei zu erstellen, die als Container fungiert. Dann cryptsetup
kann 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 losetup
Ausgabe AUTOCLEAR = 1
den filecontainer
Eintrag. Siekönntestattdessen verrückt werden mit loopdev=$(sudo losetup -f); mount -o loop <etc>
, aber damit cryptsetup
umgehen zu lassen istWEGschöner.
Entscheidend ist, dass Sie ZUERST sicherstellen, dass es standardmäßig cryptsetup luksOpen containerfile mappedname
gemountet 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/mappedname
filecontainer
Antwort2
Wenn Sie das Loop-Gerät nicht selbst verwalten, cryptsetup
wird automatisch ein Loop-Gerät eingerichtet und geschlossen, wenn es nicht mehr benötigt wird. Es gibt also keinen Unterschied zwischen den beiden; cryptsetup
funktioniert 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).