Linux: 创建加密虚拟磁盘 cryptsetup

一、安装工具 cryptsetup

sudo yum install cryptsetup

# Ubuntu 系统执行如下命令
# sudo apt-get install cryptsetup

二、创建一个虚拟磁盘文件

dd if=/dev/zero of=secDisk.img bs=1G count=10

这个命令的意思就是从“黑洞”文件读取0数据,写入当前目录中的 secDisk.img 文件中。写入的数据大小是 1G * 10 个,也就是说secDisk.img 文件的大小是 10G。

所以这个命令会创建一个10G 大的虚拟磁盘文件,文件名为 secDisk.img,位置是当前目录。

三、创建 dm-crypt LUKS 容器

在刚创建的虚拟磁盘文件 secDisk.img 上创建 LUKS 容器。

cryptsetup -y luksFormat secDisk.img

四、打开容器并创建 mapping

cryptsetup luksOpen secDisk.img sec_disk_mapping

这个命令会创建一个 mapping 文件:/dev/mapper/sec_disk_mapping

可以通过下面命令查看这个 mapping 文件的状态:

$ ls /dev/mapper/sec_disk_mapping -lh
brw-rw---- 1 root disk 253,   5 Jan 19 06:43 sec_disk_mapping

$ cryptsetup -v status /dev/mapper/sec_disk_mapping
/dev/mapper/sec_disk_mapping is active.
  type:    LUKS1
  cipher:  aes-xts-plain64
  keysize: 256 bits
  key location: dm-crypt
  device:  /dev/loop1
  loop:    /home/data/test-sec/secDisk.img
  sector size:  512
  offset:  4096 sectors
  size:    2093056 sectors
  mode:    read/write
Command successful.

五、在虚拟磁盘上创建文件系统

创建文件系统:

mkfs.ext4 /dev/mapper/sec_disk_mapping

如果系统中找不到命令 mkfs.ext4,可以使用下面命令进行安装:

sudo yum install -y e2fsprogs
# Ubuntu 系统使用如下命令安装
#sudo apt-get install -y e2fsprogs

六、挂载文件系统

mkdir encryptedDisk
mount /dev/mapper/sec_disk_mapping $(pwd)/encryptedDisk

七、修改文件 owner

如果当前不是超级用户,可能没有对磁盘的读写权限。所以需要修改虚拟磁盘的 owner:

cd $(pwd)/encryptedDisk # 进入刚刚挂载的磁盘文件目录中
chown username:username . -R

username 就是你自己的用户名。

到目前为止,虚拟磁盘就算创建完成了,并且可以在其中进行读写操作。

八、卸载虚拟磁盘

虚拟加密磁盘的用途就是为了加密,如果这么一只挂载着,那么就失去了加密的意义。所以,在使用完这个虚拟磁盘后,需要及时的将它 umount ,并将它 luksClose 掉。

卸载虚拟磁盘的过程如下:

8.1、先 umount 虚拟磁盘

umount /dev/mapper/sec_disk_mapping

8.2、然后关闭 LUKS

cryptsetup luksClose /dev/mapper/sec_disk_mapping

这样就把虚拟磁盘关闭了。

如果想要再次打开这个虚拟磁盘,需要先执行第四步的 luksOpen 操作,再执行第六步的 mount 操作,然后就可以再次使用加密的虚拟磁盘了。


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux下的磁盘加密技术有很多种,其中比较常用的是LUKS(Linux Unified Key Setup)。LUKS是Linux磁盘加密的一种标准,它可以对整个磁盘或者分区进行加密,保护数据的隐私性和安全性。 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加密分区时,一定要妥善保管好加密密码,否则数据将无法访问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值