使用此 Linux 加密系统保护外部存储
使用 Linux 统一密钥设置来加密您的拇指驱动器、外部硬盘驱动器和其他存储设备,防止他人窥探。
许多人认为硬盘驱动器是安全的,因为他们实际上拥有它们。读取没有的硬盘驱动器上的数据很困难,许多人认为使用密码保护他们的计算机会使驱动器上的数据无法读取。
情况并非总是如此,部分原因是,在某些情况下,密码短语仅用于解锁用户会话。换句话说,您可以打开计算机电源,但由于没有密码,您无法进入桌面,因此您无法打开文件来查看它们。
正如许多计算机技术人员所理解的那样,问题在于硬盘驱动器可以从计算机中取出,并且某些驱动器在设计上已经是外部驱动器(例如 USB 拇指驱动器),因此它们可以连接到任何计算机以完全访问关于他们的数据。您也不必将驱动器与其计算机主机物理分离才能使此技巧发挥作用。计算机可以从便携式启动驱动器启动,该驱动器将驱动器与其主机操作系统分开,并将其实际上变成可供读取的外部驱动器。
答案是将驱动器上的数据放入数字保管库中,如果没有只有您有权访问的信息,则无法打开该保管库。
Linux 统一密钥设置 (LUKS) 是一个磁盘加密系统。它在磁盘上的专用区域中提供通用密钥存储(以及相关的元数据和恢复辅助工具),并且能够使用多个密码(或密钥文件)来解锁存储的密钥。它的设计非常灵活,甚至可以在外部存储元数据,以便与其他工具集成。结果是全驱动器加密,因此您可以放心地存储所有数据,确保其安全 - 即使您的驱动器与计算机物理或通过软件分离。
安装过程中加密
实施全驱动器加密的最简单方法是在安装过程中选择该选项。大多数现代 Linux 发行版都提供此选项,因此这通常是一个简单的过程。
(塞思·肯伦,CC BY-SA 4.0)
这将建立您需要的一切:一个加密驱动器,在系统启动之前需要输入密码。如果驱动器是从您的计算机中提取的或从计算机上运行的另一个操作系统访问的,则驱动器必须先由 LUKS 解密,然后才能安装。
加密外部驱动器
将内部硬盘驱动器与计算机分开的情况并不常见,但外部驱动器设计用于移动。随着技术变得越来越小,将便携式驱动器放在钥匙链上并每天随身携带变得越来越容易。然而,明显的危险是这些也很容易放错地方。我在酒店大堂电脑、商务中心打印机、教室甚至自助洗衣店的 USB 端口中发现了废弃的驱动器。其中大多数不包含个人信息,但这是一个很容易犯的错误。
您可以通过加密外部驱动器来防止重要数据丢失。
LUKS 及其前端 cryptsetup 提供了一种在 Linux 上执行此操作的方法。正如 Linux 在安装过程中所做的那样,您可以加密整个驱动器,以便需要密码才能安装它。
如何使用 LUKS 加密外部驱动器
首先,您需要一个空的外部驱动器(或包含您愿意擦除的内容的驱动器)。此过程会覆盖驱动器上的所有数据,因此,如果您想在驱动器上保留数据,请先将其备份。
1.找到你的驱动器
我使用了一个小型 USB 拇指驱动器。为了防止您意外删除数据,本文中引用的驱动器位于假想位置 /dev/sdX
。连接您的驱动器并找到其位置:
$ lsblk
sda 8:0 0 111.8G 0 disk
sda1 8:1 0 111.8G 0 part /
sdb 8:112 1 57.6G 0 disk
sdb1 8:113 1 57.6G 0 part /mydrive
sdX 8:128 1 1.8G 0 disk
sdX1 8:129 1 1.8G 0 part
我知道我的演示驱动器位于 /dev/sdX
因为我认识到它的大小 (1.8GB),而且它也是我连接的最后一个驱动器(sda
是第一个,sdb
第二个,sdc
第三个,依此类推)。 /dev/sdX1
指示符表示驱动器有 1 个分区。
如果您不确定,请删除驱动器,查看 lsblk
的输出,然后连接驱动器并再次查看 lsblk
。
确保您识别了正确的驱动器,因为对其进行加密会覆盖其上的所有内容。我的驱动器不是空的,但它包含我在其他地方有副本的文档副本,因此丢失这些数据对我来说并不重要。
2. 清除驱动器
要继续,请通过用零覆盖驱动器的磁头来破坏驱动器的分区表:
$ sudo dd if=/dev/zero of=/dev/sdX count=4096
这一步并不是绝对必要的,但我喜欢从头开始。
3. 将驱动器格式化为 LUKS
cryptsetup
命令是用于管理 LUKS 卷的前端。 luksFormat
子命令创建一种受密码保护的 LUKS 保管库,可以容纳安全的文件系统。
创建 LUKS 分区时,系统会警告您有关覆盖数据的信息,然后提示您为驱动器创建密码:
$ sudo cryptsetup luksFormat /dev/sdX
WARNING!
========
This will overwrite data on /dev/sdX irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
4.打开LUKS卷
现在您的驱动器上有一个完全加密的保管库。任何窥探者(包括您现在自己的窥视者)都不会进入这个 LUKS 分区。因此,要使用它,您必须使用密码打开它。使用 cryptsetup open 以及设备位置(在我的示例中为 /dev/sdX)以及打开的保管库的任意名称打开 LUKS 保管库:
$ cryptsetup open /dev/sdX vaultdrive
我在此示例中使用 vaultdrive
,但您可以将保管库命名为任何您想要的名称,并且每次打开它时都可以为其指定不同的名称。
LUKS 卷在名为 /dev/mapper
的特殊设备位置中打开。您可以在那里列出文件以检查您的保管库是否已添加:
$ ls /dev/mapper
control vaultdrive
您可以随时使用 close
子命令关闭 LUKS 卷:
$ cryptsetup close vaultdrive
这将从 /dev/mapper
中删除该卷。
5. 创建文件系统
现在您已解密并打开 LUKS 卷,您必须在其中创建一个文件系统来存储数据。在我的示例中,我使用 XFS,但您可以使用 ext4 或 JFS 或任何您想要的文件系统:
$ sudo mkfs.xfs -f -L myvault /dev/mapper/vaultdrive
挂载和卸载 LUKS 卷
您可以使用 mount
命令从终端挂载 LUKS 卷。假设您有一个名为 /mnt/hd
的目录,并且想要将 LUKS 卷挂载到此处:
$ sudo cryptsetup open /dev/sdX vaultdrive
$ sudo mount /dev/mapper/vaultdrive /mnt/hd
LUKS 还集成到流行的 Linux 桌面中。例如,当我将加密驱动器连接到运行 KDE 的工作站或运行 GNOME 的笔记本电脑时,我的文件管理器会在安装驱动器之前提示我输入密码。
(塞思·肯伦,CC BY-SA 4.0)
加密就是保护
Linux 让加密变得前所未有的简单。事实上,这非常简单,几乎难以察觉。下次为 Linux 格式化外部驱动器时,请考虑首先使用 LUKS。它与您的 Linux 桌面无缝集成,并保护您的重要数据免遭意外泄露。