libvirt远程管理
远程管理涉及对KVM主机上的虚拟资源(存储和虚拟机)进行远程管理。当将虚拟环境管理工作委派给其他用户,而又不授予对方KVM虚拟化管理程序登入访问权时,远程管理非常有用。libvirtd daemon负责管理KVM主机上所有的虚拟资源,并且有virsh和virt-manager等客户端工具能与它远程互动。
SASL和SSH认证进行libvirt远程管理
- SSH通道(SSH Tunnels)
- 简单鉴权和安全层(Simple Authentication and Security Layer,SASL )
1,SSH 通道:使用SSH 来远程连接虚拟化管理程序,对于能够使用虚拟资源的用户,要求具备虚拟化管理程序上的SSH登录证书,默认情况下只有root账户
代码语言:javascript复制[root@kvm-node2 ~]# virsh -c qemu ssh://root@192.168.100.235/system list --all
Id Name State
----------------------------------------------------
5 9d5e23c04a running
- docker01 shut off
- vm01 shut off
[root@kvm-node2 ~]# virsh -c qemu ssh://root@192.168.100.235/system domblklist 9d5e23c04a
Target Source
------------------------------------------------
vda /kvm/img/9d5e23c04a.qcow2
vdb /kvm/img/9d5e23c04a-vdb.qcow2
hda -
2,SASL:提供安全的验证和数据加密。最简单的方式创建单独的用户证书数据库来验证libvirtd daemon。优势在于即非登录用户ID可用于管理KVM主机上的虚拟化资源。
(1)编辑 /etc/libvirt/libvirtd.conf 并更改
代码语言:javascript复制listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"
auth_tcp = "sasl"
auth_tls = "sasl"
(2)编辑 /etc/sysconfig/libvirtd 并取消此行的批注,以使libvirtd听取TCP/IP连接
代码语言:javascript复制LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS="--listen"
(3)添加sasl2配置,注释其他行,设置加密方式 /etc/sasl2/libvirt.conf
代码语言:javascript复制# egrep -v "*#|^$" /etc/sasl2/libvirt.conf
mech_list:digest-md5
sasldb_path: /etc/libvirt/passwd.db
(4)重启libvirtd 服务
代码语言:javascript复制 systemctl restart libvirtd
(5)将用户 "admin" 添加到 "libvirt" SASL数据库
代码语言:javascript复制 saslpasswd2 –c –a libvirt admin
Password:
Again (for verification):
注意:只有输入libvirt才会使用配置/etc/sasl2/libvirt.conf,结果才会写到/etc/libvirt/passwd.db
(6)删除账户
代码语言:javascript复制saslpasswd2 -a libvirt -d admin
(7)查看账户
代码语言:javascript复制sasldblistusers2 -f /etc/libvirt/passwd.db
admin@kvm-node2: userPassword
(8)qemu tcp安全地连接KVM虚拟化管理程序
代码语言:javascript复制root@kvm-node2 libvirt]# virsh -c qemu tcp://192.168.100.235/system list
Please enter your authentication name: admin
Please enter your password:
Id Name State
----------------------------------------------------
5 9d5e23c04a running
[root@kvm-node2 libvirt]# virsh -c qemu tcp://192.168.100.235/system nodeinfo
Please enter your authentication name: admin
Please enter your password:
CPU model: x86_64
CPU(s): 2
CPU frequency: 2099 MHz
CPU socket(s): 2
Core(s) per socket: 1
Thread(s) per core: 1
NUMA cell(s): 1
Memory size: 8009288 KiB
SSH 通道和SASL可用于运行任何virsh命令。