如何在 OpenBSD 上设置全盘加密?

如何在 OpenBSD 上设置全盘加密?

在 OpenBSD 下是否有类似于 Linux 下设置全盘加密的首选方法dm-crypt

我正在寻找全盘加密,就好像有人偷了我的笔记本,他们可能会访问其中存储的数据。另一个原因是我并不总是在笔记本旁边,因此有人可能会损害我上网本的完整性。这是两个主要问题,使我相信全盘加密对我来说很重要。

答案1

OpenBSD 仅支持全盘加密OpenBSD 5.3。早期版本需要明文引导分区。我不知道安装程序何时被修改为支持直接安装到加密分区(当然引导加载程序仍然未加密,因为有些东西必须解密下一位)。

无论如何,加密系统分区没什么用处。因此,我建议正常安装系统,然后创建一个加密的文件系统映像并将您的敏感数据(/home,部分数据/var,也许是一些文件/etc)放在那里。

如果您无论如何都想加密系统分区(因为您有一些特殊的用例,例如一些机密软件),并且您最初没有安装加密的系统,那么您可以按照以下方法进行操作。

引导至 OpenBSD 安装并创建一个包含加密文件系统映像的文件。确保选择合理的大小,因为以后很难更改(您可以创建额外的图像,但必须为每个图像单独输入密码)。这vnconfig手册页有示例(尽管它们缺少一些步骤)。简而言之:

dd if=/dev/urandom of=/ENCRYPTED.img bs=1m count=4096
vnconfig -k svnd0 /ENCRYPTED.img  # type your passphrase
{ echo a a; echo w; echo q; } | disklabel -E /svnd0  # create a single slice
newfs /dev/svnd0a
mount /dev/svnd0a /mnt
mv /home/* /mnt
umount /mnt
umount /dev/svnd0c

添加相应的条目到/etc/fstab:

 /ENCRYPTED.img  /dev/svnd0c  vnd rw,noauto,-k
 /dev/svnd0a     /home        ffs rw,noauto

添加命令以在启动时挂载加密卷及其中的文件系统/etc/rc.local:

echo "Mounting encrypted volumes:"
mount /dev/svnd0c
fsck -p /dev/svnd0a
mount /home

通过运行这些命令 ( ) 检查一切是否正常工作mount /dev/svnd0c && mount /home

请注意,这rc.local是在启动过程的后期执行的,因此您不能将 ssh 或 sendmail 等标准服务使用的文件放在加密卷上。如果您想这样做,请将这些命令放在/etc/rc后面mount -a。然后移动您认为敏感的文件系统部分并将它们移动到/home卷中。

mkdir /home/etc /home/var
mv /etc/ssh /home/etc
ln -s ../home/etc/ssh /home/etc
mv /var/mail /var/spool /home/var
ln -s ../home/var/mail ../home/var/spool /var

您还应该加密您的交换区,但 OpenBSD 现在会自动执行此操作。

获取加密文件系统的新方法是通过软件raid驱动程序 softraid。请参阅softraidbioctl手册页或Lykle de Vries 的 OpenBSD 加密 NAS HOWTO了解更多信息。最新版本的 OpenBSD 支持从 softraid 卷启动安装通过在安装过程中进入 shell 来创建卷,将其添加到 Softraid 卷。

¹ 据我所知,OpenBSD 的卷加密受到保密性保护(对于 Blowfish),而不是为了正直。保护操作系统的完整性很重要,但没有必要保密。也有一些方法可以保护操作系统的完整性,但它们超出了本答案的范围。

答案2

软突袭OBSD 设计者的目的是使用 CRYPTO 规则来支持全盘加密。还有另一种使用 SVND 的方法,但现已弃用。

答案3

http://geekyschmidt.com/2011/01/19/configuring-openbsd-softraid-fo-encryption基本上是 Softraid 全盘加密的图形化操作方法。当然,永远不要盲目遵循指南并确保所有 bioctl 设置都是正确的。

相关内容