感谢支持
我们一直在努力

RHEL6 cryptsetup 磁盘分区加密实验

LUKS是为Linux硬盘加密标准。通过提供一个标准的磁盘上的格式,它不仅方便之间分布的兼容性,而且还提供了多个用户密码的安全管理。必须首先对加密的卷进行解密,才能挂载其中的文件系统。


系统加密:【工具:cryptsetup;常用参数:luksFormat、luksOpen、luksClose、luksAddKey】【涉及文件:/etc/crypttab;自己创建密码文件】


注意:上述参数大小写不能乱用


好了,来试试这个强大的工具吧~


一、划出一个分区进行测试(fdisk)


—>这里以我的机子为例,因为我把空间全做成lvm了,所以分区就不一样啦,我们取300M做实验吧。


[root@www.linuxidc.com Desktop]# vgdisplay


  — Volume group —


  VG Name               vol0


  System ID            


  Format                lvm2


  Metadata Areas        2


  Metadata Sequence No  27


  VG Access             read/write


  VG Status             resizable


  MAX LV                0


  Cur LV                4


  Open LV               3


  Max PV                0


  Cur PV                2


  Act PV                2


  VG Size               55.22 GiB


  PE Size               32.00 MiB


  Total PE              1767


  Alloc PE / Size       928 / 29.00 GiB


  Free  PE / Size       839 / 26.22 GiB (还26G,够了吧,我只需要300M做实验)


  VG UUID               ZAGsPK-tIBO-08bd-RoMp-fPeC-Ei5l-x3asx6


 


[root@www.linuxidc.com Desktop]# lvcreate -L 300M -n testlv /dev/vol0


  Rounding up size to full physical extent 320.00 MiB


  Logical volume “testlv” created
—>ok,生成testlv分区,320M(跟PE有关)
 
二、分区加密(cryptsetup luksFormat,注意分区先不要格式化!)
[root@www.linuxidc.com Desktop]# cryptsetup luksFormat /dev/vol0/testlv


 


WARNING!


========


This will overwrite data on /dev/vol0/testlv irrevocably.


 


Are you sure? (Type uppercase yes): YES (注意,只能是大写字母)


Enter LUKS passphrase:  (输入密码)


Verify passphrase:  (确认密码)
三、好了,密码创建好了,我们解密了把它格式化一下吧,格式化了才能挂载呀。(不解密的话是不能对它进行操作的)
1、[root@www.linuxidc.com Desktop]# cryptsetup luksOpen /dev/vol0/testlv testlv


Enter passphrase for /dev/vol0/testlv:  (输入密码进行验证!)—>注意,命令最后写了一个映射的设备名“testlv”,来看看吧
[root@www.linuxidc.com Desktop]# ll /dev/mapper/testlv  /dev/vol0/testlv


lrwxrwxrwx. 1 root root 7 Aug  4 15:17 /dev/mapper/testlv -> ../dm-7


lrwxrwxrwx. 1 root root 7 Aug  4 15:17 /dev/vol0/testlv -> ../dm-6—>两个其实是同一个的。命令中必须得加上映射的名称,可以自己man一下cryptsetup
2、[root@www.linuxidc.com Desktop]# mkfs.ext4 /dev/mapper/testlv


mke2fs 1.41.12 (17-May-2010)


Filesystem label=


OS type: Linux


Block size=1024 (log=0)


Fragment size=1024 (log=0)


Stride=0 blocks, Stripe width=0 blocks


81600 inodes, 325632 blocks


16281 blocks (5.00%) reserved for the super user


First data block=1


Maximum filesystem blocks=67633152


40 block groups


8192 blocks per group, 8192 fragments per group


2040 inodes per group


Superblock backups stored on blocks:


 8193, 24577, 40961, 57345, 73729, 204801, 221185


 


Writing inode tables: done                           


Creating journal (8192 blocks): done


Writing superblocks and filesystem accounting information: done


 


This filesystem will be automatically checked every 37 mounts or


