Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

zVirt и шифрованная связь

1. Замена сертификата Менеджера управления, выданного Центром сертификации

Не изменяйте разрешения и параметры владения для каталога /etc/pki и его подкаталогов. Разрешение для каталога /etc/pki и /etc/pki/ovirt-engine должно оставаться в значении по умолчанию: 755.

Вы можете настроить в своей организации сертификат, выданный альтернативным Центром сертификации, чтобы идентифицировать Менеджер управления для пользователей, подключающихся через HTTPS.

Использование сертификата, выданного альтернативным Центром сертификации, для HTTPS-подключений не влияет на сертификат, используемый для аутентификации между Менеджером управления и хостами. Они будут продолжать использовать самоподписанный сертификат, созданный Менеджером управления.
Предварительные условия:
  • Сертификат, выданный альтернативным Центром сертификации. Это сертификат, который выдал Центр сертификации и который вы хотите использовать. Он предоставляется как файл PEM. Цепочка сертификатов должна быть полной вплоть до корневого сертификата. Порядок сертификатов в цепочке имеет решающее значение и должен быть от последнего промежуточного сертификата до корневого сертификата. В этой процедуре предполагается, что сертификат альтернативного Центра сертификации предоставляется в файле /tmp/3rd-party-ca-cert.pem.

  • Закрытый ключ, который вы хотите использовать для Apache httpd. Он не должен иметь пароля. В этой процедуре предполагается, что он находится в файле /tmp/apache.key. Этот сертификат выпущен Центром сертификации. В этой процедуре предполагается, что он находится в файле /tmp/apache.cer.

Если вы получили закрытый ключ и сертификат от вашего Центра сертификации в файле P12, то для их извлечения используйте следующую процедуру. Если файл в другом формате, свяжитесь с вашим Центром сертификации. После извлечения закрытого ключа и сертификата перейдите к Замене сертификата Менеджера управления, выданного Центром Сертификации Apache.

Извлечение сертификата и закрытого ключа из пакета P12

Внутренний Центр сертификации хранит сгенерированный внутренними средствами ключ и сертификат в файле P12 /etc/pki/ovirt-engine/keys/apache.p12. Храните новый файл в том же месте. В следующей процедуре предполагается, что новый файл P12 находится в /tmp/apache.p12.

  1. Сделайте резервную копию текущего файла apache.p12:

    cp -p /etc/pki/ovirt-engine/keys/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12.bck
  2. Замените текущий файл новым:

    cp /tmp/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12
  3. Извлеките закрытый ключ и сертификат по соответствующим путям. Если файл защищен паролем, добавьте -passin pass:_password_, заменив password необходимым паролем.

    openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nocerts -nodes > /tmp/apache.key
    openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nokeys > /tmp/apache.cer
Для новых установок zVirt необходимо выполнить все шаги этой процедуры.

Замена сертификата Менеджера управления, выданного Центром Сертификации Apache

  1. Если используется hosted engine, переведите среду в глобальный режим обслуживания.

    hosted-engine --set-maintenance --mode=global

    Дополнительную информацию см. в разделе Обслуживание hosted engine.

  2. Добавьте сертификат Центра сертификации в доверенное хранилище на уровне хоста:

    cp /tmp/_3rd-party-ca-cert_.pem /etc/pki/ca-trust/source/anchors
    update-ca-trust
  3. Менеджер управления настроен на использование /etc/pki/ovirt-engine/apache-ca.pem, который символически связан с /etc/pki/ovirt-engine/ca.pem. Удалите символическую ссылку:

    rm /etc/pki/ovirt-engine/apache-ca.pem
  4. Сохраните сертификат Центра сертификации как /etc/pki/ovirt-engine/apache-ca.pem:

    cp /tmp/_3rd-party-ca-cert_.pem /etc/pki/ovirt-engine/apache-ca.pem
  5. Сделайте резервную копию существующего закрытого ключа и сертификата:

    cp /etc/pki/ovirt-engine/keys/apache.key.nopass /etc/pki/ovirt-engine/keys/apache.key.nopass.bck
    cp /etc/pki/ovirt-engine/certs/apache.cer /etc/pki/ovirt-engine/certs/apache.cer.bck
  6. Скопируйте закрытый ключ по соответствующему пути.

    cp /tmp/apache.key /etc/pki/ovirt-engine/keys/apache.key.nopass
  7. Установите владельца закрытого ключа в значение root, а разрешения – в значение 0640:

    chown root:ovirt  /etc/pki/ovirt-engine/keys/apache.key.nopass
    chmod 640 /etc/pki/ovirt-engine/keys/apache.key.nopass
  8. Скопируйте сертификат по соответствующему пути:

    cp /tmp/apache.cer /etc/pki/ovirt-engine/certs/apache.cer
  9. Установите владельца сертификата в значение root, а разрешения – в значение 0644:

    chown root:ovirt /etc/pki/ovirt-engine/certs/apache.cer
    chmod 644 /etc/pki/ovirt-engine/certs/apache.cer
  10. Перезапустите сервер Apache:

    systemctl restart httpd.service
  11. Создайте новый файл конфигурации доверенного хранилища /etc/ovirt-engine/engine.conf.d/99-custom-truststore.conf со следующими параметрами:

    ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
    ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
  12. Скопируйте файл /etc/ovirt-engine/ovirt-websocket-proxy.conf.d/10-setup.conf и переименуйте его, изменив индекс на число больше 10 (например, 99-setup.conf). Добавьте в новый файл следующие параметры:

    SSL_CERTIFICATE=/etc/pki/ovirt-engine/certs/apache.cer
    SSL_KEY=/etc/pki/ovirt-engine/keys/apache.key.nopass
  13. Перезапустите службу websocket-proxy:

    systemctl restart ovirt-websocket-proxy.service
  14. Если файл /etc/ovirt-provider-ovn/conf.d/10-setup-ovirt-provider-ovn.conf был изменен вручную либо если используется файл конфигурации от более старой инсталляции, убедитесь, что Менеджер управления по-прежнему настроен на использование /etc/pki/ovirt-engine/apache-ca.pem как источника сертификатов.

  15. Включите engine-backup, чтобы обновить систему по восстановлении путем создания нового файла /etc/ovirt-engine-backup/engine-backup-config.d/update-system-wide-pki.sh со следующим содержимым:

    BACKUP_PATHS="${BACKUP_PATHS}
    /etc/ovirt-engine-backup"
    cp -f /etc/pki/ovirt-engine/apache-ca.pem \
    /etc/pki/ca-trust/source/anchors/_3rd-party-ca-cert_.pem
    update-ca-trust
  16. Перезапустите службу ovirt-provider-ovn:

    systemctl restart ovirt-provider-ovn.service
  17. Перезапустите службу ovirt-imageio:

    systemctl restart ovirt-imageio.service
  18. Перезапустите службу ovirt-engine:

    systemctl restart ovirt-engine.service
  19. Если используется hosted engine, выключите глобальный режим обслуживания.

    hosted-engine --set-maintenance --mode=none

Теперь пользователи могут подключаться к Порталу администрирования и Пользовательскому порталу, не видя предупреждения о подлинности сертификата, используемого для шифрования HTTPS-трафика.

2. Настройка шифрованной связи между Менеджером управления и LDAP-сервером

Чтобы настроить шифрованную связь между Менеджером управления и LDAP-сервером, получите корневой сертификат LDAP-сервера, выданный Центром сертификации, скопируйте этот корневой сертификат в Менеджер управления и создайте сертификат, выданный Центром сертификации, в PEM-кодировке. Тип хранилища ключей может быть любым типом, поддерживаемым Java. В следующей процедуре используется формат Java KeyStore (JKS).

