TLS(Transport Layer Security Protocol),即安全传输层协议,其核心是加密两台计算机之间的通信。libvirt中使用TLS,可以实现libvirt的安全加密。例如,虚拟机在不同的主机之间迁移或者远程链接libvirt的守护进程对libvirt进程控制时,都可以走TLS通道进行加密。本文将实践libvirt的TLS配置和具体使用。有以下四个步骤。
1.CA证书文件:
http://wiki.libvirt.org/page/TLSCreateCACert
2.创建服务端证书:
http://wiki.libvirt.org/page/TLSCreateServerCerts
3.创建客户端证书:
http://wiki.libvirt.org/page/TLSCreateClientCerts
(以上三个步骤时TLS的通用配置方式)
4:配置libvirt守护进程- /etc/libvirt/libvirtd.conf
- #在最后添加下面
- #auth_unix_rw="sasl"
- ca_file="/etc/pki/CA/cacert.pem"
- cert_file = "/etc/pki/libvirt/servercert.pem"
- key_file = "/etc/pki/libvirt/private/serverkey.pem"
- listen_addr="0.0.0.0"
- unix_sock_group="qemu"
- unix_sock_rw_perms="0770"
复制代码- /etc/sysconfig/libvirtd
- #libvirtd启动时添加--listen参数
- LIBVIRTD_ARGS="--listen"
复制代码以上4个步骤就完成了libvrit中TLS的配置。可查看端口监控信息: - # netstat -tulpen | grep libvirt
- tcp 0 0 0.0.0.0:16514 0.0.0.0:* LISTEN 0 34065 3505/libvirtd
复制代码使用tls通道测试链接libvirt的守护进程: - # virsh -c qemu+tls://host1/system hostname
复制代码(远程查看名为host1的计算机的hostname)
使用tls通道测试虚拟机在不同的主机间迁移: - # virsh migrate centos_test1 qemu+tls://host1/system --p2p --tunnelled
复制代码(使用tls加密可以使用tunnelled参数,例子是把虚拟机centos_test1在线迁移到host1这台服务器上)
具体操作可参考libvirt官方文档: http://wiki.libvirt.org/page/TLSSetup
|