在RHEL中实现基于LUKS的全盘加密
您可以在 RHEL 服务器上使用 Linux® 统一密钥设置 (LUKS) 对分区进行加密,这对移动计算机和可移动存储介质至关重要。 使用LUKS,多个用户密钥可以用于解密主密钥,而主密钥用于对分区进行批量加密。 以下说明适用于 RHEL 版本 RHEL 8 或更新版本。
以下步骤假定服务器可以访问尚未格式化或安装的新的未加密 IBM Cloud® Block Storage for Classic 卷。 有关将 Block Storage for Classic 连接到 Linux® 主机的更多信息,请参阅以下主题。
所有新的 Block Storage for Classic 都会自动供应提供者管理的静态加密。 有关更多信息,请参阅确保数据安全 - 提供者管理的静态加密。
LUKS 可执行以下操作
- LUKS对整个块设备进行加密,因此适用于保护移动设备(如可移动存储介质或笔记本电脑硬盘驱动器)中的内容。
- 加密块设备的底层内容是任意的,因此对于加密交换设备非常有用。 该加密对于某些使用特殊格式化的块设备进行数据存储的数据库也很有用。
- LUKS 使用现有的设备映射器内核子系统。
- LUKS提供密码强化功能,可防范字典攻击。
- LUKS 包含多个密钥槽,因此用户可以添加备份密钥或口令。
LUKS 不执行以下操作
- LUKS不支持需要为同一设备分配多个(超过八个)用户独立访问密钥的应用程序。
- LUKS 不适用于需要文件级加密的应用程序。 更多信息,请参阅 《 RHEL安全指南 》。
使用耐久性 Block Storage for Classic 设置 LUKS 加密卷
数据加密过程会在主机上产生负载,这可能会影响性能。
-
在 shell 提示符处以 root 用户身份输入以下命令来安装必需的包:
dnf install cryptsetup-luks -
获取磁盘标识:
fdisk –l | grep /dev/mapper -
在列表中找到您的卷。
-
加密块设备。
-
此命令会初始化卷,并且您可以设置口令。
cryptsetup -y -v luksFormat /dev/mapper/3600a0980383034685624466470446564 -
请用
YES(全部大写字母)回复。 -
现在设备将显示为加密卷:
$ blkid | grep LUKS /dev/mapper/3600a0980383034685624466470446564: UUID="46301dd4-035a-4649-9d56-ec970ceebe01" TYPE="crypto_LUKS"
-
-
打开该卷并创建映射。
cryptsetup luksOpen /dev/mapper/3600a0980383034685624466470446564 cryptData -
输入口令。
-
验证映射关系,并查看加密卷的状态。
# cryptsetup -v status cryptData /dev/mapper/cryptData is active. type: LUKS1 cipher: aes-cbc-essiv:sha256 keysize: 256 bits device: /dev/mapper/3600a0980383034685624466470446564 offset: 4096 sectors size: 41938944 sectors mode: read/write Command successful -
将随机数据写入加密设备上的
/dev/mapper/cryptData。 此操作确保外部世界将此数据视为随机数据,这意味着它能防止使用模式被泄露。 此步骤可能需要一段时间。shred -v -n1 /dev/mapper/cryptData -
对卷进行格式化。
mkfs.ext4 /dev/mapper/cryptData -
安装卷。
mkdir /cryptData
mount /dev/mapper/cryptData /cryptData
df -H /cryptData
安全地卸装和关闭加密卷
umount /cryptData
cryptsetup luksClose cryptData
重新安装和安装现有 LUKS 加密分区
$ cryptsetup luksOpen /dev/mapper/3600a0980383034685624466470446564 cryptData
Enter the password previously provided.
$ mount /dev/mapper/cryptData /cryptData
$ df -H /cryptData
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdb 202:16 0 2G 0 disk
└─xvdb1 202:17 0 2G 0 part [SWAP]
xvda 202:0 0 25G 0 disk
├─xvda1 202:1 0 256M 0 part /boot
└─xvda2 202:2 0 24.8G 0 part /
sda 8:0 0 20G 0 disk
└─3600a0980383034685624466470446564 (dm-0) 253:0 0 20G 0 mpath
└─cryptData (dm-1) 253:1 0 20G 0 crypt /cryptData
sdb 8:16 0 20G 0 disk
└─3600a0980383034685624466470446564 (dm-0) 253:0 0 20G 0 mpath
└─cryptData (dm-1) 253:1 0 20G 0 crypt /cryptData