加密 RAID 的无人值守启动?

加密 RAID 的无人值守启动?

最近我尝试将 Ubuntu 用于我的家庭 NAS。我将其用作媒体服务器以及其他 PC 的主要文档存储库。

我想使用某种磁盘加密和 RAID 1(我有一个用于操作系统的 SSD 和 2 个用于数据的 4TB 驱动器)。如果我只加密 RAID,并且仍然有无人值守的安装,有没有办法保证加密密钥的安全?

我想我可以加密操作系统驱动器,但这样我会失去任何无人值守的启动。我只想要无人值守的启动,以防我不在家时需要重新启动。

答案1

如果您使用 Ubuntu 内置的全盘加密来加密操作系统驱动器,则需要在启动期间从本地控制台输入加密密钥。

似乎有办法保存加密分区的加密密钥,以便只有 root 才能访问(如果合适)。如果其他人拥有 root 访问权限,那么您将面临更大的问题。保存密钥的分区应该加密,并且可能需要手动解密。

您也可以手动挂载加密分区并放弃保存密钥文件。

我从此链接复制了以下步骤:
https://www.howtoforge.com/automatically-unlock-luks-encrypted-drives-with-a-keyfile
致谢原作者 Stephan Jau

步骤 1:创建随机密钥文件

sudo dd if=/dev/urandom of=/root/keyfile bs=1024 count=4

这将创建一个大小为 4096 位的随机内容文件(比 20/30 个字符的密码更好……)。您可以使用任何文件作为密钥文件,但我认为具有随机内容的 4kb 文件很适合。

步骤 2:将密钥文件设为 root 只读

sudo chmod 0400 /root/keyfile

这将使密钥文件只有 root 才能读取。如果有人可以访问此密钥文件,那么您的计算机就会出现更大的问题。

或者将所需的密钥文件 chown 为 root:root 并将其移动到 /root 文件夹

步骤 3:将密钥文件添加到 LUKS

启用 LUKS/dm_crypt 的设备最多可以保存 10 个不同的密钥文件/密码。因此,除了设置密码外,我们还将添加此密钥文件作为附加授权方法。

sudo cryptsetup luksAddKey /dev/sdX /root/keyfile

sdX 当然是您的 LUKS 设备。

首先,系统会提示您输入(现有)密码来解锁驱动器。如果一切正常,您应该会得到如下输出:

Enter any LUKS passphrase:  
key slot 0 unlocked.  
Command successful.

步骤 4:创建映射器

LUKS 设备需要创建一个映射器,然后可以在 fstab 中引用它。打开 /etc/crypttab

sudo nano /etc/crypttab

然后添加如下一行:

sdX_crypt      /dev/sdX  /root/keyfile  luks

或者您可以使用设备的 UUID:

sdX_crypt      /dev/disk/by-uuid/247ad289-dbe5-4419-9965-e3cd30f0b080  /root/keyfile  luks

sdX_crypt 是正在创建的映射器的名称。您可以在此处使用任何名称,例如“音乐”或“电影”或“sfdsfawe”...

通过按下 ctrl-x、enter、enter 保存并关闭文件。Ctrl-x 关闭 nano,但它首先会询问是否保存文件 [yes = enter] 以及文件名称 [same name = enter]。

我们实际上所做的是告诉应该使用 /root/keyfile 而不是密码输入来解锁驱动器。

步骤 5:在 fstab 中挂载设备

现在,我们有一个解锁的设备(嗯,还没有,但是当系统启动时),我们现在只需要挂载它。打开 /etc/fstab:

sudo nano /etc/fstab

并添加一个新条目,例如:

/dev/mapper/sdX_crypt  /media/sdX     ext3    defaults        0       2

确保您在步骤 4 中添加的映射器名称正确。还要确保挂载点/文件夹存在。添加后,再次保存文件并关闭它(ctrl-x,enter,enter)。

步骤 6:重新启动或重新挂载

就是这样。现在您可以重新启动,附加设备应该会自动解锁并安装。您也可以通过重新安装所有设备来测试它:

sudo mount -a

相关内容