我正在运行13.10 Saucy。如果我在安装过程中未启用磁盘加密,那么有什么方法可以事后启用它吗?
我发现了这个,它表示加密必须在安装时进行,但这也指的是Fedora。如果有任何方法可以从活动磁盘启动,则可以轻松启动。
我正在运行13.10 Saucy。如果我在安装过程中未启用磁盘加密,那么有什么方法可以事后启用它吗?
我发现了这个,它表示加密必须在安装时进行,但这也指的是Fedora。如果有任何方法可以从活动磁盘启动,则可以轻松启动。
Answers:
如果要启用主文件夹的加密,则需要安装和使用以下软件包:ecryptfs-utils
和cryptsetup
。另外,您将需要另一个具有管理员(sudo)权限的用户帐户。完整的文档在这里:
如果要在安装后启用全盘加密,那么目前的简短答案可能是:不,不能。无论如何,如果您对此感兴趣,则可以重复以下问题:
跟进问题:与/ home相比,完整磁盘有什么弊端?
/ home中的加密使用称为ecryptfs的用户空间文件系统完成。它做得很好,并紧密地结合到默认的身份验证系统中,因此您将具有零可用性缺陷:当您从远程外壳或默认登录屏幕输入帐户时,密码将用于解开安全密钥。 ,然后该文件将用于即时加密/解密主目录中的文件(已挂载的文件系统将直接位于/ home / username中)。当您注销时,/ home / username将被卸载,只有加密的文件在系统中仍然可见(通常在/home/.ecryptfs/username/.Private/中)。由于文件名也被加密,因此它们看起来像一堆乱码/随机文件。唯一的信息泄漏是:文件大小,时间戳和文件数(使用全盘加密时,这些信息也被隐藏)。
如果您的系统要在多个用户之间共享,那么即使您决定同时添加全盘加密,这也是一个非常不错的功能:当计算机在家里启动并运行时,全盘加密的安全性将关闭。只要您注销,ecryptfs)加密就处于启用状态。
因此,全盘加密和本地加密不一定是互斥的。
以下是可能的设置列表,具体取决于不同的安全需求:
如果我在安装过程中未启用磁盘加密,那么有什么方法可以启用它吗?
是的,如果您当前正在使用LVM并且系统上有足够的空间将所有未加密的系统文件复制到加密的LUKS分区中,它将变得更加容易。我现在不赘述,因为我不知道您是否正在使用LVM,并且是否现在不愿仅使用ecrypfs并跳过全盘加密的麻烦,直到下一次全新安装。
好了,您可以备份所有重要目录和已安装的软件。确保您的13.10已完全更新,以避免版本冲突。通常备份的内容是:
/boot
/etc
home
var
/usr/local
/bin
,/lib
,lib64
)。之后,仅重新加密即可重新安装系统。将其更新为完整扩展。然后将备份移至加密系统并安装先前版本中的所有软件。
只需确保在备份时不要覆盖对加密重要的文件即可(例如/etc/fstab
,/etc/cryptab
与grub相关的某些内容和其中的某些内容/boot
不应替换为备份的文件)。
从工作正常的Ubuntu 16.04,我成功进行了安装后的根分区加密,其中的根分区包含/ boot以外的所有内容。我将/ boot放在单独的可移动USB上。值得注意的是,我是在升级到Ubuntu 18之前完成的,并且升级在加密磁盘版本上运行良好。
加密没有“就地”完成,这对我来说很好,因为无论如何在新设置生效之前我都不想覆盖工作版本。
执行正确的过程非常简单和快捷。(尽管找出正确的过程非常耗时,因为我遵循了一些错误的线索。)
大纲
细节
1-使用活动的Linux USB磁盘引导-启用持久性很方便。
使用unetbootin在USB上安装Ubuntu 16。GUI允许指定“持久性”,但是还需要执行另一步骤才能使持久性起作用-修改/boot/grub/grub.cfg
以添加--- persistent
如下内容:
menuentry "Try Ubuntu without installing" {
set gfxpayload=keep
linux /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- persistent
initrd /casper/initrd
}
使用实时USB引导
2-在一个空分区上创建一个luks加密卷组。在该加密分区上创建/(根)并交换逻辑卷。
假设要加密的未使用分区为/dev/nvme0n1p4
。
(可选)如果您希望在加密和格式化之前隐藏分区上的旧数据,则可以随机擦除分区。请参阅此处的讨论。
dd if=/dev/urandom of=/dev/nvme0n1p4 bs=4096 status=progress
设置加密。
cryptsetup -y -v luksFormat /dev/nvme0n1p4
系统将要求您设置密码。
cryptsetup luksOpen /dev/nvme0n1p4 crypt1
系统将要求您输入密码。请注意,这crypt1
是一个任意的用户决定名称。现在创建卷和格式。
pvcreate /dev/mapper/crypt1
vgcreate crypt1-vg /dev/mapper/crypt1
lvcreate -L 8G crypt1-vg -n swap
mkswap /dev/crypt1-vg/swap
lvcreate -l 100%FREE crypt1-vg -n root
mkfs.ext4 /dev/crypt1-vg/root
使用这些实用程序查看卷并了解层次结构。
pvscan
vgscan
lvscan
ls -l /dev/mapper
ls -l /dev/crypt1
3-将文件从旧根复制到新根
mkdir /tmp/old-root
mount /dev/ubuntu-vg/root /tmp/old-root/
mkdir /tmp/new-root
mount /dev/crypt1-vg/root /tmp/new-root/
cp -a /tmp/old-root/. /tmp/new-root/
umount /tmp/old-root
umount /tmp/new-root
cp -a ...
以存档模式复制,保留所有文件模式和标志。
4-设置并分区另一个USB以用作可移动引导盘。
我为此使用了gparted。设置两个分区。第一个分区是vfat
,第二个ext2
。每个都是512 MB,您可能会花更少的钱。假设设备/dev/sdf
。
# The first partition: (will be /dev/sdf1)
Free space preceding (leave default value)
New size 512 MiB
Free space following (leave default value)
Create as: Primary Partition
Partition Name: (leave)
File System: fat32
Label: (leave)
# The second partition: (will be /dev/sdf2)
Free space preceding (leave default value)
New size 512 MiB
Free space following (leave default value)
Create as: Primary Partition
Partition Name: (leave)
File System: ext4
Label: (leave)
5-在新的根目录中设置一些文件,做一些魔术,然后将chroot插入新的根目录,然后从chroot的新根目录环境将grub安装到启动磁盘上。
查找一些UUID供以后使用。请注意以下命令的输出:
blkid /dev/sdf1
blkid /dev/sdf2
blkid /dev/nvme0n1p4
挂载根分区和引导分区
sudo mount /dev/mapper/crypt1--vg-root /mnt
sudo mount /dev/sdf2 /mnt/boot
sudo mount /dev/sdf1 /mnt/boot/efi
设置文件 /mnt/etc/fstab
/dev/mapper/crypt1--vg-root / ext4 errors=remount-ro 0 1
/dev/mapper/crypt1--vg-swap none swap sw 0 0
UUID=[uuid of /dev/sdf2] /boot ext2 defaults 0 2
UUID=[uuid of /dev/sdf1] /boot/efi vfat umask=0077 0 1
其中“ [uuid of ...]”只是一个字母数字连字符的组合。
创建文件 /mnt/etc/cryptab
# <target name> <source device> <key file> <options>
crypt1 UUID=[uuid of /dev/nvme0n1p4] none luks,discard,lvm=crypt1--vg-root
进入根目录环境需要一些技巧:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
chroot /mnt
现在,使用以下命令设置启动USB磁盘grub
:
apt install --reinstall grub-efi-amd64
grub-install --efi-directory=/boot/efi --boot-directory=/boot --removable
update-initramfs -k all -c
update-grub
现在,您应该能够使用新创建的USB启动盘重新启动和启动。
故障排除-
(a)必须为apt install --reinstall grub-efi-amd64
命令连接网络。如果网络已连接但DNS失败,请尝试
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
(b)在调用之前initramfs
,vmlinuz...
原始linux中使用的当前文件必须存在于新的根目录中。如果不是,请找到它并将其放在那里。
(c)grub-install
默认情况下,该命令将搜索它可以找到的所有其他Linux磁盘,即使它们没有被mount
ed,也将它们放在新的引导USB的引导菜单中。通常这是不需要的,因此可以通过将以下行添加到来避免这种情况/boot/default/grub.cfg
:
GRUB_DISABLE_OS_PROBER=true
注意: 可以将带有加密密钥的文本文件添加到可移动引导USB中。
简单的回答:不。
复杂的答案:
加密磁盘或分区将删除该磁盘或分区上当前的所有内容,因此要加密磁盘,还应删除磁盘的内容。您应该在开始之前进行适当的数据备份。显然,这意味着您应该重新安装系统以使用全盘加密,而无需其他方法。这是因为随机数据将被写入整个磁盘,从而使数据恢复更加困难。
但是,如今,您无需加密根分区。请记住,如果出现问题,您将无法使用系统来恢复数据。您应该考虑只加密您的个人信息。
请参阅相关问题安装后如何加密完整磁盘?