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

用luks方式对磁盘进行加密以及加密磁盘的自动挂载的更多相关文章

  1. iOS代码加密常用加密方式

    iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...

  2. linux:磁盘的分割、检验、格式化与挂载

    新增一颗磁碟: 1.对磁碟进行分割,以建立可用的partition 2.对该分割槽partition进行格式化(format),以建立系统可用的filesystem 3.若要仔细点,可对刚刚建立的fi ...

  3. 在GNU/Linux下使用命令行自动挂载与卸载USB磁盘

    在命令行环境下如果每次都是靠手动敲入mount与umount命令来挂载与卸载USB磁盘是件很麻烦的事情.尤其是mount命令的参数非常多.比如,磁盘的分区类型(vfat.ntfs等),挂载的目录节点, ...

  4. Linux根据UUID自动挂载磁盘分区

    一般服务器都有多个硬盘分区,在重启后,这些分区的逻辑位置加载时可能会发生变动,如果使用传统的设备名称(例如:/dev/sda)方式挂载磁盘,就可能因为磁盘顺序变化而造成混乱. Linux环境中每个Bl ...

  5. linux磁盘管理系列一:磁盘配额管理

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  6. Linux 磁盘管理(分区、创建文件系统、挂载)

    Linux设备文件可以分为两类 b : 按块为单位,随机访问设备(块设备文件)  如:硬盘 c : 按字符为单位,线性设备(字符设备文件)  如:键盘 设备文件位于/dev下 主设备号(major n ...

  7. linux中磁盘分区以及如何将磁盘挂载到系统中

    fdisk 分区 fdisk /dev/sdb -p查看当前分区-t 改分区号-w将分区表写进磁盘-n创建分区 -p主分区 -e拓展分区 partprobe 让内核更新分区信息cat /proc/pa ...

  8. Linux如何根据UUID自动挂载磁盘分区

    一般服务器都有多个硬盘分区,在重启后,这些分区的逻辑位置加载时可能会发生变动,如果使用传统的设备名称(例如:/dev/sda)方式挂载磁盘,就可能因为磁盘顺序变化而造成混乱. Linux环境中每个Bl ...

  9. (转)Linxu磁盘体系知识介绍及磁盘介绍

    Linxu磁盘体系知识介绍及磁盘介绍 系统管理 / 2017-01-14 / 0 条评论 / 浴春风 Linu磁盘设备基础知识指南磁盘速度快具备的条件: 1)主轴的转速5400/7200/10000/ ...

随机推荐

  1. RAID(独立磁盘冗余阵列)简介

    RAID(独立磁盘冗余阵列) 在大数据技术出现之前,人们就需要面对这些关于存储的问题,对应的解决方案就是RAID技术. RAID(独立磁盘冗余阵列)技术主要是为了改善磁盘的存储容量,读写速度,增强磁盘 ...

  2. maven的pom.xml用<exclusion>解决版本问题

    用maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,但同时也带来了同一个jar会被下载了不同版本的问题,好在pom的配置里面允许用<exclusion& ...

  3. 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 上)

    大家好,今天的内容,我将和大家一起聊聊 Vue 路由相关的知识,如果你以前做过服务端相关的开发,那你一定会对程序的URL结构有所了解,我没记错的话也是路由映射的概念,需要进行配置. 其实前端这些框架的 ...

  4. AOP中获取自定义注解的参数值

      目录 一.利用注解实现AOP的基本流程 1.1.创建一个注解,用来注解切点(pointcut) 1.2.创建一个service,使用上面定义的注解来指定切点 1.3.创建Aspect,增加业务逻辑 ...

  5. Layui 时间转换时间戳

    我比较喜欢用Layui,当然也遇到一些坑!例如:绑定时间的时候是那种 是这种13位数据的日期,如果不经过转换是不能正常显示的,当然这是我遇到的问题不知道你们有没有遇到,后来我也是经过了解才知道怎么回事 ...

  6. pom.xml管理jar包——安全性框架配置文件

    <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> &l ...

  7. 2019 学霸君java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.学霸君等公司offer,岗位是Java后端开发,因为发展原因最终选择去了学霸君,入职一年时间了,也成为了面试官 ...

  8. English--音标拼读

    English|音标拼读 音标拼读主要内容是,如何使用音标进行单词的拼读,并且会有相应的语音现象,最关键的还是自己多加练习,多听~ 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识 ...

  9. webpack详细介绍以及配置文件属性!

    1.webpack简单介绍 (1)webpack是一个用于实现前端模块化开发工具,可帮助我们自动打包编译成浏览器能够识别的代码 :同时支持commonjs规范 以及es6的import规范: 同时具备 ...

  10. 前端Q的小小小里程碑

    很多关注我的人都不太了解前端Q这个名字的由来,这篇文章就来讲讲前端Q的前世今生,顺便送大大福利(文末有惊喜),哈哈-- 恭喜!前端Q总用户数突破千啦~~ 前端Q前世 前端Q这个公众号,其实很早很早的时 ...