• 用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 # 这是正确的命令

  • 相关阅读:
    一段代码让你了解匿名函数的来龙去脉
    橡皮擦背景色橡皮擦魔术橡皮擦
    flv播放器
    测试面试题01
    java中堆和栈的区别
    经典javaThead 生产者 消费者
    判断一个点是否在三个点组成的三角形内 java 代码 面试经典
    软件项目管理面试题
    java中的位运算
    真正的JDBC java代码
  • 原文地址:https://www.cnblogs.com/guarderming/p/11957780.html
Copyright © 2020-2023  润新知