当我在我的设备上安装 Debian Buster(带有 4.19 内核)时,我选择了使用全盘加密的引导式分区。
所以当前设置是 LUKS 上的 LVM,并且 /boot 是未加密的:
user@HOST:~$ lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
├sda1 ext2 a81YDwjp-q50N-nbZH-JLwr-Djhhe0aDxI6 94,4M 55% /boot
├sda2
└sda5 crypto_LUKS E5ZYjKug-zrNW-yW4Q-jwFD-MdgSY08zqKo
└sda5_crypt LVM2_member aJTjWXcR-Nxth-LcnV-5tzp-iBzbCU0zy8d
├HOST--vg-root ext4 PHVJaGjc-46vv-u5co-fXxd-NCZJUkzK21Q 129,1G 5% /
└HOST--vg-swap_1 swap 1XZehc8C-2yKA-Y8Qr-eCc1-EI3ezAgVNBo [SWAP]
现在最好改进此设置并使用临时密钥加密交换卷。但这是为什么呢?毕竟交换已经加密,因为它驻留在加密的硬盘上。顺便说一句,我不使用休眠。
我想要的是从我系统上的额外加密层中获得尽可能多的好处。例如,我先在本地加密一些数据,然后再将其备份到远程位置。如果完整的硬盘加密被击败,这种加密也可以作为第二道防线......但前提是在这种情况下交换不可读。
从默认的 Debian 配置开始(即无需循环重新安装),有没有办法用临时密钥加密交换?
由于您有一个现代(4.19)内核并且不使用休眠,我建议不要使用交换分区,并将交换移动到您的根分区。如果时间允许,您可以将交换分区使用的空间重新分配给根。
多少空间?https://itsfoss.com/swap-size/有一个根据一些准则和该系统 RAM 的大小计算它的表:
指导方针?
https://linuxize.com/post/how-to-add-swap-space-on-debian-9/有一个 Debian 制作交换文件的分步过程。
一个简单的写我最终做了什么。如前所述,发行版是 Debian Buster,并且禁用了休眠功能。
可选:禁用交换 (
sudo swapoff -a
) 并用零或随机数据覆盖交换卷。这实际上是推荐的,但在我的情况下不是必需的。创建新的交换文件
sudo fallocate -l 2G /cryptswap
只有 root 用户应该能够读取交换文件
sudo chmod 600 /cryptswap
将以下行添加到
/etc/crypttab
请注意,并非所有发行版都支持
noearly
选项,但 Debian 肯定支持,而且 Ubuntu 似乎也支持它。禁用交换安装(在该行前面
/etc/fstab
添加一个)并粘贴下面的第二行:#
[添加] 禁用从休眠状态恢复。如下更新
/etc/initramfs-tools/conf.d/resume
,然后运行sudo update-initramfs -u -k all
。重启
确认一切正常
请注意,旧的交换卷仍然存在,但不再挂载。
清理
删除旧的交换卷。随后您可能想要重新分配可用空间,但我不会在这里介绍。
sudo lvremove HOST-vg/swap_1