Дополнительные сведения о создании сертификата Центра сертификации в кодировке PEM и импорте сертификатов см. в разделе X.509 CERTIFICATE TRUST STORE файла README, размещенного в /usr/share/doc/ovirt-engine-extension-aaa-ldap-version.
Порядок действий:
  1. В Менеджере управления скопируйте корневой сертификат LDAP-сервера, выданный Центром сертификации, в каталог /tmp и импортируйте корневой сертификат Центра сертификации с помощью keytool, чтобы создать сертификат Центра сертификации в кодировке PEM. Следующая команда импортирует корневой сертификат Центра сертификации в /tmp/myrootca.pem и создает корневой сертификат Центра сертификации в кодировке PEM myrootca.jks в /etc/ovirt-engine/aaa/. Выпишите местонахождение сертификата и пароль. Если вы используете интерактивный инструмент настройки, то это – вся информация, которая вам понадобится. Если вы настраиваете LDAP-сервер вручную, выполните оставшуюся часть процедуры, чтобы обновить файлы конфигурации.

    $ keytool \
        -importcert \
        -noprompt \
        -trustcacerts \
        -alias _myrootca_ \
        -file _/tmp/myrootca.pem_ \
        -keystore _/etc/ovirt-engine/aaa/myrootca.jks_ \
        -storepass _password_
  2. Обновите файл /etc/ovirt-engine/aaa/profile1.properties, внеся в него сведения о сертификате:

    ${local:_basedir} – это каталог, где находится файл конфигурации свойств LDAP, указывающий на каталог /etc/ovirt-engine/aaa. Если вы создали сертификат Центра сертификации в кодировке PEM в другом каталоге, замените ${local:_basedir} полным путем к сертификату.
    • Чтобы использовать startTLS (рекомендуется):

      Create keystore, import certificate chain and uncomment
      pool.default.ssl.startTLS = true
      pool.default.ssl.truststore.file = ${local:_basedir}/_myrootca.jks_
      pool.default.ssl.truststore.password = _password_
    • Чтобы использовать SSL:

      Create keystore, import certificate chain and uncomment
      pool.default.serverset.single.port = 636
      pool.default.ssl.enable = true
      pool.default.ssl.truststore.file = ${local:_basedir}/_myrootca.jks_
      pool.default.ssl.truststore.password = _password_

Чтобы продолжить настройку внешнего провайдера LDAP, см. раздел Настройка внешнего провайдера LDAP. Чтобы продолжить настройку LDAP и Kerberos для единого входа, см. раздел Настройка LDAP и Kerberos для единого входа.

3. Включение шифрованных консолей VNC для FIPS

Вы можете настроить шифрованные консоли VNC на работу с Менеджером управления и хостами, на которых включен FIPS.

Чтобы настроить шифрованные консоли VNC, выполните следующие процедуры:

  • Включите FIPS в zVirt

  • Настройте параметры консоли кластера, которому принадлежит хост, чтобы включить шифрование VNC.

  • Запустите Ansible-плейбук VNC SASL на каждом хосте.

  • Настройте инструмент удаленного просмотра (Remote Viewer) так, чтобы он доверял сертификату Менеджера управления, выданному Центром сертификации.

3.1. Настройка кластера на включение шифрования VNC

Порядок действий:
  1. На Портале администрирования нажмите Ресурсы (Compute)  Кластеры (Clusters).

  2. Выберите кластер, в котором нужно включить шифрование VNC, и нажмите Изменить (Edit). Откроется окно Изменить кластер (Edit Cluster).

  3. Выберите вкладку Консоль (Console).

  4. Установите флажок в поле Включить VNC шифрование (Enable VNC Encryption) и нажмите OK.

3.2. Запуск Ansible-плейбука VNC SASL для каждого хоста

Порядок действий:
  1. На Портале администрирования переведите созданные вами хосты с включенным FIPS в режим обслуживания:

    1. На Портале администрирования нажмите Ресурсы (Compute)  Хосты (Hosts).

    2. В столбце Количество ВМ (Virtual Machines) убедитесь, что ни на одном хосте нет виртуальных машин. Выполните миграцию на лету, чтобы удалить все виртуальные машины со всех хостов, если необходимо. Подробные сведения см. в разделе Миграция виртуальных машин между хостами руководства по управлению виртуальными машинами.

    3. Выберите каждый хост и нажмите Управление (Management)Обслуживание (Maintenance), а атем OK.

  2. Подключитесь к командной строке машины, на которой запущен Менеджер управления.

    1. Если Менеджер управления работает на автономной машине, подключитесь к ее командной строке. Например, введите:

      ssh root@zvirt-host
    2. Если Менеджер управления работает как hosted engine, нажмите Ресурсы (Compute)  Виртуальные машины (Virtual Machines), чтобы выбрать виртуальную машину hosted engine, по умолчанию названную HostedEngine, и затем нажмите Консоль (Console).

  3. На машине с Менеджером управления запустите Ansible-плейбук VNC SASL для каждого хоста.

    cd /usr/share/ovirt-engine/ansible-runner-service-project/project/
    ansible-playbook --ask-pass --inventory=<hostname>, ovirt-vnc-sasl.yml

    В качестве <hostname> введите полное имя хоста (Hostname), показанное в разделе Ресурсы (Compute)  Хосты (Hosts).

  4. Выберите хост и нажмите Настройки (Installation)Переустановить (Reinstall).

  5. После переустановки выберите хост и нажмите Управление (Management)Перезапустить (Restart).

  6. После перезагрузки выберите хост и нажмите Управление (Management)Включить (Activate).

