最近,我为工作安装了 FreeBSD,为加密安装了 geli。(没有引导分区的全盘加密。) 当我完成设置时,我发现每次引导时,我都需要输入解析密码来挂载根磁盘。
这不适合我的需要。我只想让我的系统自动启动,这样我就可以通过 ssh 访问它。但是当其他人关闭我的机器,并尝试使用另一个 freeBSD 系统来挂载我的磁盘时,他们不能。如果他们用另一个 FreeBSD 系统挂载分区,他们只能看到 /boot 目录。所有文件都是安全的!
我的概念可能吗?(要让一个加密的系统在被另一个系统挂载时自动启动?)如果是这样,我如何使用 freeBSD 做到这一点?
tl: 博士:没有
如果您希望在启动时自动使用该密钥,则该密钥必须在启动时可访问。这意味着在磁盘的未加密部分。
如果它在磁盘的未加密部分,那么其他人可以将磁盘从您的系统中取出,读取密钥并解密磁盘的其余部分。
没有办法正确保护磁盘而不存储密钥。
不可以。如果您希望自动解密,您需要将密码以明文形式存储在磁盘上,或以某种(坏的)方式隐藏起来。有足够意志力的人将能够轻松获得该密码。如果只有“/boot”未加密,则密码必须存在,攻击者只需找到它即可。
如果您只是不想亲自到场解锁服务器,可以通过安装未加密的系统来解决,该系统将启动,启动 ssh 等服务,使您能够从远程位置解锁数据分区。
我遇到过类似的问题,我只通过加密 /home 就解决了。问题是 /etc/rc.d/geli 想要在继续引导之前挂载它。一个 kludge 将是在引导后手动进行挂载,但我喜欢它建议在引导时进行挂载的方式 - 我只希望网络首先启动,因为 /、/var 和 /usr 未加密.
我这样说:
/dev/ada0p7.eli /home ufs rw,noauto 0 0
在 /etc/fstab
在 rc.conf 中创建匹配的“l”选项:
lgeli_devices="ada0p7" lgeli_ada0p7_flags="-k /etc/geli/server.key" lgeli_ada0p7_autodetach="NO"
然后是 /etc/rc.d 中的 lgeli,如下所示:
这样,它相当干净,而且没有太多的杂乱。lgeli 中的 mount 命令确保在 geli 时挂载 noauto 内容。有点难看,但对我来说最主要的是,我可以远程登录并拯救我的桌面,以免在电源故障后无法访问,否则这是默认模式!