在Debian系统中,尽管登录密码可以提供一定程度的安全保护,但它们并不能防止有物理访问权限的人获取root权限并访问所有文件。因此,本教程将提供一些关于如何在Debian系统中部署数据加密技术,以确保即使在PC被偷盗的情况下,大家的数据仍然得到安全的加密保护。
Dm-crypt 通过原生的 Linux 内核模块,使用 device-mapper,用很少的用户操作实现本地自动数据加密。
数据加密工具列表:
软件包 | 流行度 | 大小 | 说明 |
---|---|---|---|
cryptsetup |
V:33, I:80 | 410 | 可用于加密的块设备 的实用程序(dm-crypt / 3LUKS) |
cryptmount |
V:2, I:3 | 231 | 可用于加密的块设备着重于正常用户挂载/卸载的实用程序( dm-crypt / LUKS) |
fscrypt |
V:0, I:1 | 5520 | Linux 文件系统加密工具(fscrypt) |
libpam-fscrypt |
I:0 | 5519 | Linux 文件系统加密 PAM 模块(fscrypt) |
数据加密会消耗 CPU 时间等资源,如果它的密码丢失,加密的数据会变成无法访问。请权衡其利弊。
通过 debian-installer (lenny 或更新版),整个 Debian 系统能够被安装到一个加密的磁盘上,使用 dm-crypt/LUKS 和 initramfs.
一、加密移动磁盘
可以用 dm-crypt/LUKS 加密大容量可移动设备上数据,例如挂载在“/dev/sdx”上的 USB 记忆棒。只需按如下步骤简单地把它格式化。
# fdisk /dev/sdx ... "n" "p" "1" "return" "return" "w" # cryptsetup luksFormat /dev/sdx1 ... # cryptsetup open /dev/sdx1 secret ... # ls -l /dev/mapper/ total 0 crw-rw---- 1 root root 10, 60 2021-10-04 18:44 control lrwxrwxrwx 1 root root 7 2021-10-04 23:55 secret -> ../dm-0 # mkfs.vfat /dev/mapper/secret ... # cryptsetup close secret
然后,它就可以正常的在现代桌面环境下使用 udisks2 软件包,挂载到 “/media/username/disk_label”,只不过它会要求输入密码。不同的是写入的数据都是加密的。密码条目可以自动使用钥匙环。
可以把它格式化成其他格式的文件系统,例如用 “mkfs.ext4 /dev/mapper/sdx1” 把它格式化为 ext4。如果使用 btrfs,则需要安装 udisks2-btrfs 软件包。对于这些文件系统,可能需要配置文件的所有者和权限。
二、挂载加密的磁盘
举个列子,用 dm-crypt/LUKS 在”/dev/sdc5″上创建的加密磁盘可以用如下步骤挂载到”/mnt”:
$ sudo cryptsetup open /dev/sdc5 ninja --type luks Enter passphrase for /dev/sdc5: **** $ sudo lvm lvm> lvscan inactive '/dev/ninja-vg/root' [13.52 GiB] inherit inactive '/dev/ninja-vg/swap_1' [640.00 MiB] inherit ACTIVE '/dev/goofy/root' [180.00 GiB] inherit ACTIVE '/dev/goofy/swap' [9.70 GiB] inherit lvm> lvchange -a y /dev/ninja-vg/root lvm> exit Exiting. $ sudo mount /dev/ninja-vg/root /mnt