使用 Linux 的 USB 记忆棒加密
如果您丢失了 USB 记忆棒,则存储在其中的所有数据都将丢失。更重要的是,您的 USB 记忆棒最终可能会落入其他人的手中,他们可以访问您的私人文件,并以任何他们喜欢的方式使用该信息。这是 USB 记忆棒用户的众多担忧之一。解决这一困境的最简单的解决方案之一是在 USB 记忆棒上仅保留非私人信息。显然,这将违背存储设备的主要目的。
另一种解决方案是对您的 USB 记忆棒进行加密,这样只有拥有适合解密 USB 记忆棒加密的正确密码的用户才能访问它。本文将讨论第二种解决方案,即 USB 记忆棒设备的加密。尽管加密 USB 记忆棒似乎是最好、最简单的解决方案,但必须说它也有许多缺点。第一个缺点是 USB 密钥的解密必须使用安装了 dm-crypt 模块的 Linux 系统来完成。
换句话说,您无法在任何 Windows 机器和具有较旧内核的类 UNIX 系统上使用加密 USB 记忆棒。因此,仅对仅保存私人信息的 USB 记忆棒的一部分进行加密似乎是一个很好的解决方案。在本文中,我们将逐步介绍在 Linux 上加密 USB 设备的一部分。请继续阅读以了解它是如何完成的。
在本教程中您将学习:
如何在主要 Linux 发行版上安装 cryptsetup
如何对 U 盘进行分区
如何加密 USB 记忆棒分区
如何挂载加密分区
使用 Linux 的 USB 记忆棒加密
安装 cryptsetup
许多 Linux 发行版已经默认安装了 cryptsetup
软件包。如果您没有,您可以使用下面适当的命令通过系统的包管理器安装该软件。
要在 Ubuntu、Debian 和 Linux Mint 上安装 cryptsetup:
$ sudo apt install cryptsetup
要在 CentOS、Fedora、AlmaLinux 和 Red Hat 上安装 cryptsetup:
$ sudo dnf install cryptsetup
要在 Arch Linux 和 Manjaro 上安装 cryptsetup:
$ sudo pacman -S cryptsetup
安装软件后,您将能够按照以下部分与我们一起操作。
对 USB 记忆棒进行分区
警告
在继续之前,请记住,您将丢失闪存驱动器上当前存储的所有数据。如果其中有重要内容,请务必暂时将文件移动到您的计算机上,然后在完成指南后将它们放回到 USB 记忆棒上。
让我们从 U 盘分区开始。将 USB 记忆棒插入 PC 的 USB 插槽并以 root 用户身份执行:
# fdisk -l
搜索
fdisk
命令的输出并检索 USB 记忆棒的磁盘文件名。在我们的例子中,设备是/dev/sdc
。请阅读
在本教程中,我们将/dev/sdc
块设备称为/dev/sdX
避免读者在阅读以下文本时意外损坏数据。因此,任何时候你看到例如。/dev/sdX
或/dev/sdX2
我们实际上指的是实际的块设备/dev/sdc
和分区 / dev/sdc2 分别。一旦我们有了 USB 记忆棒的文件名,我们就可以创建用于加密和存储非私有数据的分区。在此示例中,我们将 USB 记忆棒分为两个分区,第一个分区大小为 2GB,其余空间将用于创建第二个分区,这将生成
/dev/sdX1
和/dev/sdX2
分别。使用您认为适合此目的的任何分区工具;在本文中,我们将使用fdisk
。# fdisk /dev/sdX
在fdisk交互模式下执行以下命令:
Command (m for help): n [Press enter twice] Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-31703005, default 31703005): +2GB Command (m for help): n [Press enter three times] Command (m for help): w
我们现在有两个分区,第一个分区大小为 2GB,将包含我们的加密文件。另一个分区占用 USB 记忆棒的其余部分,并将包含非敏感信息。这两个分区表示为
/dev/sdX1
和/dev/sdX2
,但您的分区可能不同。我们现在将在分区上放置一个文件系统。我们使用 FAT32,但您可以使用任何您想要的。# mkfs.fat /dev/sdX1 # mkfs.fat /dev/sdX2
为了避免基于模式的加密攻击,建议在继续加密之前将一些随机数据写入分区。以下
dd
命令可用于将此类数据写入您的分区。这可能需要一些时间。时间取决于系统生成的熵数据:# dd bs=4K if=/dev/urandom of=/dev/sdX1
在 fdisk 输出中查找设备名称
使用 fdisk 对 U 盘进行分区
加密 USB 记忆棒分区
现在是时候加密新创建的分区了。为此,我们将使用cryptsetup
工具。如果 cryptsetup 命令在您的系统上不可用,请确保已安装 cryptsetup 软件包。
以下 Linux 命令将使用 256 位 AES XTS 算法加密 /dev/sdX1
分区。该算法适用于任何版本高于 2.6.24 的内核。
# cryptsetup -h sha256 -c aes-xts-plain -s 256 luksFormat /dev/sdX1
加密 USB 记忆棒分区
系统将提示您在设备上设置解密密码,该密码将用于解锁设备并查看加密分区上的敏感内容。
挂载USB分区并解密
在下一步中,我们将设置加密分区的名称以供系统的设备映射器识别。您可以选择任何名称。例如我们可以使用名称“private”:
# cryptsetup luksOpen /dev/sdX1 private
执行此命令后,您的加密分区将以
/dev/mapper/private
形式可供系统使用。现在我们可以创建一个挂载点并挂载分区:# mkdir /mnt/private # mount /dev/mapper/private /mnt/private # chown -R myusername.myusername /mnt/private
现在您的加密分区位于
/mnt/private
目录中。如果您不想再访问 USB 记忆棒的加密分区,则需要先将其从系统中卸载,然后使用 cryptsetup 命令关闭连接的保护。# umount /mnt/private # cryptsetup luksClose /dev/mapper/private
加密 USB 分区的桌面安装
您的桌面可能会通过弹出对话框来响应加密分区,提示您输入加密分区的密码。
将 U 盘插入计算机时,系统会提示我们输入密码
但是,某些 Linux 系统可能不提供任何安装加密分区的功能,您必须手动执行此操作(详细信息请参阅“安装 USB 加密分区”一节)。无论如何,请确保您已安装 cryptsetup 软件包,并将 md_crypt 模块加载到正在运行的内核中,以便使用加密的 USB 记忆棒。
结束语
在本指南中,我们了解了如何创建加密分区来保护 USB 记忆棒上的敏感文件。这包括在 USB 设备上创建一个单独的分区,然后使用 cryptsetup 对其进行加密。我们还学习了如何挂载和卸载分区。遵循这些说明将使您在随身携带包含您不希望其他人偶然发现的重要数据的 USB 记忆棒时安心无忧。