libvirt — свободная реализация API, демон и набор инструментов для управления виртуализацией. Позволяет управлять гипервизорами Xen, KVM, а также VirtualBox, OpenVZ, LXC, VMware ESX/GSX/Workstation/Player, QEMU и другими средствами виртуализации, предоставляет возможность контролировать виртуальные машины по сети, расположенные на других компьютерах. Эти API широко используются в слоях гипервизоров при разработке облачных решений.
Подключаемся к Libvirt, SPICE и VNC через TLS/SSL | umVirt.Ru
Сервер
Клиент
Ключ центра сертификации, он должен храниться в надёжном месте.
Его нельзя хранить на серверах и клиентах!
Сертификат центра сертификации
Ключ сервера
Сертификат сервера
Ключ клиента
Сертификат клиента
Копирование файлов клиента
#!/bin/bash mkdir -p /etc/pki/libvirt/private/ mkdir -p /etc/pki/CA/ cp libvrt-ca.crt /etc/pki/CA/cacert.pem cp libvrt-user.crt /etc/pki/libvirt/clientcert.pem cp libvrt-user.pem /etc/pki/libvirt/private/clientkey.pem chgrp libvirt /etc/pki/CA/cacert.pem chgrp libvirt /etc/pki/libvirt/clientcert.pem chgrp libvirt /etc/pki/libvirt/private/clientkey.pem
#!/bin/bash mkdir -p /etc/pki/libvirt/private/ mkdir -p /etc/pki/CA/ cp libvrt-ca.crt /etc/pki/CA/cacert.pem cp libvrt-server.crt /etc/pki/libvirt/servercert.pem cp libvrt-server.pem /etc/pki/libvirt/private/serverkey.pem cp libvrt-crl.pem /etc/pki/CA/crl.pem
Здесь описан процесс настройки демона libvirtd
для работы по TLS
libvirtd_opts="-l"
listen_tls = 1 listen_tcp = 1
или изменения включающие настройку сертификатов, ключей и списка отзыва сертификатов:
listen_tls = 1 listen_tcp = 1 key_file = "/etc/pki/libvirt/private/serverkey.pem" cert_file = "/etc/pki/libvirt/servercert.pem" ca_file = "/etc/pki/CA/cacert.pem" crl_file = "/etc/pki/CA/crl.pem"
service libvirtd restart
При перезапуске демона libvirtd
гостевые домены (виртуальные машины) будут работать! (FAQ - Libvirt Wiki — 1.2.5 Will restarting the libvirt daemon stop my virtual machines?)
netstat -lntp | grep libvirtd
Пример вывода:
tcp 0 0 0.0.0.0:16509 0.0.0.0:* LISTEN 5594/libvirtd tcp 0 0 0.0.0.0:16514 0.0.0.0:* LISTEN 5594/libvirtd tcp6 0 0 :::16509 :::* LISTEN 5594/libvirtd tcp6 0 0 :::16514 :::* LISTEN 5594/libvirtd