Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.9. 加密

4.9.1. 使用 LUKS 磁盘加密

Linux 统一密钥设置磁盘格式(或 LUKS)允许您加密 Linux 计算机上的分区。当涉及到移动计算机和可移动介质时,这一点尤为重要。LUKS 允许多个用户密钥解密主密钥,用于批量加密分区。

LUKS 概述

LUKS 做什么
  • LUKS 对整个块设备进行加密,因此非常适合保护移动设备的内容,如可移动存储介质或笔记本电脑磁盘驱动器。
  • 加密块设备的底层内容是任意的。这使得其在加密交换设备时很有用。对于将特殊格式化块设备用于数据存储的某些数据库,这也很有用。
  • LUKS 使用现有的设备映射器内核子系统。
  • LUKS 增强了密码短语,可防止字典攻击。
  • LUKS 设备包含多个密钥插槽,允许用户添加备份密钥或密码短语。
LUKS 不做什么
  • 对于需要很多(超过 8 个)用户拥有同一设备的不同访问密钥的情况,LUKS 并不十分适合。
  • LUKS 不适用于需要文件级加密的应用程序。
重要
LUKS 等磁盘加密解决方案仅在您的系统关闭时保护数据。当系统处于 on 状态并且 LUKS 解密了磁盘后,该磁盘上的文件将可供通常具有访问权限的任何人使用。

4.9.1.1. Red Hat Enterprise Linux 中的 LUKS 实施

红帽企业 Linux 7 使用 LUKS 执行文件系统加密。默认情况下,在安装过程中取消选中加密文件系统的选项。如果您选择加密硬盘驱动器的选项,系统将提示您输入密码短语,每次引导计算机时都会询问该密码。此密语"解锁"用于解密分区的批量加密密钥。如果您选择修改默认分区表,您可以选择加密哪个分区。这是在分区表设置中设定的。
LUKS 使用的默认密码(请参阅 cryptsetup --help)是 aes-cbc-essiv:sha256(ESSIV - 加密的 Salt-Sector 初始化 Vector)。请注意,安装程序 Anaconda 默认使用 XTS 模式(aes-xts-plain64)。LUKS 的默认密钥大小为 256 位。Anaconda (XTS 模式)的 LUKS 的默认密钥大小为 512 位。可用的加密系统包括:

4.9.1.2. 手动加密目录

警告
这个过程将删除您要加密的分区中的所有数据。您丢失了所有信息!在开始此过程前,请确保将数据备份到外部源!
  1. 通过以 root 用户身份在 shell 提示符后输入以下内容来输入运行级别 1:
    telinit 1
  2. 卸载现有的 /home
    umount /home
  3. 如果上一步中的命令失败,使用 fuser 查找正在切换 /home 的进程并终止它们:
    fuser -mvk /home
  4. 验证 /home 不再挂载:
    grep home /proc/mounts
  5. 使用随机数据填充分区:
    shred -v --iterations=1 /dev/VG00/LV_home
    此命令会按照设备的顺序写入速度进行,可能需要一些时间才能完成。确保未加密的数据不会保留在已使用设备中,并且模糊处理包含加密数据的设备部分,而非只是随机数据,这是一个重要的步骤。
  6. 初始化分区:
    cryptsetup --verbose --verify-passphrase luksFormat /dev/VG00/LV_home
  7. 打开新加密的设备:
    cryptsetup luksOpen /dev/VG00/LV_home home
  8. 确保设备存在:
    ls -l /dev/mapper | grep home
  9. 创建文件系统:
    mkfs.ext3 /dev/mapper/home
  10. 挂载文件系统:
    mount /dev/mapper/home /home
  11. 确保文件系统可见:
    df -h | grep home
  12. /etc/crypttab 文件中添加以下内容:
    home /dev/VG00/LV_home none
  13. 编辑 /etc/fstab 文件,删除 /home 的旧条目并添加以下行:
    /dev/mapper/home /home ext3 defaults 1 2
  14. 恢复默认 SELinux 安全上下文:
    /sbin/restorecon -v -R /home
  15. 重启机器:
    shutdown -r now
  16. /etc/crypttab 中的条目使计算机在引导时询问您的 luks 密码短语。
  17. 以 root 用户身份登录,再恢复您的备份。
您现在有一个加密分区,可在计算机关闭时安全地保留您的所有数据。

4.9.1.3. 添加新密码到现有设备

使用以下命令在现有设备中添加新的密码短语:
cryptsetup luksAddKey device
在提示输入任何一种现有的 passprases 进行身份验证后,系统将提示您输入新的密码短语。

4.9.1.4. 从现有设备中删除密码

使用以下命令从现有设备中删除密码短语:
cryptsetup luksRemoveKey device
系统将提示您输入要删除的密码短语,然后提示您输入剩余的任何密码短语进行身份验证。

4.9.1.5. 在 Anaconda 中创建加密的块设备

您可以在系统安装过程中创建加密的设备。这可让您轻松使用加密分区配置系统。
要启用块设备加密,请在创建独立分区、软件 RAID 阵列或逻辑卷时选择自动分区或加密复选框时选中加密 系统复选框。完成分区后,系统将提示您输入加密密码短语。需要此密语才能访问加密的设备。如果您已有 LUKS 设备,并且在安装过程前面为它们提供了正确的密码短语,则密语输入对话框也将包含复选框。选中此复选框表示您希望将新密语添加到每个预先存在的加密块设备中的可用插槽。
注意
在自动分区屏幕上选中 Encrypt System 复选框 ,然后选择"创建自定义布局 "不会导致任何块设备被自动加密。
注意
您可以使用 Kickstart 为每个新的加密块设备设置单独的密码短语。