用luks方式对磁盘进行加密以及加密磁盘的自动挂载

1.关于luks加密
   LUKS(Linux Unified Key Setup)为Linux硬盘分区加密提供了一种标准,它不仅能通用于不同的
 Linux发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口令失密,我们可以
 迅速改变口令而无需重新加密整个硬盘。通过提供一个标准的磁盘上的格式,它不仅方便之间分布的
 兼容性,而且还提供了多个用户密码的安全管理。必须首先对加密的卷进行解密,才能挂载其中的文件
 系统。 
    文件系统在加密层之上,当加密层被破坏掉之后,磁盘里的内容就看不到,因为没有设备对
 他解密

crypsetup工具加密的特点: 
(1)加密后不能直接挂载 
(2)加密后硬盘丢失也不用担心数据被盗 
(3)加密后必须做映射才能挂载
2.磁盘加密
cryptsetup    luksFormat   /dev/vdb1    # 将分区进行LUKS格式加密(变成LUKS分区) 
cryptsetup    open   设备名     # 打开,也就是解密,设备名任意,此处的设备为虚拟设备
cryspsetup    close  设备名     # 关闭解密,也就是恢复加密状态	

[root@server ~]# cryptsetup luksFormat /dev/vdb5   # 将分区进行LUKS格式加密(变成LUKS分区) 

在这里插入图片描述

[root@server ~]# cryptsetup open /dev/vdb5 lala    # 打开,也就是解密,lala为虚拟设备 
Enter passphrase for /dev/vdb5:	
[root@server ~]# ll /dev/mapper/     # 当解密成功时,会发现在这个目录下生成虚拟设备

在这里插入图片描述

[root@server ~]# mkfs.xfs /dev/mapper/lala    # 格式化虚拟设备
[root@server ~]# mount /dev/mapper/lala /mnt  # 挂载虚拟设备就可以使用了
[root@server ~]# df

在这里插入图片描述

[root@server ~]# touch /mnt/file{1..10}    # 因为设备是解密状态,所以可以新建文件
[root@server ~]# ls /mnt   # 也可以查看内容
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@server ~]# umount /mnt  
[root@server ~]# cryptsetup close lala   # 关掉解密状态,也就是恢复加密状态
[root@server ~]# ll /dev/mapper/      # 查看到虚拟设备消失
total 0
crw------- 1 root root 10, 236 Nov  9 19:53 control
[root@server ~]# mount /dev/mapper/lala /mnt   # 想要重新挂载虚拟设备,发现挂载失败,虚拟设备是临时的,当关闭虚拟设备时,他就失效了
mount: special device /dev/mapper/lala does not exist
[root@server ~]# cryptsetup open /dev/vdb5 haha   # 我们重新解密,生成虚拟设备
Enter passphrase for /dev/vdb5: 
注:此处的密码是第一次加密时设置的密码

[root@server ~]# mount /dev/mapper/haha  /mnt   # 挂载成功
[root@server ~]# ls /mnt    # 重新查看到内容
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
3.加密设备的开机挂载
[root@server ~]# vim /etc/fstab    # 设定自动挂载
10 /dev/mapper/disk   /mnt    xfs   defaults 0   0

在这里插入图片描述

[root@server ~]# vim /etc/crypttab    # 编辑自动生成虚拟设备文件
1 disk    /dev/vdb5    /root/vdb5pass 

在这里插入图片描述

[root@server ~]# vim /root/vdb5pass    # 编辑密码文件 ,此处的密码不是随意的,而是磁盘加密设定的密码
1 ting@666
[root@server ~]# chmod 600  /root/vdb5pass  # 修改密码文件的权限
[root@server ~]# cryptsetup luksAddKey /dev/vdb5 /root/vdb5pass    # 把密码添加到luks加密中,即让密码文件生效
Enter any passphrase:      # 必须通过认证才能添加成功
[root@server ~]# reboot
[root@server ~]# df   # 查看到自动挂载	

在这里插入图片描述

4. 取消自动加密挂载
[root@server ~]# rm -fr /root/vdb5pass    # 删除密码文件
[root@server ~]# vim /etc/fstab           # 删除对/dev/vdb5的永久挂载设置
[root@server ~]# vim /etc/crypttab        # 删除文件内容
[root@server ~]# umount /mnt/           # 解除挂载
[root@server ~]# cryptsetup close disk    # 关闭解密
[root@server ~]# mkfs.xfs /dev/vdb5 -f    # 强制格式化操作
[root@server ~]# mount /dev/vdb5 /mnt   # 再次挂载,发现是一般的挂载,没有加密
5.关于加密过程中出现的问题,以及解决方案

(1)加密失败

[root@server ~]# cryptsetup luksFormat /dev/vdb5   # 当我想要给/dev/vdb5加密时,发现加密失败

在这里插入图片描述

[root@server ~]# df     # 结果发现/dev/vdb5挂载在/mnt下,也就是设备占用着	

在这里插入图片描述

[root@server ~]# umount /dev/vdb5    # 卸载掉就好了

(2)解密时,发现报错

[root@server ~]# cryptsetup open /dev/vdb5 haha  # 当我想要解密时,发现报错,
Enter passphrase for /dev/vdb5: 
Cannot use device /dev/vdb5 which is in use (already mapped or mounted).
[root@server ~]# mount -a       # 检测是否设备处于挂载状态
[root@server ~]# dmsetup ls     # 显示当前的device mapper的信息
lala	(252:0)
[root@server ~]# dmsetup remove lala    # 删除lala设备
[root@server ~]# dmsetup status   # 再次显示当前的device mapper的信息,此时解密就不会报错了
No devices found	

(3)命令执行不了,注意此处命令的大小写

[root@server ~]# cryptsetup luksAddkey /dev/vdb5 /root/vdb5pass   # 出现这种情况一定是命令写错了

在这里插入图片描述

[root@server ~]# cryptsetup luksAddKey /dev/vdb5 /root/vdb5pass  # 这是正确的命令
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值