胡乱翻译自On Disk Encryption with Red Hat Enterprise Linux,个人笔记,随便看看。
我们的愿景是:在数据不在使用时保密硬盘数据。
dm-crypt
: 块层级的加密。
eCryptfs
: 文件系统加密
dm-crypt
提供块加密能力LUKS
:Linux Unified Key Setup。一种硬盘加密标准。定义密钥管理和在硬盘上的格式。/home
分区(比如’/dev/sda3’)首先别忘了加载必要的内核模块
modprobe aes
modprobe dm_crypt
初始化随机数据
dd if=/dev/urandom of=/dev/sda3
格式化LUKS加密层:
cryptsetup luksFormat /dev/sda3
打开LUKS加密层:
cryptsetup luksOpen /dev/sda3 home_plaintext
格式化文件系统:
mkfs.ext4 /dev/mapper/home_plaintext
挂载准备好的文件系统,写入/etc/fstab
:
/dev/mapper/home_plaintext /home ext4 defaults 0 0
在加密硬盘上注册,写入/etc/crypttab
home_plaintext /dev/sda3
仅仅加密文件。
创建一个100M的文件:
dd if=/dev/urandom of=crypt.img bs=1M count=100
把文件和设备连接起来:
losetup /dev/loop0 crypt.img
格式化LUKS加密层:
cryptsetup luksFormat /dev/loop0
打开LUKS加密层:
cryptsetup luksOpen /dev/loop0 container
格式化文件系统(可以先用dm-table
或者ls /dev/mapper
来检查)。
mkfs.ext4 /dev/mapper/container
挂载文件系统
mount /dev/mapper/container /mnt
这时就可以向/mnt
下写入想加密的文件了。
使用完毕后,卸载分区
umount /mnt
关闭luks磁盘:
cryptsetup luksClose container
设备文件脱钩:
losetup -d /dev/loop0
这时你的文件就加密保存在container
中。
~/Private
内的文件是加密的。~/Private
外的文件都是明文的首先别忘了加载内核模块,如果没有默认加载的话:
modprobe ecryptfs
创建一个表文件夹’~/Private’和里文件夹’~/.Private’
mkdir -m 700 ~/.Private
mkdir -m 500 ~/Private
将里文件夹挂载到表文件夹上:
mount -t ecryptfs .Private Private
对表文件夹操作写入等等
卸载表文件夹,只剩下加密后的里文件夹
umount ~/Private
ecryptfs-util提供了方便的脚本:
ecryptfs-setup-private
ecryptfs-mount-private
ecryptfs-umount-private
提供了几个便利:
ecryptfs
中的成员暂不讨论,我这里出错了。