虚拟机磁盘加密之LUKS

LUKS是一种基于device mapper机制的加密方式。使用加密磁盘前要先mapper映射,映射时需要输入密码,写入和读取磁盘时不需要再输入密码。LUKS可以选择不同的加密算法,也可以开发使用自己的加密算法。本文使用的虚拟机磁盘就是LUKS的加密磁盘。

1. 创建luks格式的加密磁盘

# MYSECRET=`printf %s "123456" | base64`
# qemu-img create -f luks --object secret,data=$MYSECRET,id=sec0,format=base64,qom-type=secret -o key-secret=sec0 encrypt.luks 1G

2. 在本地创建一个秘钥xml secret.xml

<secret ephemeral='no' private='yes'>
    <uuid>7d195d98-6a06-4bb9-a0e9-6a2fde302f31</uuid>
</secret>

注:uuid项可以没有,那么将随机生成一个uuid

3. 定义一个libvirt的secret

# virsh secret-define secret.xml 
Secret 7d195d98-6a06-4bb9-a0e9-6a2fde302f31 created

4. 给secret设置密码值(这里的密码就是给磁盘加密时使用的密码123456)

# virsh secret-set-value 7d195d98-6a06-4bb9-a0e9-6a2fde302f31 $MYSECRET

注:密值是base64的(MYSECRET=`printf %s "123456" | base64`)

注:产生的secret以及密码在/etc/libvirt/secrets/中存在

5. 在虚拟机xml文件的disk段中加入secret

<disk device="disk" type="file">
  <driver name="qemu" type="raw" />
  <source file="/tmp/encrypt.luks" />
  <target bus="virtio" dev="vdb" />
  <encryption format='luks'>
    <secret type='passphrase' uuid='7d195d98-6a06-4bb9-a0e9-6a2fde302f31'/>
  </encryption>
</disk>

6. 启动虚拟机。虚拟启动后就是使用的加密的磁盘。

7. 磁盘加密虚拟机的迁移

在迁移之前要在远程libvirt建立相同的secret。远程建立secret的方式有两种:使用libvrit远程rpc的方式执行secret-define和secret-set-value ,或者直接在目标主机上执行上述过程。

注:

如果不在hypervior层使用secret-set-value进行解密,即在虚拟机xml的disk段中不添加encryption。那就需要到虚拟机中挂载磁盘时输入密码:


原文发布于微信公众号 - 虚拟化云计算(openstack_openstack)

原文发表时间:2018-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏农夫安全

【补充】任意密码重置姿势

跟第三个有点类似,只判断了接收端和验证码是否一致,未判断接收端是否和用户匹配,因此修改接收端可达到重置目的

12520
来自专栏北京马哥教育

5分钟教你学会Django系统错误监控

话不多说,直入正题。 先上图,看一下监控的效果。 如下是监控我们网站系统错误的邮件。包含了请求的url地址,以及详细的异常信息。 一、监控所有的request...

38260
来自专栏行者常至

Git 配置 ssh 公钥

3.打开上面已经生成的的密钥文件,并拷贝 vim /d/Users/qubianzhong/.ssh/id_rsa.pub

61710
来自专栏虚拟化云计算

qemu-libvirt-磁盘加密

# qemu-img convert -f qcow2 -O qcow2 -o encryption template.img encry.qcow2

53080
来自专栏北京马哥教育

批量管理自动化运维100台小规模服务器

---- 目录 1.脚本背景介绍 2.脚本技术需求分析 2.1 SSH免登陆认证 2.2 Expect实现key分发 2.2 PSSH家族命...

2.6K150
来自专栏Django Scrapy

python3 邮箱相关邮箱的服务

邮箱的服务 POP 协议 邮局协议(Post Office Protocol,简称POP),POP是第一个用于下载邮件的协议,POP 协议的最新版本是第三版,也...

433110
来自专栏吴伟祥

配置Tomcat使用https协议(配置SSL协议) (http自动跳转到https)

15120
来自专栏Java学习123

windows环境下 curl 安装和使用

41160
来自专栏云计算教程系列

如何在Debian 9上设置SSH密钥

SSH或安全shell是用于管理服务器和与服务器通信的加密协议。使用Debian服务器时,您可能会将大部分时间花在通过SSH连接到服务器的终端会话中。

43630
来自专栏Laoqi's Linux运维专列

设置grub密码

14930

扫码关注云+社区

领取腾讯云代金券