新聞中心
kvm qcow2磁盤(pán)加密
關(guān)于luks加密
LUKS 實(shí)現(xiàn)了一種獨(dú)立于平臺(tái)的標(biāo)準(zhǔn)磁盤(pán)格式,用于各種工具。LUKS 用于加密塊設(shè)備。加密設(shè)備的內(nèi)容是任意的,因此可以加密任何文件系統(tǒng),包括交換分區(qū)。加密卷的開(kāi)頭有一個(gè)未加密的標(biāo)頭,它允許存儲(chǔ)多達(dá) 8 個(gè) (LUKS1) 或 32 個(gè) (LUKS2)加密密鑰以及密碼類(lèi)型和密鑰大小等加密參數(shù)。此標(biāo)頭的存在是 LUKS 和普通 dm-crypt 之間的主要區(qū)別,因?yàn)闃?biāo)頭允許使用多個(gè)不同的密碼短語(yǔ),并且能夠輕松更改和刪除它們。但是,如果標(biāo)頭丟失或損壞,設(shè)備將不再可解密。LUKS (Linux Unified Key Setup)為提供了一個(gè)標(biāo)準(zhǔn)的磁盤(pán)加密格式,使得它不僅兼容性高,能通用于不同的 Linux 發(fā)行版本,還支持多用戶(hù)/口令,并且由于它的加密密鑰獨(dú)立于口令,所以即使口令失密,我們也無(wú)需重新加密整個(gè)硬盤(pán),只需要及時(shí)的改變口令即可重獲安全。

十余年的郊區(qū)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整郊區(qū)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“郊區(qū)網(wǎng)站設(shè)計(jì)”,“郊區(qū)網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
luks加密kvm虛擬機(jī)磁盤(pán)的實(shí)現(xiàn)
在libvirt 4.5版本之前,除了luks加密之外,還支持qcow加密的。qcow磁盤(pán)加密。
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可能不再用于創(chuàng)建加密卷。在 QEMU 中使用 qcow 加密卷在 QEMU 2.3 中開(kāi)始逐步淘汰。
下面還是主要來(lái)介紹怎么使用luks來(lái)實(shí)現(xiàn)磁盤(pán)加密吧 將現(xiàn)有的虛擬機(jī)磁盤(pán)轉(zhuǎn)為加密的磁盤(pán),如果直接創(chuàng)建加密磁盤(pán)的新虛擬機(jī)不需要執(zhí)行第二步轉(zhuǎn)換磁盤(pán)的操作。
創(chuàng)建大小為20G的luks空磁盤(pán)。
qemu-img create -f luks --object secret,data=123,id=sec0 -o key-secret=sec0 fw.luks 20G
將要加密的qcow2磁盤(pán)轉(zhuǎn)換為luks磁盤(pán),目標(biāo)磁盤(pán)不存在將無(wú)法轉(zhuǎn)換。
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
創(chuàng)建一個(gè)secret xml文件,不添加UUID會(huì)自動(dòng)生成。
vim volume-secret.xml
92f35b9e-c845-47e1-b5a6-f2036a706866
Super secret name of my first puppy
/home/kvm/images/fw.luks
定義secret。
產(chǎn)生的secret以及base64的密碼在/etc/libvirt/secrets/中存在。
virsh secret-define volume-secret.xml
給secret設(shè)置密碼值。
# MYSECRET=`printf %s "123" | base64`
# virsh secret-set-value dc057b2b-6a7d-4dba-b76e-37a458448765 $MYSECRET
Secret value set
編輯虛擬機(jī)disk段加入secret的字段。
對(duì)于卷創(chuàng)建,可以指定用于加密 luks 卷的加密算法??梢詾榇四康奶峁┮韵聝蓚€(gè)可選元素cipher和ivgen。支持哪些算法取決于管理程序。使用 qemu-img 創(chuàng)建卷時(shí),存儲(chǔ)驅(qū)動(dòng)后端使用的默認(rèn)算法是 'aes-256-cbc',使用 'essiv' 生成初始化向量,使用 'sha256' 哈希算法生成密碼和初始化向量。官網(wǎng)例子,只做參考。
twofish.luks
5
/var/lib/libvirt/images/demo.luks
之后啟動(dòng)虛擬機(jī)就可以了。
virsh start vm
如果想把加密的磁盤(pán)拷貝到其他宿主機(jī)上使用,直接執(zhí)行上面的創(chuàng)建secret之后的操作就可以了。
注意:設(shè)置的密碼一定要與之前宿主機(jī)定義的密碼一樣。
如果我們把虛擬機(jī)加密引導(dǎo)磁盤(pán)的encryption字段去掉,不在虛擬化層進(jìn)行解密,會(huì)怎么樣呢,會(huì)找不到磁盤(pán)引導(dǎo)。
如果數(shù)據(jù)盤(pán)不在虛擬化層解密,將不能直接掛載。
- 加密后不能直接掛載。
- 加密后硬盤(pán)丟失也不用擔(dān)心數(shù)據(jù)被盜。
- 加密后必須做映射才能掛載。
LUKS 也是一種基于 device mapper(dm) 機(jī)制的加密方案。如果要使用加密后的分區(qū),就必須對(duì)加密后的分區(qū)做一個(gè)映射,映射到 /dev/mapper 這個(gè)目錄下。映射完成之后,我們也只能掛載這個(gè)映射來(lái)進(jìn)行使用,并且在做映射的時(shí)候還需要輸入加密分區(qū)的加密密碼。我們使用Cryptsetup工具對(duì)數(shù)據(jù)盤(pán)做映射,映射文件將放到 /dev/mapper 目錄中。需要輸入之前磁盤(pán)加密的密碼。
cryptsetup luksOpen /dev/vdb fw
kvm使用ceph rbd磁盤(pán)加密
定義secret
生成secret。
所有ceph節(jié)點(diǎn)都要執(zhí)行 生成secret。
cd /etc/libvirt/qemu
cat > secret.xml <
client.libvirt secret
EOF
定義secret,生成的id號(hào)要記下來(lái)。
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密鑰并將密鑰字符串保存到文件中。
三臺(tái)都執(zhí)行下面的命令。
ceph auth get-key client.libvirt | tee client.libvirt.key
設(shè)置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
編輯虛擬機(jī)配置文件。
/usr/bin/kvm-spice
啟動(dòng)虛擬機(jī)
定義并啟動(dòng)虛擬機(jī)。
virsh define vm.xml
virsh start vm
本文名稱(chēng):聊聊KvmQcow2和CephRbd虛擬機(jī)磁盤(pán)加密
文章出自:http://www.5511xx.com/article/dheodch.html


咨詢(xún)
建站咨詢(xún)
