在本文中,我们将简要介绍块加密,Linux统一密钥设置( LUKS ),并描述在Fedora Linux中创建加密块设备的说明。
阻止设备加密
块设备加密用于通过加密来保护块设备上的数据,并且为了解密数据,用户必须提供密码或密钥才能访问。 这提供了额外的安全机制,因为即使它已从系统中物理分离,它也可以保护设备的内容。
LUKS简介
LUKS ( Linux统一密钥设置 )是Linux中块设备加密的标准,它通过建立数据的磁盘格式和密码/密钥管理策略来工作。 它将所有必要的设置信息存储在分区标头(也称为LUKS标头 )中,从而允许您无缝地传输或迁移数据。
LUKS利用内核设备映射器子系统和dm-crypt模块来提供低级映射,该映射保存设备数据的加密和解密。 您可以使用cryptsetup程序执行用户级任务,例如创建和访问加密设备。
准备块设备
以下说明显示了安装后创建和配置加密块设备的步骤。
安装cryptsetup包。
# dnf install cryptsetup-luks
接下来,在加密之前用随机数据填充设备,因为这将使用以下命令显着增加加密的强度。
# dd if=/dev/urandom of=/dev/sdb1 [slow with high quality random data ]OR# badblocks -c 10240 -s -w -t random -v /dev/sdb1 [fast with high quality random data]
警告 :上述命令将清除设备上的所有现有数据。
格式化加密设备
接下来,使用cryptsetup命令行工具将设备格式化为dm-crypt / LUKS加密设备。
# cryptsetup luksFormat /dev/sdb1
运行该命令后,系统将提示您输入YES
(大写),以便为要格式化的设备提供两次密码短语,如以下屏幕截图所示。
要验证操作是否成功,请运行以下命令。
# cryptsetup isLuks /dev/sdb1 && echo Success
您可以查看设备的加密信息摘要。
# cryptsetup luksDump /dev/sdb1
创建映射以允许访问已解密的内容
在本节中,我们将配置如何访问加密设备的解密内容。 我们将使用内核device-mapper创建映射。 建议为此映射创建一个有意义的名称,例如luk-uuid (其中<uuid>
替换为设备的LUKS UUID </ strong( 通用唯一标识符 ))。
要获取加密设备UUID ,请运行以下命令。
# cryptsetup luksUUID /dev/sdb1
获取UUID后 ,您可以创建映射名称,如图所示(系统将提示您输入之前创建的密码)。
# cryptsetup luksOpen /dev/sdb1 luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
如果命令成功,则称为/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
的设备节点表示解密的设备。
刚刚创建的块设备可以像任何其他未加密的块设备一样被读取和写入。 您可以通过运行以下命令来查看有关映射设备的一些信息。
# dmsetup info /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
在映射设备上创建文件系统
现在我们将看看如何在映射设备上创建文件系统,这将允许您像使用任何其他块设备一样使用映射设备节点。
要在映射设备上创建ext4文件系统,请运行以下命令。
# mkfs.ext4 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
要挂载上述文件系统,请为其创建一个挂载点,例如/mnt/encrypted-device
,然后按如下方式挂载它。
# mkdir -p /mnt/encrypted-device# mount /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device/
将映射信息添加到/ etc / crypttab和/ etc / fstab
接下来,我们需要配置系统以自动设置设备的映射以及在引导时挂载它。
您应该使用以下格式在/ etc / crypttab文件中添加映射信息。
luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c none
以上格式:
- luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c – 是映射名称
- UUID = 59f2b688-526d-45c7-8f0a-1ac4555d1d7c – 是设备名称
保存文件并关闭它。
接下来,将以下条目添加到/ etc / fstab以在系统引导时自动挂载映射设备。
/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device ext4 0 0
保存文件并关闭它。
然后运行以下命令以更新从这些文件生成的systemd单元。
# systemctl daemon-reload
备份LUKS标头
最后,我们将介绍如何备份LUKS标头。 这是避免丢失加密块设备中所有数据的关键步骤,以防包含LUKS头的扇区因用户错误或硬件故障而损坏。 此操作允许数据恢复。
备份LUKS标头。
# mkdir /root/backups # cryptsetup luksHeaderBackup --header-backup-file luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
并恢复LUKS标头。
# cryptsetup luksHeaderRestore --header-backup-file /root/backups/luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
就这样! 在本文中,我们已经解释了如何在Fedora Linux发行版中使用LUKS加密块设备。 您对本主题或指南有任何疑问或意见,请使用下面的反馈表与我们联系。