如何检查 Linux 系统中是否启用了磁盘加密

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何检查 Linux 系统上是否启用了磁盘加密。了解磁盘的加密状态是系统管理和安全方面的一项基本技能。

我们将探索三种关键方法来实现这一目标:使用 lsblk -f 命令识别加密设备,检查 /etc/crypttab 文件以验证已配置的加密卷,以及使用 cryptsetup status 命令获取活动加密设备的详细信息。在本实验结束时,你将能够自信地确定 Linux 机器上磁盘的加密状态。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/ls -.-> lab-558786{{"如何检查 Linux 系统中是否启用了磁盘加密"}} linux/cat -.-> lab-558786{{"如何检查 Linux 系统中是否启用了磁盘加密"}} end

使用 lsblk -f 检查加密设备

在这一步中,我们将开始探索 Linux 系统上的加密设备。了解如何识别加密分区对于系统管理和安全至关重要。

我们将使用带有 -f 选项的 lsblk 命令。lsblk 命令用于列出块设备(如硬盘和分区)。-f 选项会添加有关文件系统的信息,对我们来说重要的是,还会显示加密信息。

如果终端尚未打开,请打开它。你可以在桌面左侧找到 Xfce 终端 图标。

输入以下命令并按回车键:

lsblk -f

你将看到类似以下的输出:

NAME    FSTYPE      FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
loop0   squashfs    4.0                                                     0   100% /snap/bare/5
loop1   squashfs    4.0                                                     0   100% /snap/core20/2182
loop2   squashfs    4.0                                                     0   100% /snap/core22/1122
loop3   squashfs    4.0                                                     0   100% /snap/firefox/437
loop4   squashfs    4.0                                                     0   100% /snap/gnome-3-38-2004/140
loop5   squashfs    4.0                                                     0   100% /snap/gtk-common-themes/1535
loop6   squashfs    4.0                                                     0   100% /snap/htop/3620
loop7   squashfs    4.0                                                     0   100% /snap/snapd/20671
loop8   squashfs    4.0                                                     0   100% /snap/snapd-desktop-integration/83
sda
├─sda1  vfat        FAT32       <UUID>                                505.4M     0% /boot/efi
├─sda2  ext4        1.0         <UUID>                                  1.4G    68% /boot
└─sda3  crypto_LUKS 2           <UUID>
  └─sda3_crypt
    ext4        1.0         <UUID>                                 16.4G    11% /

查看 FSTYPE 列。如果你看到某个分区(如上面示例中的 sda3)列出了 crypto_LUKS,则表明该分区使用 LUKS(Linux 统一密钥设置)进行了加密。

crypto_LUKS 条目下方的行(例如 └─sda3_crypt)显示了解密后的设备名称,该名称是在分区解锁时创建的。然后,这个解密后的设备通常会使用标准文件系统(如 ext4)进行格式化并挂载(例如挂载在 / 上)。

识别带有 crypto_LUKS 的分区是了解 Linux 系统加密设置的第一步。

点击 继续 进入下一步。

使用 cat /etc/crypttab 验证加密表

在这一步中,我们将检查 /etc/crypttab 文件。系统使用该文件来配置在系统启动时设置的加密块设备。它包含有关加密分区的信息以及如何解锁它们。

我们将使用 cat 命令来显示 /etc/crypttab 文件的内容。cat 命令是一个简单的实用工具,用于连接并显示文件内容。

在终端中输入以下命令并按回车键:

cat /etc/crypttab

你将看到类似以下的输出:

sda3_crypt UUID=<UUID> none luks,discard

让我们来分析 /etc/crypttab 中一行内容的典型格式:

  1. 目标名称:这是将创建的解密设备的名称(例如 sda3_crypt)。它应与你在上一步 lsblk -f 输出中 crypto_LUKS 条目下看到的名称相匹配。
  2. 源设备:这指定了加密分区。为了保证可靠性,通常通过其 UUID(UUID=<UUID>)来识别,但也可以是设备路径,如 /dev/sda3
  3. 密钥文件或密码:这表明应如何解锁设备。none 表示系统将在启动时提示输入密码。其他选项包括指定密钥文件的路径。
  4. 选项:该字段包含以逗号分隔的选项,例如 luks(指定它是一个 LUKS 设备)和 discard(为 SSD 启用 TRIM 支持)。

检查 /etc/crypttab 有助于确认哪些分区在启动时配置了加密,以及它们打算如何解锁。

点击 继续 进入下一步。

使用 cryptsetup status 检查加密情况

在这最后一步中,我们将使用 cryptsetup 命令来获取有关活动加密设备的详细状态信息。cryptsetup 实用工具是一个命令行工具,用于使用 LUKS 设置和管理加密磁盘设备。

我们将使用 status 选项,后面跟上解密设备的名称。从第一步的 lsblk -f 输出中,我们确定解密设备的名称为 sda3_crypt

在终端中输入以下命令并按回车键:

sudo cryptsetup status sda3_crypt

你将看到有关加密设备的详细输出,类似于以下内容:

/dev/mapper/sda3_crypt is active.
  type:    LUKS2
  cipher:  aes-xts-plain64
  keysize: 512 bits
  key location: keyring
  device:  /dev/sda3
  sector size: 512
  offset:  16384 sectors
  size:    <size in sectors> sectors
  mode:    read/write
  flags:   discards

让我们来看看输出中的一些关键信息:

  • type: LUKS2:确认加密类型为 LUKS 版本 2。
  • cipher: aes-xts-plain64:显示所使用的加密算法和模式(XTS 模式下的 AES)。
  • keysize: 512 bits:表示加密密钥的大小。
  • device: /dev/sda3:指定底层的加密分区。
  • flags: discards:确认 discards 选项(TRIM 支持)已启用,这与我们在 /etc/crypttab 中看到的一致。

cryptsetup status 命令提供了活动 LUKS 设备加密参数的全面视图,这对于验证加密设置非常有用。

你现在已经成功使用 lsblkcatcryptsetup 来识别和检查 Linux 系统上的加密分区。

点击 继续 完成实验。

总结

在本次实验中,我们学习了如何检查 Linux 系统中是否启用了磁盘加密。首先,我们使用 lsblk -f 命令列出块设备,并识别具有 crypto_LUKS 文件系统类型(FSTYPE)的分区,这表明使用了 LUKS 加密。该命令能快速概览系统的块设备及其加密状态。

接下来,我们通常会验证 /etc/crypttab 文件,以查看哪些设备在启动时配置了加密,并使用 cryptsetup status 检查特定设备的加密详细信息。结合 lsblk -f,这些步骤提供了一种全面的方法来确定 Linux 系统上是否实现了磁盘加密以及如何实现的。