Поиск и устранение неполадок

При запуске Ansible-плейбука VNC SASL задача может завершиться сбоем с выводом следующего сообщения об ошибке:

Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host.

Чтобы решить эту проблему, выключите проверку ключа хоста, выполнив одно из следующих действий:

  • Выключите проверку ключа хоста навсегда, раскомментировав следующую строку в файле /etc/ansible/ansible.cfg:

    #host_key_checking = False
  • Выключите проверку ключа хоста на время, выполнив следующую команду:

    export ANSIBLE_HOST_KEY_CHECKING=False.

3.3. Настройка инструмента удаленного просмотра (Remote Viewer) так, чтобы он доверял сертификату Менеджера управления, выданному Центром сертификации

Настройте консоль инструмента удаленного просмотра (Remote Viewer) на клиентской машине, virt-viewer или remote-viewer так, чтобы она доверяла Центру сертификации Менеджера управления.

Порядок действий:
  1. Перейдите по адресу https://<engine_address>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA.

  2. Включите все настройки доверия.

  3. На клиентской машине, где нужно запустить консоль VNC, создайте каталог для файла сертификата:

    $ mkdir ~/.pki/CA
    Если на этом шаге возникнет ошибка, такая как mkdir: cannot create directory ‘/home/example_user/.pki/CA’: File exists, примите меры, чтобы не допустить перезаписывания ~/.pki/CA/cacert.pem на следующем шаге. Например, включите текущую дату в имя файла.
  4. Загрузите сертификат:

    $ curl -k -o ~/.pki/CA/cacert-<today's date>.pem \
    '\https://<engine_address>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA'
  5. Установите центр сертификации в браузер:

    Установка сертификата CA в Firefox
    • Перейдите в веб-браузере по URL-адресу портала и на странице приветствия выберите CA сертификат.

    • Файл с именем pki-resource (без расширения файла) будет загружен.

    • Откройте окно параметров/настроек:

      • Windows: откройте меню Инструменты и выберите Параметры…

      • Mac: откройте меню Firefox и выберите Настройки…

      • Linux: откройте меню Правка и выберите Настройки.

    • Выберите Конфиденциальность и безопасность и прокрутите вниз до Сертификаты.

    • Щелкните Просмотреть сертификаты…. Откроется диспетчер сертификатов.

    • Выберите вкладку Полномочия.

    • Нажмите Импорт

    • Выберите файл корневого сертификата, который вы хотите импортировать (измените тип файла на Все файлы, чтобы просмотреть загруженный файл).

    • Установите флажки, указывающие параметры доверия, и нажмите OK.

    • Нажмите OK в Диспетчере сертификатов и закройте окно Параметры/Настройки.

    • Убедитесь, что все процессы Firefox остановлены.

    • Перезапустите Firefox и перейдите по URL-адресу портала. Значок lock в адресной строке указывает на то, что сертификат CA установлен.

    Установка сертификата CA в Google Chrome
    • Перейдите веб-браузере по URL-адресу портала и на странице приветствия выберите CA сертификат.

    • Файл с именем pki-resource (без расширения файла) будет загружен.

    • Перейдите в Настройки  Дополнительно  Управление сертификатами → вкладка Центры и нажмите ИМПОРТ.

    • Выберите файл корневого сертификата, который вы хотите импортировать (измените тип файла на Все файлы, чтобы просмотреть загруженный файл).

    • Установите все флажки, указывающие параметры доверия, и нажмите OK.

    • Закройте Chrome и убедитесь, что все процессы Chrome остановлены.

    • Перезапустите Chrome и перейдите по URL-адресу портала. Значок lock в адресной строке указывает на то, что сертификат CA установлен.

  6. Установите библиотеки SASL SCRAM на клиентскую машину:

    $ sudo dnf install cyrus-sasl-scram
Действия по проверке:
  1. Запустите виртуальную машину на одном из созданных хостов с включенным FIPS.

  2. Подключитесь к виртуальной машине с помощью консоли VNC.