LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,它不仅能通用于不同的Linux发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口令失密,我们可以迅速改变口令而无需重新加密真个硬盘。通过提供一个标准的磁盘上的格式,它不仅方便之间分布的兼容性,而且还提供了多个用户密码的安全管理。必须首先对加密的卷进行解密,才能挂载其中的文件系统。
工具:cryptsetup(默认已经安装)
常用参数:
luksFormat 设定磁盘密码
luksOpen 开启映射设备(虚拟设备)
luksClose 关闭映射设备
luksAddKey 给映射设备添加密匙文件
luksRemoveKey 从映射设备中一处密匙文件
liksUUID 打印加密设备的UUID号
status 查看映射设备信息
使用cryptsetup对分区进行了加密后,这个分区就不再允许直接挂载。LUKS也是一种基于device mapper 机制的加密方案。如果要使用这个分区,必须对这个分区做一个映射,映射到/dev/mapper这个目录里去,我们只能挂载这个映射才能使用。然而做映射的时候是需要输入解密密码的。
Crypsetup工具加密的特点:
- 加密后不能直接挂载
- 加密后硬盘丢失也不用担心数据被盗
- 加密后必须做映射才能挂载
磁盘加密
[root@localhost ~]# fdisk /dev/vdb 创建分区
[root@localhost ~]# partprobe 同步磁盘
[root@localhost ~]# cryptsetup luksFormat /dev/vdb1 加密分区
大写的YES,注意密码要求
[root@localhost ~]# cryptsetup open /dev/vdb8 huawei 打开加密分区,名称随意
[root@localhost ~]# ll /dev/mapper/ 在此查看虚拟设备
[root@localhost ~]# mkfs.xfs /dev/mapper/huawei 格式化
[root@localhost ~]# mount /dev/mapper/huawei /mnt/ 挂载
[root@localhost ~]# touch /mnt/file{1..9} 建立文件
[root@localhost ~]# umount /mnt 卸载
[root@localhost ~]# cryptsetup close westos 关闭
完成一次操作之后,下次操作与本次操作名称无关
加密磁盘开机自动挂载
[root@localhost ~]# vim /etc/fstab 编辑
/dev/mapper/huawei /pub xfs defaults 0 0
[root@localhost ~]# vim /etc/crypttab 编辑
huawei /dev/vdb1 /root/vdb1pass
[root@localhost ~]# vim /root/vdb1pass 编辑 写入密码
2018westos
[root@localhost ~]# chmod 600 /root/vdb1pass 改变权限只允许root查看
[root@localhost ~]# cryptsetup luksAddKey /dev/vdb1 /root/vdb1pass 加密
Enter any passphrase: 输入密码
[root@localhost ~]# reboot 重启检查
[root@localhost ~]# df 查看
尝试研究解密封印之术
设备加密后的特点:
加密后不能直接挂载
加密硬盘如果丢失,数据不会被盗
加密设备必须做映射之后才能挂载
鉴于以上特点全部基于加密后,故研究出解密设备的解除封印之密法
先关闭映射设备,再进行强制格式化 -f
[root@localhost ~]# df
[root@localhost ~]# ls /pub/
[root@localhost ~]# umount /pub/
[root@localhost ~]# cryptsetup luksClose /dev/mapper/huawei
[root@localhost ~]# mkfs.xfs -f /dev/vdb1
[root@localhost ~]# blkid
[root@localhost ~]# cryptsetup luksOpen /dev/vdb1 huawei2
最后一行命令执行结果,显然,起飞失败
关闭磁盘加密
[root@localhost ~]# vim /etc/fstab 删除上面编辑的文件内容
[root@localhost ~]# vim /etc/crypttab 删除上面编辑的文件内容
[root@localhost ~]# umount /pub 卸载
[root@localhost ~]# cryptsetup close huawei 关闭磁盘加密
[root@localhost ~]# mkfs.xfs /dev/vdb1 -f 格式化
[root@localhost ~]# mount /dev/vdb1 /mnt/ 挂载到/mnt下
[root@localhost ~]# df 查看