====== libvirt ======
{{:libvirt:logo-banner-dark-800.png?350|}}
libvirt — свободная реализация API, демон и набор инструментов для управления виртуализацией. Позволяет управлять гипервизорами [[xen:xen|Xen]], [[kernel-based_virtual_machine:kernel-based_virtual_machine|KVM]], а также [[virtualbox:virtualbox|VirtualBox]], OpenVZ, LXC, [[vmware:vmware|VMware]] ESX/GSX/Workstation/Player, [[qemu:qemu|QEMU]] и другими средствами виртуализации, предоставляет возможность контролировать виртуальные машины по сети, расположенные на других компьютерах. Эти API широко используются в слоях гипервизоров при разработке облачных решений.
https://libvirt.org/
----
FIXME
[[https://wiki.libvirt.org/page/TLSSetup|TLSSetup - Libvirt Wiki]]
[[https://libvirt.org/remote.html|libvirt: Remote support]]
[[http://umvirt.ru/node/114|Подключаемся к Libvirt, SPICE и VNC через TLS/SSL | umVirt.Ru]]
====== TLS ======
FIXME
[[xca:libvrt|XCA — libvrt]]
Стандартный вариант создания ключей и сертификатов для работы по TLS [[libvirt:tls|libvrt — TLS]]
===== Файлы =====
* ''[[#cakey.pem]]''
Сервер
* ''[[#cacert.pem]]''
* ''[[#serverkey.pem]]''
* ''[[#servercert.pem]]''
Клиент
* ''[[#cacert.pem]]''
* ''[[#clientkey.pem]]''
* ''[[#clientcert.pem]]''
==== cakey.pem ====
Ключ центра сертификации, он должен храниться в надёжном месте.
Его нельзя хранить на серверах и клиентах!
==== cacert.pem ====
Сертификат центра сертификации
==== serverkey.pem ====
Ключ сервера
==== servercert.pem ====
Сертификат сервера
==== clientkey.pem ====
Ключ клиента
==== clientcert.pem ====
Сертификат клиента
===== Настройка клиента =====
{{anchor:tlsclient}}
Копирование файлов клиента
#!/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
===== Настройка сервера =====
{{anchor:tlsserver}}
Копирование файлов на сервере
#!/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 ====
{{anchor:tlslibvirtd}}
Здесь описан процесс настройки демона ''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'' гостевые домены (виртуальные машины) **будут работать**! ([[https://wiki.libvirt.org/page/FAQ#Will_restarting_the_libvirt_daemon_stop_my_virtual_machines.3F|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
====== Ссылки ======
[[https://libvirt.org/logos/logo-banner-dark-800.png|Логотип]]
https://ru.wikipedia.org/wiki/Libvirt
{{tag> Virtualization}}