Cryptsetup是linux下的一个分区加密工具,是分区级别的加密,比文件系统级别工作在更底层的位置,是在经过加密的块设备上,创建文件系统,最后挂载使用。
1:创建普通的逻辑卷
[root@orcl ~]# lvcreate -n data -L 100M VolGroup00
Rounding up size to full physical extent 128.00 MB
Logical volume "data" created
2:使用cryptsetup命令把逻辑卷设置成为加密的块设备
[root@orcl ~]# cryptsetup create en_data /dev/VolGroup00/data
Enter passphrase:
3:使用命令cryptsetup检查状态
[root@orcl ~]# cryptsetup status en_data
/dev/mapper/en_data is active:
cipher: aes-cbc-plain
keysize: 256 bits
device: /dev/mapper/VolGroup00-data
offset: 0 sectors
size: 262144 sectors
mode: read/write
4:格式化加密过的块设备/dev/mapper/en_data,挂载,写入数据
[root@orcl ~]# mke2fs -j /dev/mapper/en_data
[root@orcl ~]# tune2fs -c 0 -i 0 /dev/mapper/en_data
[root@orcl ~]# mount /dev/mapper/en_data /mnt
[root@orcl ~]# cp /etc/passwd /mnt/
5:卸载块设备/dev/mapper/en_data,删除映射的加密块设备
[root@orcl ~]# umount /mnt
[root@orcl ~]# cryptsetup remove en_data
6:重新映射加密块设备,故意输入错误的密码,挂载将报错,映射的名称可以和之前的不一致
[root@orcl ~]# cryptsetup create en_data1 /dev/VolGroup00/data
Enter passphrase:
[root@orcl ~]# mount /dev/mapper/en_data1 /mnt
mount: you must specify the filesystem type
[root@orcl ~]# cryptsetup remove en_data1
7:重新映射加密块设备,输入正确的密码,读取文件,映射的名称可以和之前的不一致
[root@orcl ~]# cryptsetup create en_data1 /dev/VolGroup00/data
Enter passphrase:
[root@orcl ~]# mount /dev/mapper/en_data1 /mnt
[root@orcl ~]# ls /mnt
lost+found passwd
[root@orcl ~]# tail -3 /mnt/passwd
mysql:x:27:27::/dev/null:/sbin/nologin
vmail:x:1001:1000::/home/vmail:/bin/bash
postfix:x:1000:1000::/home/postfix:/bin/bash