防卫女仆,/boot分区如何处理

11 luks disk-encryption

使用LUKS全盘加密时,你会如何防范邪恶女仆

邪恶女仆攻击是当有人在您离开时物理访问您的计算机并破坏未加密的 /boot 分区以在您下次启动计算机时捕获您的 FDE 密码

解决方案之一是将 /boot 分区留在随身携带的 USB 记忆棒上(女仆无法访问它),但是我应该在其上使用哪个文件系统,以及如何配置我的系统以优雅地处理删除USB 记忆棒(以及 /boot 分区本身)?

我正在使用 CentOS,但当然欢迎通用的、与发行版无关的答案。谢谢。

小智 5

终于想通了。这仍然感觉非常糟糕和肮脏,因为系统永远不会意识到/boot可能未安装并且您必须在执行任何可能写入它的操作之前手动安装它(例如系统更新等),但除此之外它可以完美运行.

  • 准备带有单个分区的闪存驱动器,并在其上设置引导标志。您可以运行shred -n 1 -v /dev/sdX它以完全擦除它,包括任何以前的引导扇区;完成后运行fdisk以创建一个分区和mkfs您选择的文件系统。
  • 将您的闪存驱动器安装在某个地方,/mnt/boot甚至/newboot会很好。
  • 使用 将所有内容/boot移至闪存驱动器mv /boot/* /newboot
  • 编辑/etc/fstab并更改原始引导分区的 UUID(如果没有,则创建一个条目)以匹配您的闪存驱动器之一。您可以使用lsblk -o name,uuid. 还要添加该noauto选项,以便驱动器不会自动挂载,以便在系统开始引导时(加载内核后)能够立即将其删除,而不会冒损坏其上的 FS 的风险。
  • 卸载原始引导分区和闪存驱动器(umount /boot && umount /newboot)并安装闪存驱动器;如果您的 fstab 条目是正确的,您就可以运行mount /boot它,它会根据 fstab 中指定的 UUID 自动挂载它。
  • 重新生成引导加载程序的配置以反映新分区的 UUID 和“物理”位置,对于 GRUB,闪存驱动器实际上将显示为计算机中的第一个硬盘驱动器 ( hd0)。如果您可以使用大多数发行版提供的默认 GRUB 配置脚本,您可以运行grub-mkconfig -o /path/to/grub.cfg它,它会根据当前安装的分区和/或 fstab 生成文件。请注意,对于 CentOS 7,正确grub.cfg的实际上位于/boot/grub2/grub.cfg.

在进行任何可能访问引导分区的操作时,连接您的 U 盘并运行mount /boot. 完成后,您可以运行umount /boot. 请注意,后一个命令可能需要一些时间才能完成,因为它将缓冲区刷新到磁盘(磁盘本身很慢,因此内核会缓冲一些写入操作以加快速度)。