Fus*_*yus 7 debian initramfs luks cryptsetup
我正在尝试使用存储在引导分区(解密分区)中的密钥文件解密 Debian 根目录。这会破坏安全性,但现在无关紧要。我必须成功地结束这一点,否则就会尝试死。
我已经创建了挂钩,initramfs
并且密钥文件位于文件/boot
内的initrd.img-*
目录中。密钥文件 ( /boot/keyfile
)的路径在/etc/crypttab
文件中。
我更新了initramfs
,sudo update-initramfs -u
但我收到了这条消息:cryptsetup: WARNING: target sdaX_crypt uses a key file, skipped.
忽略该消息并重新启动会导致磁盘无法启动。该消息Gave up waiting for root device.
将显示并放到initramfs
shell 中。
在initramfs
环境中cryptsetup
不存在。(它应该存在?)
看到update-initramfs -u
“认为”sdaX_crypt
设备将以另一种方式安装并且不配置为使用密钥文件解密。
我怎样才能做到这一点?
ign*_*nis 12
根据 Debian 的 cryptsetup文档,与 KEYFILE_PATTERN 中定义的 shell 样式(通配)模式匹配的密钥文件/etc/cryptsetup-initramfs/conf-hook
将包含在 initramfs 中,但其他密钥文件不会包含在内:
/usr/share/doc/cryptsetup/README.{initramfs,Debian}.gz
/usr/share/doc/cryptsetup{-initramfs/README.initramfs,-run/README.Debian}.gz
:.我不确定 Debian 的早期版本。
这些文件可以用 读取zless filename.gz
,但这里是相关部分,以方便和将来参考。
12. 将密钥文件直接存储在 initrd 中
通常使用密钥文件的设备会被忽略(并发出响亮的警告),并且密钥文件本身不包含在 initrd 中,因为 initramfs 映像通常位于未加密的 /boot 分区上。然而,在某些情况下,需要将密钥文件包含在 initrd 中;例如,最新版本的 GRUB 支持从加密的块设备引导,从而允许加密的 /boot 分区。
在 crypttab(5) 列出的密钥文件中,那些与环境变量 KEYFILE_PATTERN(解释为 shell 模式)的值匹配的文件将包含在 initramfs 映像中。例如,如果 /etc/crypttab 列出了两个密钥文件 /etc/keys/{root,swap}.key,则可以将以下内容添加到 /etc/cryptsetup-initramfs/conf-hook 以将它们添加到 initrd。
KEYFILE_PATTERN="/etc/keys/*.key"
此外,如果 initramfs 映像要包含私钥材料,您将需要使用限制性 umask 来创建它,以阻止非特权用户。这可以通过将以下内容添加到 /etc/initramfs-tools/initramfs.conf 来实现。
乌玛斯克=0077
您可以改用keyscript
crypttab 中的选项(man crypttab)。只需创建一个与您的密码相呼应的脚本并将其设置为 keyscript 参数,然后重新生成您的 ramfs。您不需要任何钩子,也不需要将脚本放在 /boot/ 中。
vg1-root_crypt UUID=94a3b301-123-12-a3-ea0403 none luks,keyscript=/etc/echo-root-luks-pass
我不知道为什么 cryptsetup 的 initramfs 挂钩会禁止您仅将密钥文件列在 crypttab 中。可能不想宽恕这种行为。
PS 我不认为它破坏了安全性,它只是或多或少地削弱了它,具体取决于您的 /boot 分区的安全性。例如,您可以 /boot 关闭 USB 驱动器,并将 USB 保存在袜子中等。
归档时间: |
|
查看次数: |
17724 次 |
最近记录: |