最近,我演示了如何使用 LUKS 和 cryptsetup
命令在 Linux 上实现全盘加密。虽然在许多情况下加密整个驱动器很有用,但您可能出于某些原因不想加密整个驱动器。例如,您可能需要驱动器跨多个平台工作,其中某些平台可能没有 Linux 统一密钥设置 (LUKS) 集成。此外,现在是 21 世纪,云已经存在,您可能并非将物理驱动器用于所有数据。
几年前,有一个名为 TrueCrypt 的系统,允许用户创建加密文件“保险库”,这些保险库可以通过 TrueCrypt 解密以提供读/写访问权限。这是一种有用的技术,本质上提供了一个虚拟的便携式且完全加密的驱动器,您可以在其中存储重要数据。TrueCrypt 已关闭,但它作为一个有趣的模型。
幸运的是,LUKS 是一个灵活的系统,您可以使用它和 cryptsetup
创建一个加密保险库作为独立的自包含文件,您可以将其保存在物理驱动器或云存储中。
以下是如何操作。
1. 创建一个空文件
首先,您必须创建一个预定大小的空文件。这充当一种保险库或保险箱,您可以在其中存储其他文件。您用于此操作的命令是 fallocate
,来自 util-linux
包
$ dd if=/dev/urandom of=vaultfile.img bs=1M count=512
此示例创建一个 512MB 的文件,但您可以根据需要调整大小。
(使用 /dev/urandom
作为填充数据源可确保 hexdump 无法区分实际数据和空白空间。)
2. 创建 LUKS 卷
接下来,在空文件中创建一个 LUKS 卷
$ cryptsetup --verify-passphrase \
luksFormat vaultfile.img
3. 打开 LUKS 卷
为了创建可用于文件存储的文件系统,您必须先打开 LUKS 卷并将其挂载到您的计算机上
$ sudo cryptsetup open \
--type luks vaultfile.img myvault
$ ls /dev/mapper
myvault
4. 创建文件系统
在您的打开的保险库中创建一个文件系统
$ sudo mkfs.ext4 -L myvault /dev/mapper/myvault
如果您现在不需要它,您可以关闭它
$ sudo cryptsetup close myvault
5. 开始使用您的加密保险库
现在一切都已设置好,您可以随时使用您的加密文件保险库来存储或访问私有数据。要访问您的保险库,您必须将其挂载为可用的文件系统
$ sudo cryptsetup open \
--type luks vaultfile.img myvault
$ ls /dev/mapper
myvault
$ sudo mkdir /myvault
$ sudo mount /dev/mapper/myvault /myvault
此示例使用 cryptsetup
打开保险库,然后将保险库从 /dev/mapper
挂载到名为 /myvault
的新目录。与 Linux 上的任何卷一样,您可以将 LUKS 卷挂载到任何您想要的位置,因此您可以使用 /mnt
或 ~/myvault
或任何您喜欢的目录,而不是 /myvault
。
挂载后,您的 LUKS 卷将被解密。您可以像对待物理驱动器一样读取和写入文件。
当您完成使用加密保险库后,卸载并关闭它
$ sudo umount /myvault
$ sudo cryptsetup close myvault
加密文件保险库
您使用 LUKS 加密的映像文件与其他任何文件一样具有可移植性,因此您可以将您的保险库存储在硬盘驱动器、外部驱动器甚至互联网上。只要您有 LUKS 可用,您就可以解密、挂载并使用它来确保您的数据安全。这是一种简单的加密方法,可以提高数据安全性,请尝试一下。
评论已关闭。