RHEL6:创建并自动挂载加密分区

给硬盘加密,让别人偷了硬盘也拿不到种。

期望结果

1. 给某一硬盘分区加密,需要密码才能挂载访问;
2. 实现加密分区的自动挂载;

测试方法

1. 给加密分区安装好文件系统后,手动挂载分区;
2. 在分区中创建几个文件(如aaa,bbb,ccc);
3. 重启虚拟机,如果分区能正常挂载,应该能看到里面的aaa,bbb,ccc文件;
4. 删掉/etc/password (后面会创建),分区应该无法挂载,连/dev/mapper里的都不会出现该分区的入口。

实验环境

在虚拟机中进行测试。

增加一块硬盘

1
查看是否安装上硬盘

# 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文件,挂载失败。