您现在的位置是:亿华云 > IT科技类资讯
一篇学会 Kvm 虚拟机磁盘使用 Luks 加密
亿华云2025-10-08 21:00:06【IT科技类资讯】4人已围观
简介kvm qcow2磁盘加密关于luks加密LUKS 实现了一种独立于平台的标准磁盘格式,用于各种工具。LUKS 用于加密块设备。加密设备的内容是任意的,因此可以加密任何文件系统,包括交换分区。加密卷的
kvm qcow2磁盘加密
关于luks加密LUKS 实现了一种独立于平台的篇学盘使标准磁盘格式,用于各种工具。虚拟LUKS 用于加密块设备。机磁s加加密设备的篇学盘使内容是任意的,因此可以加密任何文件系统,虚拟包括交换分区。机磁s加加密卷的篇学盘使开头有一个未加密的标头,它允许存储多达 8 个 (LUKS1) 或 32 个 (LUKS2)加密密钥以及密码类型和密钥大小等加密参数。虚拟此标头的机磁s加存在是 LUKS 和普通 dm-crypt 之间的主要区别,因为标头允许使用多个不同的篇学盘使密码短语,并且能够轻松更改和删除它们。虚拟但是机磁s加,如果标头丢失或损坏,篇学盘使设备将不再可解密。虚拟LUKS (Linux Unified Key Setup)为提供了一个标准的机磁s加磁盘加密格式,使得它不仅兼容性高,能通用于不同的 Linux 发行版本,还支持多用户/口令,并且由于它的加密密钥独立于口令,所以即使口令失密,b2b信息网我们也无需重新加密整个硬盘,只需要及时的改变口令即可重获安全。
luks加密kvm虚拟机磁盘的实现在libvirt 4.5版本之前,除了luks加密之外,还支持qcow加密的。qcow磁盘加密。
qemu-img convert -O qcow2 --object secret,id=sec0,data=123456 -o encryption=on,encrypt.key-secret=sec0 -f qcow2 test.qcow2 fw-encry.qcow2加密格式default和qcow可能不再用于创建加密卷。在 QEMU 中使用 qcow 加密卷在 QEMU 2.3 中开始逐步淘汰。
下面还是主要来介绍怎么使用luks来实现磁盘加密吧 将现有的虚拟机磁盘转为加密的磁盘,如果直接创建加密磁盘的新虚拟机不需要执行第二步转换磁盘的操作。
创建大小为20G的luks空磁盘。qemu-img create -f luks --object secret,data=123,id=sec0 -o key-secret=sec0 fw.luks 20G将要加密的qcow2磁盘转换为luks磁盘,目标磁盘不存在将无法转换。qemu-img convert --target-image-opts \
> --object secret,data=123,id=sec0 -f qcow2 fw.qcow2 -n \
> driver=luks,file.filename=fw.luks,key-secret=sec0创建一个secret xml文件,不添加UUID会自动生成。vim volume-secret.xml
产生的secret以及base64的密码在/etc/libvirt/secrets/中存在。
virsh secret-define volume-secret.xml给secret设置密码值。# MYSECRET=`printf %s "123" | base64`
# virsh secret-set-value dc057b2b-6a7d-4dba-b76e-37a458448765 $MYSECRET
Secret value set
编辑虚拟机disk段加入secret的字段。
</disk>对于卷创建,可以指定用于加密 luks 卷的服务器托管加密算法。可以为此目的提供以下两个可选元素cipher和ivgen。支持哪些算法取决于管理程序。使用 qemu-img 创建卷时,存储驱动后端使用的默认算法是 aes-256-cbc,使用 essiv 生成初始化向量,使用 sha256 哈希算法生成密码和初始化向量。官网例子,只做参考。
之后启动虚拟机就可以了。
virsh start vm如果想把加密的磁盘拷贝到其他宿主机上使用,直接执行上面的创建secret之后的操作就可以了。
注意:设置的密码一定要与之前宿主机定义的密码一样。
如果我们把虚拟机加密引导磁盘的encryption字段去掉,不在虚拟化层进行解密,会怎么样呢,会找不到磁盘引导。
</encryption>如果数据盘不在虚拟化层解密,将不能直接挂载。
LUKS 也是一种基于 device mapper(dm) 机制的加密方案。如果要使用加密后的分区,亿华云计算就必须对加密后的分区做一个映射,映射到 /dev/mapper 这个目录下。映射完成之后,我们也只能挂载这个映射来进行使用,并且在做映射的时候还需要输入加密分区的加密密码。我们使用Cryptsetup工具对数据盘做映射,映射文件将放到 /dev/mapper 目录中。需要输入之前磁盘加密的密码。
cryptsetup luksOpen /dev/vdb fwkvm使用ceph rbd磁盘加密
定义secret生成secret所有ceph节点都要执行 生成secret。
cd /etc/libvirt/qemu
cat > secret.xml <
EOF定义secret,生成的id号要记下来。root@node1:/etc/libvirt/qemu# virsh secret-define --file secret.xml
Secret 01a0ba00-f277-48bb-b937-9001ec91f53e created
root@node2:/etc/libvirt/qemu# virsh secret-define --file secret.xml
Secret 533b5d06-0525-4da3-bddf-907f70c0a31b created
root@node3:/etc/libvirt/qemu# virsh secret-define --file secret.xml
Secret 1740698e-abb9-4502-b801-1ede074f1ce1 created获取client.libvirt密钥并将密钥字符串保存到文件中。三台都执行下面的命令。
ceph auth get-key client.libvirt | tee client.libvirt.key设置secret的密码。root@node1:/etc/libvirt/qemu# virsh secret-set-value --secret 01a0ba00-f277-48bb-b937-9001ec91f53e --base64 $(cat client.libvirt.key)
Secret value set
root@node2:/etc/libvirt/qemu# virsh secret-set-value --secret 533b5d06-0525-4da3-bddf-907f70c0a31b --base64 $(cat client.libvirt.key)
Secret value set
root@node3:/etc/libvirt/qemu# virsh secret-set-value --secret 1740698e-abb9-4502-b801-1ede074f1ce1 --base64 $(cat client.libvirt.key)
Secret value set编辑虚拟机配置文件。
启动虚拟机
定义并启动虚拟机virsh define vm.xml
virsh start vm很赞哦!(7)
相关文章
- 用户邮箱的静态密码可能已被钓鱼和同一密码泄露。在没有收到安全警报的情况下,用户在适当的时间内不能更改密码。在此期间,攻击者可以随意输入帐户。启用辅助身份验证后,如果攻击者无法获取移动电话动态密码,他将无法进行身份验证。这样,除非用户的电子邮件密码和手机同时被盗,否则攻击者很难破解用户的邮箱。
- 用python爬虫抓站的一些技巧总结
- Python人脸识别优秀教材典范,40行代码搭建人脸识别系统!
- 一次和公司技术总监的聊天……
- cm域名有什么独特之处?新人要了解cm域名哪些?
- 不谈面试题,谈谈面试官喜欢见到的特质!
- Koa2 之文件上传下载
- 企业应用的容器化改造之道——Tech Neo 技术沙龙第十九期
- 4.选择顶级的域名注册服务商
- 用Python爬取各Android市场应用下载量(3分钟学会)