什么是 LUKS,它如何保护您的 Linux 文件系统?什么是 LUKS,它如何保护您的 Linux 文件系统?什么是 LUKS,它如何保护您的 Linux 文件系统?什么是 LUKS,它如何保护您的 Linux 文件系统?
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

什么是 LUKS,它如何保护您的 Linux 文件系统?

发表 admin at 2025年2月28日
类别
  • 未分类
标签

要点

  • Linux 统一密钥设置 (LUKS) 是 Linux 的磁盘加密规范。
  • LUKS 使用主密钥来加密数据,并使用密码解锁密钥。
  • LUKS 保护块设备(包括笔记本电脑和外部驱动器)上的用户数据免遭盗窃。

遇到过“LUKS”这个术语,但不知道它的作用或者它与 Linux 有何关系?如果您关心保护自己的数据,那么设置 LUKS 对您来说至关重要。在本指南中,我将解释 LUKS 的工作原理以及它如何帮助您保护重要数据。

Linux 上的 LUKS 是什么?

Linux统一密钥设置(简称LUKS)是Linux系统中广泛使用的磁盘加密规范。它由 Clemens Fruhwirth 于 2004 年创建,旨在提供既安全又用户友好的标准化加密机制。它通过对物理和逻辑磁盘分区内的数据进行加密来保护数据,以便只有授权用户才能访问该加密分区的内容。您可以将其视为类似于 Windows BitLocker。

LUKS 在块级别上运行。它加密整个分区或磁盘而不是单个文件。它使用强大的加密算法,如 AES(高级加密标准)。它使用分区标头来存储必要的设置信息,例如加密算法和密钥大小。这个标头是 LUKS 与 dm-crypt 的区别所在。如果标头损坏,您将无法解密设备。

LUKS 的工作原理

LUKS 加密在磁盘分区上创建一个名为 LUKS 卷的加密容器。它使用 AES 等对称算法来加密只能使用密码访问的卷。当您解锁 LUKS 卷时,它就可以像常规块设备一样进行访问。所以你可以读取它并写入它。

LUKS 将其加密元数据存储在加密分区开头的一个特殊部分(称为 LUKS 标头)中。该标头包含一些关键信息,例如密码和模式、哈希函数和密钥槽。分区的实际加密是使用主密钥完成的。该主密钥是在 LUKS 设置初始化时随机生成的。该主密钥直接加密和解密分区上的数据。密码不会加密数据。相反,它对存储在密钥槽中的主密钥进行加密。

如果您想访问加密数据,LUKS 要求您输入密码。然后使用该密码来解密存储在密钥槽之一中的主密钥。主密钥被解密后,该密钥又用于解密分区上的数据。

为什么你应该使用 LUKS

使用 LUKS 的主要原因是保护用户数据。 LUKS 可以加密整个块设备,使其适合保护笔记本电脑磁盘驱动器和可移动介质等移动设备中的数据。由于加密块设备的内容是任意的,因此它也有利于加密交换设备。

LUKS 通常用于全盘加密。您可以在安装时对Linux系统的根分区进行加密,这样未经授权的人就无法访问系统文件。您还可以对Linux系统中的启动分区进行加密,以防止Linux内核被篡改。如果您使用 systemd,那么您还可以加密各个主目录。

LUKS 支持多个密钥槽,使您有机会为同一加密分区分配不同的密码。因此,如果您有多用户设置,每个用户都可以拥有单独的解密密钥,而无需共享通用密码。此外,如果忘记一个密码,可以使用其他密码来访问数据。

它可以保护您的设备免遭物理盗窃。即使您的笔记本电脑、外部硬盘驱动器或其他存储设备被盗,如果没有正确的解密密钥,内部数据仍然无法访问。

它有一些陷阱

使用全盘加密的最大缺点之一在于性能问题。动态解密数据需要处理能力,从而导致读写速度变慢。如果您拥有现代硬件,有时差异可能可以忽略不计,但这并非完全不可能。您还会遇到启动时间增加的情况,因为系统需要在完全加载操作系统之前解密整个驱动器。您可以在这个 Reddit 线程和这个基准测试中阅读更多相关内容。

另一个重要注意事项是 LUKS 磁盘加密只会在系统关闭时保护您的数据。如果您的笔记本电脑在开机时被盗并且驱动器已解密,则窃贼可能无需绕过加密即可访问您的数据。解密后,任何人都可以访问该驱动器上的文件。

在预装的 Linux 系统上设置 LUKS 加密并不是一个简单的过程。它需要完整备份,以便您可以在丢失重要数据时恢复它。说到备份,加密备份需要小心处理。如果您丢失了解密密钥,您可能永远无法恢复您的数据。

如何设置 LUKS 加密

设置 LUKS 全盘加密的最简单方法是在首次安装 Linux 时。让我向您展示如何在 Ubuntu 24.04 上进行操作。

无论您愿意新安装 Linux 还是想要加密预装系统(稍后介绍),您都应该仔细备份 Linux 设备上的重要文件 。

在安装过程中,您应该会看到磁盘设置提示。按“高级功能”。

从列表中选择“使用 LVM 和加密”。按“确定”。

按“下一步”按钮继续。在下一个屏幕上,系统会要求您创建一个密码。在两个字段中输入安全密码,然后按“下一步”。

然后继续安装的其余部分。

如果您不想重新安装 Linux,可以使用名为 cryptsetup 的实用程序来设置加密文件系统。您可能需要 root 权限才能运行某些命令。首先,您需要安装它。在 Debian/Ubuntu 上,运行:

sudo apt install cryptsetup

使用以下命令列出可用分区:

sudo fdisk -l

黑子

从列表中找出您要加密的分区。



接下来,使用 cryptsetup 实用程序按以下方式加密您选择的分区:

cryptsetup -y -v luksFormat /path/to/partition

cryptsetup -y -v luksFormat /dev/xvdc # 例如

系统会要求您确认是否要覆盖分区,然后输入密码。您必须保存并记住密码,因为它是不可恢复的。

上述命令将擦除分区上的所有数据。确保备份所有重要数据。

之后,通过运行以下命令创建逻辑映射:

cryptsetup luksOpen /path/to/partition partition_name

cryptsetup luksOpen /dev/xvdc backup_partition # 例如

出现提示时输入密码。这将初始化卷。要查看映射详细信息,请运行:

ls -l /dev/mapper/backup_partition

要查看映射状态,请使用:

cryptsetup -v status backup_partition

然后,使用 cryptsetup 查看设备是否已正确格式化以进行加密。

cryptsetup luksDump /path/to/partition

cryptsetup luksDump /dev/xvdc # 例如

使用dd命令将带零的块数据分配给LUKS加密分区:

dd if=/dev/zero of=/dev/mapper/backup_partition

完成后,使用以下命令格式化新分区:

mkfs.ext4 /dev/mapper/backup_partition

我这里使用的是 ext4 文件系统。您可以使用您喜欢的一种。最后,挂载新的文件系统。

mkdir /backup2
mount /dev/mapper/backup_partition /backup_partition
df -H
cd /backup_partition
ls -l

如果您想更改加密分区的密码,请运行以下命令:

cryptsetup luksDump /dev/xvdc # Using /dev/xvdc as an example

cryptsetup luksAddKey /dev/xvdc # 以/dev/xvdc为例

系统会提示您输入新密码,然后确认。


通过实施 LUKS,您可以确保机密数据的更好安全性。它还适用于多个用户使用的设备。您可以采取许多其他措施来使您的 Linux 设备更加安全。

©2015-2025 Norria support@norria.com