如何在 Linux 环境中加密磁盘

随着数据盗窃威胁的日益增多,确保信息得到妥善保护至关重要。尽管 Linux 被认为是最安全的系统之一,但它也存在一些弱点,可能会给黑客打开方便之门。

为了保护您指定用于存储数据库的磁盘上的数据,您需要加密该磁盘。加密是将纯文本转换为密文的过程。您可以使用特殊算法加密单个磁盘、多个分区或整个硬盘。加密后,只有使用特殊密码才能访问磁盘。

硬盘加密的主要目的是在设备被盗或丢失的情况下保护您的信息安全。但是,如果您将应用程序托管在自己的服务器上,加密将帮助您对数据安全更有信心。

在 Linux 环境中,Linux 统一密钥设置 (LUKS) 用于加密整个块设备、硬盘、SSD 甚至可移动存储驱动器。 完整的硬盘加密仅在安装 Linux 操作系统期间才可用。在这种情况下,它将同时加密交换空间和系统分区。借助命令行进行安装后加密, 将帮助您分别加密主目录和交换空间。

为什么需要加密交换空间?

为了保护敏感信息(例如密码),必须对交换空间进行加密。交换空间是硬盘上用于虚拟内存的空间。当 Linux 系统内存不足时,非活动页面会被推送到交换空间。移动到交换空间的信息可能包含用户名和密码等敏感信息,因此也需要对交换空间进行加密。

Ubuntu 22.10 安装期间的全硬盘加密

加密硬盘最简单的方法是在安装 Linux 时进行加密。这将确保一切正常运行,并且所有分区都正确加密。

要实现硬盘的全加密,您需要在 Ubuntu 系统安装期间启动加密过程:

  1. 完成内存选择、键盘布局、磁盘空间等初步安装步骤后,您需要注意“安装类型”步骤。选择 “擦除磁盘并安装 Ubuntu”
  2. 点击“高级功能”按钮
  3. 选择“在新安装的 Ubuntu 中使用 LVM”选项
  4. 勾选“为安全起见,加密新安装的 Ubuntu”复选框
  5. Ubuntu 安装类型设置屏幕截图
  6. 在下一步中,输入安全密钥并确认
  7. (可选)您可以启用恢复密钥并将其保存到其他安全位置。
  8. 安全密钥选择设置屏幕截图
  9. 点击“立即安装”后,磁盘将在安装过程中加密。
  10. 要完成安装,请重启系统。启动后,系统将提示您提供解密密钥,即您在本指南第 5 步中指定的密钥。
  11. 输入密钥并按Enter键。此后,您的光盘将被解锁。

Ubuntu 22.10 安装后加密

推荐的全盘空间加密方法是在安装过程中使用 LUKS 加密。但是,如果您已经安装了操作系统,则可以在不重新安装操作系统的情况下加密主目录和交换空间。

默认情况下,主目录是存储所有文件和文档的目录。交换空间是硬盘上用于虚拟内存的空间。 它可能包含用户名和密码等敏感信息,因此也建议对其进行加密。

Ubuntu 提供了一个命令行工具来加密交换空间和主目录:

主目录加密

  1. 启动终端
  2. 通过运行以下命令安装 Linux 上提供加密功能的软件包:ecrypt-utils 和 cryptsetup:
    $ sudo apt install ecryptfs-utils cryptsetup
  3. 如果您在使用自己的帐户登录时执行加密,主目录中的某些文件可能会变得无法访问。因此,需要创建另一个特权用户来加密主目录。为此,请执行以下命令:
    $ sudo adduser e_user
    其中 e_user 是您的新用户帐户的名称
  4. 为 e_user 分配 root 权限:
    $ sudo usermod -aG sudo e_user
  5. 注销,然后使用您为加密创建的新用户 e_user 登录。 请勿重启!
  6. 要查看您要加密的目录的内容,您可以使用以下命令:
    $ sudo ls -l ~directory_name
    其中 directory_name 应替换为您要加密的目录的名称。
  7. 通过执行以下命令启动加密过程:
    $ sudo ecryptfs-migrate-home -u directory_name
    其中 directory_name 是您的主目录的名称。
  8. 当系统提示您输入密码时,请输入用户帐户的登录密码并按“ENTER”键。
  9. 加密完成后,您需要退出特权用户配置文件并登录您的主配置文件,并检查您是否可以读写文件。
  10. 登录您的常规配置文件并检查您是否可以读写文件后,您需要在出现的弹出窗口中记录加密密码,然后点击“立即运行此操作”按钮进行确认。这将 打开一个终端窗口,您需要在其中输入密码,然后 您的主目录的密码将会出现。
  11. 您也可以通过执行以下命令来显示恢复密码:
    $ sudo ecryptfs-unwrap-passphrase
  12. 保存恢复密码并将其保存在安全的地方。

交换空间加密

  1. 通过执行以下命令检查您是否有交换空间:
    $ swapon -s
  2. 然后执行以下命令加密交换空间:
    $ sudo ecryptfs-setup-swap
  3. 就这样,加密已完成

您将不再需要为主目录加密创建的特权用户。 因此,您可以按照以下命令将其删除:
$ sudo deluser --remove-home e_user

我们提供了两种加密方案的说明 - Linux 安装期间和 安装后加密方案。我们强烈建议使用第一种方案,因为它更简单、更可靠。但如果您需要加密现有的 Linux 安装,则第二种方案将满足您的需求。