Bug 1425757
Summary: | RFE: add support for securely passing passwords to iSCSI block drivers | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Daniel Berrangé <berrange> |
Component: | libvirt | Assignee: | John Ferlan <jferlan> |
Status: | CLOSED ERRATA | QA Contact: | yisun |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 7.4 | CC: | berrange, chayang, coli, dyuan, jdenemar, juzhang, knoel, lmen, michen, mrezanin, mtessun, ngu, virt-maint, xfu, xuzhang |
Target Milestone: | rc | Keywords: | FutureFeature |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | libvirt-4.3.0-1.el7 | Doc Type: | Enhancement |
Doc Text: | Story Points: | --- | |
Clone Of: | 1301057 | Environment: | |
Last Closed: | 2018-10-30 09:49:43 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1301057 | ||
Bug Blocks: | 1182074 |
Comment 2
Daniel Berrangé
2017-02-22 10:32:39 UTC
Patches posted upstream: https://www.redhat.com/archives/libvir-list/2017-September/msg00100.html Numerous updates since comment 4, now at v5: https://www.redhat.com/archives/libvir-list/2017-October/msg00228.html After a few reposts and waiting, upstream v6: https://www.redhat.com/archives/libvir-list/2017-November/msg00309.html has been pushed. The original series was pushed as part of libvirt-3.9.0. After pushing while working on something else, I realized there's one adjustment needed for the hotplug code... details are in the patch, see: https://www.redhat.com/archives/libvir-list/2017-December/msg00165.html that was pushed in libvirt-4.0.0 as commit id '6050affb' Verified with libvirt-4.4.0-2.virtcov.el7.x86_64 Test with latest libvirt but old qemu-kvm # rpm -qa | egrep "qemu-kvm-rhev|libvirt-4" libvirt-4.4.0-2.virtcov.el7.x86_64 qemu-kvm-rhev-2.6.0-28.el7_3.17.x86_64 1. prepare a libvirt secret and use it in vm # virsh dumpxml avocado-vt-vm1 ... <disk type='network' device='disk'> <driver name='qemu' type='raw'/> <source protocol='iscsi' name='iqn.2013-10.com.example:iscsi/0'> <host name='127.0.0.1' port='3260'/> </source> <auth username='rhat'> <secret type='iscsi' uuid='41437de7-4871-476d-8b06-b2d9a140df8d'/> </auth> <target dev='vdb' bus='virtio'/> </disk> 2. start the vm and check the qemu process # ps -ef | grep avocado-vt-vm1 | grep rhat qemu 8867 1 8 04:31 ? 00:00:23 /usr/libexec/qemu-kvm -name guest=avocado-vt-vm1,... -drive file=iscsi://rhat:rhatrhat.0.1:3260/iqn.1992-01.com.example/0,format=raw,if=none,id=drive-virtio-disk1 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x9,drive=drive-virtio-disk1,id=virtio-disk1 ... <==== password is in plaintext since rfe1379034 not involved in this qemu-kvm version, this is expected Test with latest libvirt and qemu # rpm -qa | egrep "qemu-kvm-rhev|libvirt-4" qemu-kvm-rhev-2.12.0-4.el7.x86_64 libvirt-4.4.0-2.virtcov.el7.x86_64 1. prepare a libvirt secret and use it in vm as virtual disk # virsh dumpxml avocado-vt-vm1 ... <disk type='network' device='disk'> <driver name='qemu' type='raw'/> <source protocol='iscsi' name='iqn.2013-10.com.example:iscsi/0'> <host name='127.0.0.1' port='3260'/> </source> <auth username='rhat'> <secret type='iscsi' uuid='41437de7-4871-476d-8b06-b2d9a140df8d'/> </auth> <target dev='vdb' bus='virtio'/> </disk> # virsh start avocado-vt-vm1 # ps -ef | grep avocado-vt-vm1 | grep rhat qemu 9392 1 92 04:38 ? 00:00:01 /usr/libexec/qemu-kvm -name guest=avocado-vt-vm1,debug-threads=on -S -object secret,id=masterKey0 ... -drive file.driver=iscsi,file.portal=127.0.0.1:3260,file.target=iqn.1992-01.com.example,file.lun=0,file.transport=tcp,file.user=rhat,file.password-secret=virtio-disk1-secret0,format=raw,if=none,id=drive-virtio-disk1 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x9,drive=drive-virtio-disk1,id=virtio-disk1 <==== now the password is not plaintext 2. prepare a libvirt secret and use it in vm as hostdev #virsh dumpxml avocado-vt-vm1 ... <hostdev mode='subsystem' type='scsi' managed='no'> <source protocol='iscsi' name='iqn.1992-01.com.example/0'> <host name='127.0.0.1' port='3260'/> <auth username='rhat'> <secret type='iscsi' usage='libvirtiscsi'/> </auth> </source> <alias name='hostdev0'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </hostdev> # virsh start avocado-vt-vm1 # ps -ef | grep avocado-vt-vm1 | grep rhat qemu 10038 1 83 04:45 ? 00:00:03 /usr/libexec/qemu-kvm -name guest=avocado-vt-vm1,debug-threads=on -S -object secret,id=masterKey0... -drive file.driver=iscsi,file.portal=127.0.0.1:3260,file.target=iqn.1992-01.com.example,file.lun=0,file.transport=tcp,file.user=rhat,file.password-secret=hostdev0-secret0,if=none,format=raw,id=drive-hostdev0... <==== now the password is not plaintext Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2018:3113 |