我想在 Ubuntu 13.10 上设置磁盘加密,这样我就有
- 清楚的
/
- 加密
/home
分区 - 加密交换分区
- 工作休眠和恢复
正如这些要求所暗示的,这是为了防止潜在的笔记本电脑窃贼读取我的个人数据。由于/
未加密,它无法防止有人拿走笔记本电脑,安装键盘记录器并将其归还给我。
我读过了启用HibernateWithEncryptedSwap但它是为 Ubuntu 12.04 编写的,我不确定它是否仍然有效或者是否是推荐的方式。
什么是最新的设置?
答案1
我设法建立了一个加密主页和加密交换并运行休眠模式。
我使用uswsusp
并大量遵循本文- 仍然适用于 Ubuntu 13.10。
- 在启动时,我在 Ubuntu 徽标下收到两个密码提示(一个用于 home,一个用于 swap)。
- 有了
apt-get install uswsusp
,Ubuntu 自动切换pm-hibernate
为使用 uswsusp,因此所有 GUI 工具也使用它。 - 从休眠状态恢复时,我按预期收到一个密码提示。
我的设置的一些部分:
创建加密分区
# For /home
sudo cryptsetup --cipher aes-xts-plain --key-size 256 --hash sha512 --use-random --verify-passphrase luksFormat /dev/sdb2
# For swap
sudo cryptsetup --cipher aes-xts-plain --key-size 256 --hash sha512 --use-random --verify-passphrase luksFormat /dev/sdb3
我使用 是
aes-xts-plain
因为它是最快的cryptsetup benchmark
(仅适用于 cryptsetup >= 1.6)。许多指南使用aes-cbc-essiv
,但从我目前阅读的内容来看,xts
可以像 一样有效防止水印cbc-essiv
。如果您使用的分区 >= 2TB,则应使用aes-xts-plain64
而不是-plain
。有关这些选项和选择的更多信息,请参见这里。创建这些分区后,您当然必须在其上创建相应的文件系统,例如使用
mkswap /dev/mapper/cryptoposwap
和mkfs.ext4 /dev/mapper/cryptohome
。
在/etc/crypttab中
cryptohome /dev/disk/by-uuid/8cef7fd1-cceb-4a4a-9902-cb9a5805643c none luks,discard
cryptoswap /dev/disk/by-uuid/a99c196d-55df-460f-a162-00c4ea6d46e6 none luks,discard
/etc/fstab
UUID=a4a2187d-a2d2-4a4c-9746-be511c151296 / ext4 errors=remount-ro 0 1
/dev/mapper/cryptoswap none swap sw,discard 0 0
/dev/mapper/cryptohome /home ext4 discard 0 2
- 我使用
discard
两者中的选项crypttab
并fstab
为正在使用的 SSD 启用 TRIM。 - 我不得不
/etc/initramfs-tools/conf.d/resume
将旧的交换 UUID 调整为新的,/dev/mapper/cryptoswap
以摆脱警告update-initramfs -u -k all
。
这仍然非常类似于启用HibernateWithEncryptedSwap,但看起来我不需要编辑/usr/share/initramfs-tools/scripts/local-top/cryptroot
,/etc/acpi/hibernate.sh
(如果您知道为什么需要编辑,请发表评论 - 也许区别在于此设置使用了uswsusp
?)。