纪念:站主于 2019 年 11 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程
步骤一:硬盘加密后的注意事项
1) 加密后不能直接挂载
2) 加密后硬盘丢失也不用担心数据被盗
3) 加密后必须做映射才能挂载
步骤二:生成一个新的分区
2.1 显示现有的分区
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
(补充:在这里是加了一个 vdb 硬盘用来进行分区并加密)
2.2 创建一个新的分区
# fdisk /dev/vdb
命令(输入 m 获取帮助):n
分区号 (1-8,默认 1):
起始 扇区 (0-20971440,默认 0):
Last 扇区 or +扇区 or +size{K,M,G,T,P} (0-20971440,默认 20971440):+5G
分区 1 已设置为 Linux native 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
2.2 显示新的分区
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
└─vdb1 253:17 0 5G 0 part
步骤三:创建逻辑卷
3.1 创建卷组
# vgcreate mysqldatavg /dev/vdb1
WARNING: sun signature detected on /dev/vdb1 at offset 508. Wipe it? [y/n]: y
Wiping sun signature on /dev/vdb1.
Physical volume "/dev/vdb1" successfully created.
Volume group "mysqldatavg" successfully created
3.2 创建逻辑卷
# lvcreate -n mysqldatalv -L 1G mysqldatavg
Logical volume "mysqldatalv" created.
步骤四:给逻辑卷加密
4.1 给逻辑卷加密
# cryptsetup luksFormat /dev/mapper/mysqldatavg-mysqldatalv
WARNING!
========
这将覆盖 /dev/mapper/mysqldatavg-mysqldatalv 上的数据,该动作不可取消。
Are you sure? (Type uppercase yes): YES
输入 /dev/mapper/mysqldatavg-mysqldatalv 的口令:
确认密码:
4.2 解锁逻辑卷
# cryptsetup luksOpen /dev/mapper/mysqldatavg-mysqldatalv mysqldata
输入 /dev/mapper/mysqldatavg-mysqldatalv 的口令:
(补充:这里的 mysqldata 是解锁后的硬件名称)
4.3 格式化逻辑卷
# mkfs.ext4 /dev/mapper/mysqldata
(注意:要先解锁了逻辑卷以后才能格式化逻辑卷)
4.4 锁住逻辑卷
# cryptsetup luksClose mysqldata
内容五:自动挂载加密逻辑卷
5.1 修改系统自动挂载文件
# vim /etc/fstab
添加以下内容:
......
/dev/mapper/mysqldata /var/lib/mysql ext4 defaults 0 0
5.2 创建一个映射器
# vim /etc/cypttab
添加以下内容:
......
mysqldata /dev/mapper/mysqldatavg-mysqldatalv /root/keyfile luks
(补充:这里的三个参数分别代表:虚拟设备名、真实设备、密码的存储文件)
5.3 创建随机密钥文件
# dd if=/dev/urandom of=/root/keyfile bs=1024 count=4
5.4 将密钥文件设为只读
# chmod 0400 /root/keyfile
5.5 将密码添到 luks 中,让密码立刻生效
# cryptsetup luksAddKey /dev/mysqldatavg/mysqldatalv /root/keyfile
输入任意已存在的口令:
5.6 测试挂载效果
5.6.1 挂载加密逻辑卷
# mount -a
5.6.2 测试加密效果
# df -h