1

使用cryptmount创建加密镜像保存机密文件

 3 years ago
source link: https://www.lujun9972.win/blog/2018/02/08/%E4%BD%BF%E7%94%A8cryptmount%E5%88%9B%E5%BB%BA%E5%8A%A0%E5%AF%86%E9%95%9C%E5%83%8F%E4%BF%9D%E5%AD%98%E6%9C%BA%E5%AF%86%E6%96%87%E4%BB%B6/index.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用cryptmount创建加密镜像保存机密文件

cryptmount是一个创建、挂载和卸载加密镜像的工具,你可以用它来创建一个加密镜像并挂载到文件系统中,然后将机密文件存入其中,再卸载这个镜像,这样就能做到神不知、鬼不觉地保存机密文件了。

安装cryptmount

cryptmount是archlinux中的aur仓库中,因此可以通过下面命令来安装

yaourt -S cryptmount

但是在我在安装过程中会提示无法下载cryptmount的源码包,需要修改PKGBUILD中的 source 的地址。

我将之改成了 https://netix.dl.sourceforge.net/project/cryptmount/cryptmount/cryptmount-5.2/cryptmount-5.2.3.tar.gz

安装好后会在 /usr/bin 下多出一个 cryptmount 文件

配置cryptmount

使用root修改 /etc/cryptmount/cmtab,加入下面内容

SecureImage {                               #配置项名称
    dev=/home/lujun9972/SecureImage.img     #加密镜像的目录,必要
    dir=/mnt/crypt                          #镜像挂载的路径
    fstype=ext4                             #文件系统类型,必要
    mountoptions=defaults                   #挂载选项
    cipher=aes                              #加密算法
    keyfile=/etc/cryptmount/SecureImage.key #密钥文件,必要
    keyformat=builtin                       #密钥的管理策略
}

具体关于 cmtab 的格式说明,可以运行 man 5 cmtab

创建镜像文件

使用 dd 创建一个镜像文件:

dd if=/dev/zero of=/home/lujun9972/SecureImage.img bs=1M count=128

这里我创建了一个128M的镜像文件,路径为 /home/lujun9972/SecureImage.img

注意,镜像文件的路径跟 cmtabdev 的值一致

创建密钥文件

sudo cryptmount --generate-key 32 SecureImage

然后输入密码.

注意这里的SecureImage是 cmtab 中的配置项名称

cryptmount就根据 cmtab 中cmtab的 keyfile 生成对应的密钥文件了

格式化镜像文件

首先根据镜像文件来创建设备文件,运行:

sudo cryptmount --prepare SecureImage

会创建一个设备文件: /dev/maper/SecureImage

然后使用 mke2fs 来创建文件系统

sudo mke2fs /dev/mapper/SecureImage

格式化完成后就可以释放该设备了

sudo cryptmount --release SecureImage

挂载和卸载加密镜像

首先当然是创建挂载点了:

sudo mkdir -p /mnt/crypt

然后挂载加密镜像

cryptmount -m SecureImage

然后输入密码就挂载成功了,注意这一步是无需root权限的哦~~

不过这个时候你会发现挂载点 /mnt/crypt 的所有者是root了,你需要改一下所有者

sudo chown lujun9972:lujun9972 /mnt/crypt/

这样下一次重新挂载则无需再修改所有者了.

卸载加密镜像则执行

cryptmount -u SecureImage

同样的,卸载加密镜像也是无需root权限的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK