给硬盘加密,让别人偷了硬盘也拿不到种。
Contents
期望结果
1. 给某一硬盘分区加密,需要密码才能挂载访问;
2. 实现加密分区的自动挂载;
测试方法
1. 给加密分区安装好文件系统后,手动挂载分区;
2. 在分区中创建几个文件(如aaa,bbb,ccc);
3. 重启虚拟机,如果分区能正常挂载,应该能看到里面的aaa,bbb,ccc文件;
4. 删掉/etc/password (后面会创建),分区应该无法挂载,连/dev/mapper里的都不会出现该分区的入口。
实验环境
在虚拟机中进行测试。
增加一块硬盘
# ls /dev/ | grep vda
成功的话能显示vda。
用fdisk分区
# fdisk -cu /dev/vda
进入后能看到交互式的操作提示。
1. 按m查看菜单;
2. 按n新增一个分区;
3. 按p创建一个主分区;
4. 分区号1;
5. First cylinder,默认回车;
6. Last cylinder, 输入 +500M;
7. 按w写table并退出;
重新进入fdisk.
# fdisk -cu /dev/vda
按p,输出table,如果分区成功,应该能看见如下输出。
Disk /dev/vda: 8589 MB, 8589934592 bytes 16 heads, 63 sectors/track, 16644 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x773be5ef Device Boot Start End Blocks Id System /dev/vda1 1 1017 512536+ 83 Linux
用cryptsetup加密分区
# cryptsetup luksFormat /dev/vda1 WARNING! ======== This will overwrite data on /dev/vda1 irrevocably. Are you sure? (Type uppercase yes):
输入大写的YES,回车;
输入加密密码,回车;
再次输入密码,回车;
(这里密码设为 redhat )
用cryptsetup解密分区
# cryptsetup luksOpen /dev/vda1 feichashao
输入加密的密码,回车;
# ls /dev/mapper control feichashao
能看到feichashao已经有入口了。
给分区创建ext4文件系统(格式化)
# mkfs.ext4 /dev/mapper/feichashao
看到提示成功,文件系统就建立好了。
手动挂载加密分区
# mkdir /feichashao # mount /dev/mapper/feichashao /feichashao/ # df -h /dev/mapper/feichashao 483M 11M 448M 3% /feichashao
在分区上随便建立几个文件
# touch /feichashao/aaaaa /feichashao/bbbbb ls /feichashao/
能看到aaaaa,bbbbb文件,就说明加密分区挂载成功啦。
自动挂载加密分区
crypttab自动解密
1. 新建一个保存密码的文件, /etc/password
# vim /etc/password
里面写入加密分区的密码 redhat .
保存退出。
2. 增加Key file
# cryptsetup luksAddKey /dev/vda1 /etc/password
密码输入 redhat .
3. 新建 /etc/crypttab 文件。
# vim /etc/crypttab
文件里写三列: name device /etc/password
我这里写:
feichashao /dev/vda1 /etc/password
fstab自动挂载
编辑 /etc/fstab
# vim /etc/fstab
fstab的格式为:
Device, mount point, filesystem type, mount options, freq, passno
在文件的最后一行加上
/dev/mapper/feichashao /feichashao ext4 defaults 0 0
保存,退出,重启。
测试
重启计算机后,检查加密分区是否有自动挂载。
# df -h
输出存在一行
/dev/mapper/feichashao 483M 11M 448M 3% /feichashao
说明已经挂载上了。
查看加密分区内的文件
# ls /feichashao
能看到刚刚创建的aaaaa, bbbbb文件,成功!
接下来,可以尝试删除密码文件,再次测试能否挂载。
# > /etc/password # reboot
重启后查看挂载.
# df -h
发现/dev/mapper/feichashao 并没有挂载;
# ls /feichashao
没有发现aaaaa, bbbbb文件,挂载失败。