使用这款 Linux 加密系统保护外部存储

使用 Linux Unified Key Setup 来加密您的 U 盘、外部硬盘驱动器和其他存储设备,防止他人窥探。
65 位读者喜欢这篇文章。
Data Privacy Day 2017: Solutions for everyday privacy

g4ll4is 在 Flickr 上发布。CC BY-SA 2.0

许多人认为硬盘驱动器是安全的,因为他们拥有其物理所有权。读取您不拥有的硬盘驱动器上的数据很困难,而且许多人认为用密码保护他们的计算机就可以使驱动器上的数据无法读取。

情况并非总是如此,部分原因是,在某些情况下,密码仅用于解锁用户会话。换句话说,您可以启动计算机,但是由于您没有密码,因此无法进入桌面,因此您无法打开文件来查看它们。

正如许多计算机技术人员所理解的那样,问题在于硬盘驱动器可以从计算机中取出,并且一些驱动器在设计上已经是外部的(例如,USB 闪存驱动器),因此可以将它们连接到任何计算机,以完全访问其上的数据。您也不必物理地将驱动器与其计算机主机分离即可使此技巧奏效。计算机可以从便携式启动驱动器启动,这会将驱动器与其主机操作系统分离,并将其变成实际上可用于读取的外部驱动器。

答案是将驱动器上的数据放入一个数字保险库中,没有只有您才能访问的信息就无法打开它。

Linux Unified Key Setup (LUKS) 是一种磁盘加密系统。它在磁盘上的专用区域中提供通用密钥存储(以及相关的元数据和恢复辅助工具),并能够使用多个密码(或密钥文件)来解锁存储的密钥。它被设计为灵活的,甚至可以外部存储元数据,以便可以与其他工具集成。结果是全驱动器加密,因此您可以放心地存储所有数据,即使您的驱动器在物理上或通过软件与计算机分离,数据也是安全的。

在安装期间加密

实现全驱动器加密的最简单方法是在安装期间选择该选项。大多数现代 Linux 发行版都提供此选项,因此通常是一个简单的过程。

这建立了您需要的一切:一个加密的驱动器,在您的系统启动之前需要密码。如果驱动器从您的计算机中取出或从您计算机上运行的另一个操作系统访问,则必须先由 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 保险库,可以容纳安全的 файловую систему (filesystem)。

当您创建 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 的笔记本电脑时,我的文件管理器会在挂载驱动器之前提示我输入密码。

加密就是保护

Linux 使加密比以往任何时候都更容易。事实上,它非常容易,几乎难以察觉。下次您为 Linux 格式化外部驱动器时,请考虑首先使用 LUKS。它可以与您的 Linux 桌面无缝集成,并保护您的重要数据免受意外泄露。

Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,通常同时进行。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.