为什么我的驱动器没有使用 cryptsetup 加密?

为什么我的驱动器没有使用 cryptsetup 加密?

我已关注本指南希望通过 LVM 上的单个文件系统完全加密辅助驱动器。

这正是我按顺序所做的:

fdisk /dev/sdb # goes to interactive promt (choose defaults)
pvcreate /dev/sdb1
vgcreate vg_crypt /dev/sdb1
lvcreate -l 100%FREE -n storage vg_crypt
cryptsetup luksFormat -c aes-xts-plaint64 -s 512 /dev/mapper/vg_crypt-storage # set passphrase
cryptsetup open /dev/mapper/vg_crypt-storage storage # use passphrase
mkfs.ext4 /dev/mapper/storage
mkdir /storage
mount /dev/mapper/storage /storage
echo "cryptdevice=/dev/vg_crypt/storage:storage root=/storage" >> /etc/default/grub
echo "storage /dev/mapper/vg_crypt-storage /dev/urandom storage,cipher=aes-xts-plain64,size=256" >> /etc/crypttab
echo "/dev/mapper/vg_crypt-storage storage ext4 defaults 0 0" >> /etc/fstab
echo "this is a test" >> /storage/test
reboot

重新启动后,我发现我可以绕过密码短语输入请求以/dev/sdb1使用进行解密Ctrl ^c。我预计这会阻止我访问 上的文件系统/dev/sdb。令我惊讶的是它是完全可读的,并且文件以纯文本形式显示。

我是否配置错误?

我注意到了这一点:

cd /storage
df .
Filesystem .....
/dev/mapper/othervg_root .... (on sda!)

所以这个目录存在于我的 sda 上的 LVM 上。但我认为通过安装/dev/mapper/storage/storage,我会将该目录放在sdb1.不知道我在这里缺少什么。

所以我也注意到没有密码登录,/dev/mapper/storage不存在。所以我一头扎进去/storage,然后重新启动。这次我输入密码短语,发现/dev/mapper/storage 确实存在,并且/storage也存在(即使我刚刚删除了它),但它仍然在 上的逻辑卷上sda。我很困惑。

现在我注意到lsblk没有用于存储的安装点。于是我又像以前一样重新上马。现在df /storage确实将文件系统显示为/dev/mapper/storage.这次我重新启动并输入了密码。/storage再次位于错误的文件系统下。由于某种原因,启动时的安装是错误的。它必须是 etc 文件中的内容。

我通读了 /etc/*tab 文件的手册页并做了一些更改:

文件系统表:

/dev/mapper/vg_crypt-storage /storage ext4 defaults 0 0 # add the '/' in /storage

密码表:

storage /dev/mapper/vg_crypt-storage none cipher=aes-xts-plain64,size=512
# changed size to match key in cryptsetup
# changed key to none (/dev/urandom is something particular to swap i guess)
# removed uneccesary 'storage' in key=val list. I saw 'root' in the guide and thought i needed the name of my crypto device

我从 Grub 中删除了该行,因为我不知道它在做什么。我sdb1用命令删除了所有LVM的东西{lv,vg,pv}remove,然后删除了分区sdb1。我暂时从文件中注释掉这些行/etc/*tab并重新启动。

最后,我重新设计了分区、LVM 方案、ext4 文件系统,并取消了/etc/*tab文件中两行的注释。

现在,当我重新启动时,我遇到了启动问题,并且将我带入紧急模式。

journalctl -xb向我展示了一些奇特的线条:

.... kernel: EXT4-fs (dm-3): VFS: Can't find ext4 filesystem
.... systemd[1]: Failed to mount /storage

还有其他与本地文件系统的依赖关系、重新标记文件系统和迁移本地 SELinux 策略更改有关的失败。但不确定这些是否完全相关。

答案1

我想出来了 呜呜!

问题出在/etc/fstab.

我的常规sda分区是这样安装的:

/dev/mapper/vg_sda-root /     ext4 defaults 0 0
/dev/mapper/vg_sda-swap swap  ext4 defaults 0 0
/dev/mapper/vg_sda-home /home ext4 defaults 0 0

所以我很自然地遵循了该方案并添加了我的:

/dev/mapper/vg_crypt-storage storage ext4 defaults 0 0

这行的问题是第一个字段,即FS_规格,如中所述fstab(5) 手册页。 “该字段描述要安装的块特殊设备或远程文件系统。”

由于 crypttab 是在 fstab 之前处理的,因此解密的设备可以作为 访问/dev/mapper/storage,而不是作为原始 LVM 映射设备名称进行访问/dev/mapper/vg_crypt-storage

因此,将我的行更改/etc/fstab为:

/dev/mapper/storage storage ext4 defaults 0 0

/etc/fstab然后将正确的解密设备安装到/storage.

我通过重新启动并取消密码短语(Ctrl ^C3次)进行了测试,这迫使我进入紧急模式。这里,加密设备不存在,必须手动解密和安装。

我想我解释得很清楚/正确,但如果我遗漏了什么,请纠正我!

相关内容