Debian系统中部署数据加密技术

2024-11-09 4

在Debian系统中,尽管登录密码可以提供一定程度的安全保护,但它们并不能防止有物理访问权限的人获取root权限并访问所有文件。因此,本教程将提供一些关于如何在Debian系统中部署数据加密技术,以确保即使在PC被偷盗的情况下,大家的数据仍然得到安全的加密保护。

Dm-crypt 通过原生的 Linux 内核模块,使用 device-mapper,用很少的用户操作实现本地自动数据加密。

数据加密工具列表:

软件包流行度大小说明
cryptsetupV:33, I:80410可用于加密的块设备 的实用程序(dm-crypt / 3LUKS)
cryptmountV:2, I:3231可用于加密的块设备着重于正常用户挂载/卸载的实用程序( dm-crypt / LUKS)
fscryptV:0, I:15520Linux 文件系统加密工具(fscrypt)
libpam-fscryptI:05519Linux 文件系统加密 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