180 days, whichever comes first.  Use tune2fs -c or -i to override.—>ok,很快就格式化好了,那就新建一个目录挂载吧!
3、[root@www.linuxidc.com Desktop]# mkdir /testlv


[root@www.linuxidc.com Desktop]# mount /dev/mapper/testlv /testlv/


[root@www.linuxidc.com Desktop]# df -h /testlv/


Filesystem            Size  Used Avail Use% Mounted on


/dev/mapper/testlv    308M   11M  283M   4% /testlv


—>想要开机自动挂载?写道fstable里吧


[root@www.linuxidc.com Desktop]# vim /etc/fstab  (加上这一行)


/dev/mapper/testlv      /testlv                 ext4    defaults        0 0【就这样重启是不会挂载上的,为什么? 没有写入配置文件告诉系统我有加密分区。好,再继续测试】

四、写配置文件,让系统知道
[root@www.linuxidc.com Desktop]# vim /etc/crypttab (加入这一行,具体分区自己改)

testlv          /dev/sda5—>保存退出,重启,怎么样要求你输入密码了吧。乱敲几个字符试试?不行,不能进去。好了,输入正确的密码进去吧。
—>密码忘记了怎么办呢?没关系【ctrl+c】三次看看,^_^,不要求你输入了,进入系统~
—>df看一下,没挂载上吧?当然,你密码都没有输入,分区怎么会让你看到?
【注意:当你将该分区挂载成要备份检测时,即为1 2时,取消输入会出现错误,提示让你输入管理员密码进行维护,没关系,将新加进的一行注释掉再进去改吧】
 
五、系统检测到了,但是钥输入密码呀,必须得有人敲入密码,有没有一劳永逸的,每次自动从文见获取我的密码?(这样数据就没起到保护作用了哦,很不安全的,建议不要这样)但还是来测试测试吧^_^
1、新建密码文件,路径随意啦,这里我新建了密码文件 /root/passlv
[root@www.linuxidc.com Desktop]# touch /root/passlv2、修改配置文件,加入密码文件路径
[root@www.linuxidc.com Desktop]# vim /etc/crypttab (修改称这样,最后加入了密码文件的路径)testlv          /dev/sda5       /root/passlv
3、执行命令,把密码写入到我的密码文件吧,修改权限,保证所属为root,且只有root可以读写
[root@www.linuxidc.com Desktop]# echo mypasswd >/root/passlv


[root@www.linuxidc.com Desktop]# chown root /root/passlv


[root@www.linuxidc.com Desktop]# chmod 600 /root/passlv


[root@www.linuxidc.com Desktop]# cryptsetup luksAddKey /dev/vol0/testlv /root/passlv


Enter any passphrase:  (输入之前密码)—>注意这一步只能是对原分区进行密码生成,而不是映射路径 /dev/mapper/testlv,/etc/crypttab里边也必须是原分区。
—>我们看一下密码文件吧,对着吗?
[root@www.linuxidc.com Desktop]# cat /root/passlv


mypasswd—>ok,重启,不再输入密码了,登录成功,df看一下吧,有了没?
 
六、有问题了,密码明文的,还保密什么呀?干脆清空吧
[root@www.linuxidc.com Desktop]# echo >/root/passlv


[root@www.linuxidc.com Desktop]# cat /root/passlv 
—>没问题,改了,再做一个命令吧
[root@www.linuxidc.com Desktop]# cryptsetup luksAddKey /dev/vol0/testlv /root/passlv


Enter any passphrase:  (还是输入之前的密码)—>看看密码文件?
[root@www.linuxidc.com Desktop]# cat /root/passlv 
—>还是为空?管它呢,重启看看
—>竟然登录上了,没有输入密码?
—>呵呵,剩下的就自己测试吧,打字好累
【注意:为防止密码泄漏,可以在密码文件里写入任何内容,不会影响的。但是只要更改一次密码文件就必须执行一次命令cryptsetup luksAddKey,否则还是会出问题滴~】

赞(0) 打赏
转载请注明出处:服务器评测 » RHEL6 cryptsetup 磁盘分区加密实验
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