我如何预先加密根分区?

我如何预先加密根分区?

我有 3 个分区:EFI ( /boot/efi)、boot ( /boot) 和 root ( /)。我想加密只是 /。我可以通过安装程序手动完成此操作,但我想预先植入它。

我该如何定义它?我的(非加密)配方如下所示。这是我找到的有关 EFI 系统分区的建议的大杂烩(没有找到明确的指南)。

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ / }
  .

我如何制作sda3一个用于 LUKS 加密的物理分区,然后在其上建立文件系统?

更新:

我发现我可以按如下方式将分区设置为加密,但仍然存在 3 个问题:

  1. 我仍然需要在所选分区上创建并激活加密卷
  2. 创建并激活加密卷后,我仍然需要在加密卷上设置正确的 ext4 文件系统
  3. 该配方没有选择dm-crypt创建和激活加密卷所需的加密类型。

仍在奋力挣扎

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    method{ crypto } format{ }
  .

答案1

首先,打开一个 root 终端:

sudo -i

然后使用如下命令用随机数据填充需要加密的分区:

openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sdxy

您必须用sdxy将要加密的分区替换。然后输入

cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sdxy

加密分区sdxy。打开卷并命名它root

cryptsetup luksOpen /dev/sdxy root

使用此命令在其中创建一个 ext4 文件系统:

mkfs.ext4 /dev/mapper/root

接下来,您可以启动安装程序。当系统询问您要做什么时,请选择“其他”。然后选择所有未加密分区的挂载点。对于您的root分区,选择/dev/mapper/root,单击“更改”。然后选择ext4文件系统类型并将挂载点设置为/。然后单击“立即安装”并正常安装 Ubuntu。

安装完成后,单击“继续测试”。打开终端并输入:

sudo -i
cd /mnt
mkdir root
mount /dev/mapper/root root
mount /dev/sdyz root/boot

sdyz应该替换为您的boot分区。接下来,输入:

chroot root
mount -t proc proc /proc
mount -t sysfs sys /sys
nano /etc/crypttab

打开第二个终端并输入sudo blkid。找到 UUID (最后root显示的那个)并将其粘贴到。然后文件应该看起来像这样:crypto_luks/etc/crypttab/etc/crypttab

root UUID=d68911dd-172a-4608-86d4-084eb72f409c none luks

Ctrl使用+x和关闭文件y。在终端中Enter输入并检查一切是否正确(例如 UUID)。nano /etc/fstab

最后,退出 chroot 环境并输入:

cryptsetup luksHeaderBackup /dev/sdxy --header-backup-file /root/root.img

这会将加密分区的头部图像放入文件夹中/root并将其命名为root.img。然后将图像移动到外部驱动器(以防忘记密码)。现在您可以重新启动进入新安装的 Ubuntu。

来源:http://thesimplecomputer.info/full-disk-encryption-with-ubuntu

相关内容