当我在我的设备上安装 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 配置开始(即无需循环重新安装),有没有办法使用临时密钥加密交换?
答案1
由于您使用的是现代 (4.19) 内核,并且不使用休眠模式,我建议您不要使用交换分区,而是将交换分区移至根分区。如果时间允许,您可以将交换分区使用的空间重新分配给根分区。
多少空间?https://itsfoss.com/swap-size/有一个根据一些指导原则和系统 RAM 大小来计算的表格:
RAM Swap Size
256MB 256MB
512MB 512MB
1GB 1GB
2GB 1GB
3GB 2GB
4GB 2GB
6GB 2GB
8GB 3GB
12GB 3GB
16GB 4GB
24GB 5GB
32GB 6GB
64GB 8GB
128GB 11GB
指导方针?
如果您的系统 RAM 少于 1 GB,则必须使用交换,因为大多数应用程序很快就会耗尽 RAM。
如果您的系统使用资源密集型应用程序(如视频编辑器),那么使用一些交换空间是个好主意,因为您的 RAM 可能已经耗尽。
如果使用休眠模式,则必须添加交换分区,因为 RAM 的内容将写入交换分区。这也意味着交换分区大小至少应为 RAM 的大小。
避免发生诸如程序失控和占用 RAM 等奇怪事件。
https://linuxize.com/post/how-to-add-swap-space-on-debian-9/有 Debian 制作交换文件的分步过程。
答案2
简单记录一下我最后做的事情。如前所述,发行版是 Debian Buster,并且休眠功能已禁用。
可选:禁用交换(
sudo swapoff -a
)并用零或随机数据覆盖交换卷。这实际上是推荐的,但对我来说没有必要。创建新的交换文件
sudo fallocate -l 2G /cryptswap
只有 root 用户才可以读取交换文件
sudo chmod 600 /cryptswap
将以下行添加到
/etc/crypttab
cryptswap /cryptswap /dev/urandom cipher=aes-cbc-essiv:sha256,size=256,swap,noearly
请注意,并非所有发行版都支持该
noearly
选项,但 Debian 肯定支持,Ubuntu 似乎也支持它。禁用交换挂载(在行前面
/etc/fstab
添加)并粘贴下面的第二行:#
#/dev/mapper/HOST--vg-swap_1 none swap sw 0 0 /dev/mapper/cryptswap none swap sw 0 0
[新增] 禁用从休眠状态恢复。
/etc/initramfs-tools/conf.d/resume
按如下方式更新并sudo update-initramfs -u -k all
随后运行。RESUME=none
重启
确认一切正常
请注意,旧的交换卷仍然存在,但不再安装。
user@HOST:~$ lsblk -f NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT loop0 └cryptswap swap 32efd8e4-a775-41b8-b717-39dfbff439f [SWAP] 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
user@HOST:~$ sudo cryptsetup status cryptswap /dev/mapper/cryptswap is active and is in use. type: PLAIN cipher: aes-cbc-essiv:sha256 keysize: 256 bits key location: dm-crypt device: /dev/loop0 loop: /cryptswap sector size: 512 offset: 0 sectors size: 4194304 sectors mode: read/write
清理
删除旧的交换卷。随后,您可能需要重新分配可用空间,但我不会在这里介绍这一点。
sudo lvremove HOST-vg/swap_1