LUKS 和循环装置

gai*_*pac 5 encryption luks cryptsetup

我阅读了很多关于 LUKS/dm-crypt/cryptsetup 的教程,特别是关于如何创建加密文件容器的教程。

第一步是使用dd.

然后一些教程将文件映射到/dev/loop0循环设备并对其进行格式化,其他教程直接格式化文件而不将其映射到循环设备中。

我的问题:是否需要循环设备步骤?有什么不同?

dra*_*788 5

您可以使用ddfallocate(或head或其他一些工具)创建一个文件来充当您的容器。然后正如 Vincent Yu 所说,cryptsetup可以为您处理循环设置/拆卸。

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
Run Code Online (Sandbox Code Playgroud)

在调试sudo losetup输出中,记AUTOCLEAR = 1filecontainer条目的 。你可以代替去疯狂的loopdev=$(sudo losetup -f); mount -o loop <etc>,但让cryptsetup拉手是WAY更好。

关键是你要确保你首先使用cryptsetup luksOpen containerfile mappedname/dev/mapper/mappedname默认安装(你可以给它一个完整的路径,/我相信它会安装在那里,然后格式化/dev/mapper/mappedname目标并确保你没有接触filecontainer直接,否则您将绕过加密引擎而只是创建一个未加密的环回文件。


Vin*_* Yu 3

如果您自己不管理循环设备,cryptsetup则会自动设置循环设备并在不再需要时将其关闭。所以两者没有区别;cryptsetup始终在循环设备上工作。看man cryptsetup

环回设备使用注意事项

Cryptsetup 通常直接在块设备(磁盘分区或 LVM 卷)上使用。但是,如果设备参数是一个文件,cryptsetup 会尝试分配一个环回设备并将其映射到该文件中。此模式需要 Linux 内核 2.6.25 或更高版本,支持循环自动清除标志(循环设备在上次关闭时自动清除)。当然,您始终可以手动将文件映射到循环设备。有关示例,请参阅 cryptsetup 常见问题解答。

当设备映射处于活动状态时,您可以在状态命令输出中看到循环支持文件。另请参阅 losetup(8)。