与dm-crypt
Linux 下类似,有没有在OpenBSD下设置全盘加密的首选方法?
我正在寻找全盘加密,就好像有人要窃取我的笔记本一样,他们可能会访问存储在其中的数据。另一个原因是我并不总是在笔记本旁边,因此有人可能会损害我的上网本的完整性。这是两个使我相信全盘加密对我很重要的主要问题。
与dm-crypt
Linux 下类似,有没有在OpenBSD下设置全盘加密的首选方法?
我正在寻找全盘加密,就好像有人要窃取我的笔记本一样,他们可能会访问存储在其中的数据。另一个原因是我并不总是在笔记本旁边,因此有人可能会损害我的上网本的完整性。这是两个使我相信全盘加密对我很重要的主要问题。
Answers:
从OpenBSD 5.3开始, OpenBSD就支持全盘加密。早期版本需要明文启动分区。我不知道何时修改安装程序以支持直接安装到加密分区(引导加载程序当然仍未加密,因为某些东西必须解密下一位)。
无论如何,对系统分区进行加密几乎没有用¹。因此,我建议正常安装系统,然后创建一个加密的文件系统映像,然后将您的敏感数据(的/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
。有关更多信息,请参见softraid
和bioctl
手册页或Lykle de Vries的OpenBSD加密NAS HOWTO。OpenBSD的最新版本支持从softraid卷启动并通过在安装过程中放置在shell中以创建卷来安装到softraid卷。
¹ 据我所知,OpenBSD的卷加密是受保密保护的(使用Blowfish),而不是完整性。保护操作系统的完整性很重要,但是不需要保密。也有一些方法可以保护OS的完整性,但是这些方法超出了此答案的范围。
http://geekyschmidt.com/2011/01/19/configuring-openbsd-softraid-fo-encryption基本上是softraid全盘加密的图形操作方法。当然,切勿盲目遵循指南,并确保所有的生物识别设置均正确。