为了数据的安全,我们有时候需要对分区进行加密,linux有一款对分区加密的工具luks,下面用虚拟机实验一下:
1、新建分区,我这里是/dev/sdb6
2、设置密码:
# cryptsetup luksFormat /dev/sdb6
WARNING!
========
This will overwrite data on /dev/sdb6 irrevocably.
Are you sure? (Type uppercase yes): YES ---------一定要大写
Enter LUKS passphrase:
Verify passphrase
这个时候我们的分区已经被加密,我们要使用必须先解密
这里通过luksOpen来进行解密 后面‘pass’可以写随意的名字,然后会将加密卷/dev/vda5解锁为/dev/mapper/pass,之后,我们用的都是/dev/mapper/pass了,而不是/dev/vda5
3、解锁:
# cryptsetup luksOpen /dev/sdb6 pass
Enter passphrase for /dev/sdb6:
# ll /dev/mapper/pass
lrwxrwxrwx. 1 root root 7 11月 28 15:05 /dev/mapper/pass -> ../dm-2
4、然后对解密的卷进行格式化:
# mkfs.ext4 /dev/mapper/pass
5、接下来把分区挂载到我们的文件系统上:
# mkdir /mnt/secret
# mount /dev/mapper/pass /mnt/secret/
用df命令查看下:
# df -TH
文件系统 类型 容量 已用 可用 已用%% 挂载点
/dev/sda7 ext4 47G 6.4G 38G 15% /
tmpfs tmpfs 994M 246k 994M 1% /dev/shm
/dev/sda1 ext4 102M 32M 65M 33% /boot
/dev/sda3 ext4 16G 792M 14G 6% /home
/dev/sda2 ext4 31G 1.3G 29G 5% /usr/local
/dev/sda5 ext4 11G 1.2G 8.7G 12% /var
/dev/sr0 iso9660 3.8G 3.8G 0 100% /media/CentOS_6.3_Final
/dev/mapper/pass
ext4 1.1G 19M 964M 2% /mnt/secret
# echo test >/mnt/secret/a.txt
6、当我们用完我们的加密分区后,就可以卸载它然后再锁住,这样数据就又会保护起来
我们要先卸载我们挂上去的分区,然后再锁住,如果不能锁住,可以尝试下先把挂载目录删了
# cryptsetup luksClose pass
Device pass is busy.
[root@ns1 ~]# umount /mnt/secret/
[root@ns1 ~]# cryptsetup luksClose pass
]# ll /dev/mapper/pass
ls: 无法访问/dev/mapper/pass: 没有那个文件或目录
如果下次先再用,就重复luksOpen,再挂载就可以了
7、至此基本上可以满足要求了,如果想要让它开机挂载可以写到/etc/fstab中(实际情况不常见):
/dev/mapper/pass /mnt/secret ext4 defaults 0 0
编辑/etc/crypttab
vi /etc/crypttab
pass /dev/sdb6 ------ 这样子开机会要求输入密码
8、如果开机不想输入密码,可以先将密码写在密码文件中,如:
]# echo -n "123" > /root/pass
#vi /etc/crypttab
pass /dev/sdb6 /root/pass
# chown root /roo/pass
# chmod 600 /root/pass
# cryptsetup luksAddKey /dev/sdb6 /root/pass
要求输入密码
完成
联系客服