您的位置:首页 > 运维架构 > Linux

Linux的磁盘加密

2017-05-23 11:46 253 查看

Linux下磁盘加密

LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,它不仅能通用于不同的Linux发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口令失密,我们可以迅速改变口令而无需重新加密真个硬盘。通过提供一个标准的磁盘上的格式,它不仅方便之间分布的兼容性,而且还提供了多个用户密码的安全管理。必须首先对加密的卷进行解密,才能挂载其中的文件系统。LUKS是Linux下块设备加密的标准组件, 不同于文件系统级别的eCryptfs等, LUKS更底层, 也更方便. 用LUKS建立加密分区很简单, 只需安装cryptsetup, 然后执行下面的命令按提示设置密码就可以了, 建议不加额外参数, 选用默认的加密算法, 效率不会差太多, 但是更安全. 工具:cryptsetup(默认已经安装) 常用参数:luksFormat、luksOpen、luksClose、luksAddKey 使用cryptsetup对分区进行了加密后,这个分区就不再允许直接挂载。LUKS也是一种基于device mapper 机制的加密方案。如果要使用这个分区,必须对这个分区做一个映射,映射到/dev/mapper这个目录里去,我们只能挂载这个映射才能使用。然而做映射的时候是需要输入解密密码的。 Crypsetup工具加密的特点:① 加密后不能直接挂载② 加密后硬盘丢失也不用担心数据被盗③ 加密后必须做映射才能挂载 步骤:1. 创建分区并加密分区2. 映射分区3. 格式化分区并挂载使用4. 关闭映射分区 创建一个磁盘分区/dev/sdb1,不进行格式化
1、 加密分区
# cryptsetup -v -y -c aes-cbc-plain luksFormat /dev/sdb1

WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES --> 注意这里必须是大写的YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
#
2、 映射分区
# cryptsetup luksOpen /dev/sdb1 sx_disk //把sdb1映射为sx_disk
Enter passphrase for /dev/sdb1:
# ll -d /dev/mapper/sx_disk
lrwxrwxrwx. 1 root root 7 6月 25 03:24 /dev/mapper/sx_disk -> ../dm-0
# cryptsetup status /dev/mapper/sx_disk //查看映射分区状态
/dev/mapper//dev/mapper/sx_disk is active.
type: LUKS1
cipher: aes-cbc-plain
keysize: 256 bits
device: /dev/sdb1
offset: 4096 sectors
size: 16767701 sectors
mode: read/write
#
3、挂载使用
# mkdir /mnt/sx_disk
# mkfs.ext3 /dev/mapper/sx_disk
# mount /dev/sdb1 /mnt/sx_disk/ //直接挂载是不可以的
mount: unknown filesystem type 'crypto_LUKS'
# mount /dev/mapper/sx_disk /mnt/sx_disk/ //挂载映射设备,挂载成功
4、关闭映射,先卸载后关闭
# umount /mnt/sx_disk/
# cryptsetup luksClose sx_disk //关闭映射
# ll /dev/mapper/ //映射设备已经不见了
总用量 0
crw-rw----. 1 root root 10, 58 6月 25 03:01 control
#
5、设置开机自动挂载生成密钥文件,如果想开机时手动输入密码可以不生成
# touch /root/cryptpasswd
# cryptsetup luksAddKey /dev/sdb1 /root/cryptpasswd
Enter any passphrase:
# cat /root/cryptpasswd //直接查看密钥为空
#
设置开机启动
# vim /etc/crypttab
# cat /etc/crypttab
sx_disk /dev/sdb1 /root/cryptpasswd
//sx_disk为映射名称,/dev/sdb1是加密设备设备,/root/cryptpasswd为密码文件,如果想开机手动输入密码,密码文件处空着即可
# vim /etc/fstab
# tail -1 /etc/fstab
/dev/mapper/sx_disk /mnt/sx_disk ext4 defaults 0 0
#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 磁盘加密 LUKS