Linux下磁盘加密——luks

Linux下磁盘加密

         LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,它不仅能通用于不同的Linux发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口令失密,我们可以迅速改变口令而无需重新加密真个硬盘。通过提供一个标准的磁盘上的格式,它不仅方便之间分布的兼容性,而且还提供了多个用户密码的安全管理。必须首先对加密的卷进行解密,才能挂载其中的文件系统。

工具: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

#


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Linux下的磁盘加密技术有很多种,其中比较常用的是LUKSLinux Unified Key Setup)。LUKSLinux磁盘加密的一种标准,它可以对整个磁盘或者分区进行加密,保护数据的隐私性和安全性。 LUKS的工作原理是,在磁盘上创建一个加密容器,所有数据都保存在这个容器内部,容器本身是通过一个密钥进行加密的。在使用磁盘前,需要输入这个密钥进行解密,才能访问容器内部的数据。 下面是在Linux下使用LUKS磁盘进行加密的步骤: 1. 创建一个空的分区或整个磁盘,可以使用fdisk或parted命令进行分区操作。 2. 使用cryptsetup命令对分区或整个磁盘进行加密操作,如下所示: ```shell $ sudo cryptsetup luksFormat /dev/sda1 ``` 这个命令会提示输入加密密码,确认后会将/dev/sda1这个分区进行加密加密完成后需要使用下面的命令来打开该加密分区: ```shell $ sudo cryptsetup luksOpen /dev/sda1 my_encrypted_partition ``` 这个命令会提示输入加密密码,输入正确的密码后,会将/dev/sda1解密并挂载到/my_encrypted_partition目录下。 3. 格式化解密后的分区,可以使用mkfs.ext4或其他格式化命令: ```shell $ sudo mkfs.ext4 /dev/mapper/my_encrypted_partition ``` 4. 挂载解密后的分区: ```shell $ sudo mount /dev/mapper/my_encrypted_partition /mnt/my_encrypted_partition ``` 至此,整个加密分区已经成功挂载到/mnt/my_encrypted_partition目录下了。 5. 卸载并关闭加密分区: ```shell $ sudo umount /mnt/my_encrypted_partition $ sudo cryptsetup luksClose my_encrypted_partition ``` 以上就是使用LUKS磁盘进行加密的基本步骤。需要注意的是,在使用LUKS加密分区时,一定要妥善保管好加密密码,否则数据将无法访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值