Прокси-серверы
1. SPICE-прокси
1.1. Общие сведения о SPICE-прокси
SPICE-прокси – это инструмент, используемый для подключения клиентов SPICE к виртуальным машинам, когда клиенты SPICE находятся вне сети, соединяющей гипервизоры. Настройка SPICE-прокси заключается в установке Squid на машину и настройке межсетевого экрана на пропускание прокси-трафика. Включение SPICE-прокси заключается в использовании engine-config в Менеджере управления для установки ключа SpiceProxyDefault в значение, состоящее из имени и порта прокси-сервера. Выключение SPICE-прокси заключается в использовании engine-config в Менеджере управления для удаления значения, в которое был установлен ключ SpiceProxyDefault.
| SPICE-прокси можно использовать только в сочетании с автономным клиентом SPICE и нельзя использовать для подключения к виртуальным машинам с помощью noVNC. |
1.2. Настройка машины со SPICE-прокси
В этой процедуре описано, как настроить машину в качестве SPICE-прокси. SPICE-прокси позволяет подключаться к сети zVirt Max извне. В этой процедуре используется Squid для предоставления прокси-служб.
-
Установите Squid на машине с прокси:
dnf install squid -
Откройте /etc/squid/squid.conf. Измените:
http_access deny CONNECT !SSL_portsна:
http_access deny CONNECT !Safe_ports -
Запустите службу squid и включите для нее автоматический запуск после перезагрузки:
systemctl enable squid.service --now -
Добавьте постоянное правило, разрешающее входящие запросы к службе squid в зоне firewalld по умолчанию:
firewall-cmd --permanent --add-service=squid -
Перезагрузите правила:
firewall-cmd --reload -
Убедитесь, что служба squid отображается в списке служб межсетевого экрана:
firewall-cmd --list-services ssh dhcpv6-client squid
Теперь машина настроена в качестве SPICE-прокси. Перед подключением к сети zVirt Max извне этой сети активируйте SPICE-прокси.
1.3. Включение SPICE-прокси
Далее описано, как активировать (включить) SPICE-прокси.
-
Чтобы настроить прокси-сервер, в Менеджере управления используйте инструмент
engine-config:engine-config -s SpiceProxyDefault=someProxy -
Перезапустите службу ovirt-engine:
systemctl restart ovirt-engine.service
Адрес прокси-сервера должен иметь следующий вид:
protocol://[host]:[port]
| Старые версии клиента SPICE поддерживают только HTTP. Если для клиентов более ранних версий указан HTTPS, клиент проигнорирует настройку прокси-сервера и попытается подключиться к хосту напрямую. |
Теперь SPICE-прокси активирован (включен). Можно подключиться к сети zVirt Max через SPICE-прокси.
1.4. Выключение SPICE-прокси
Далее описано, как выключить (деактивироваать) SPICE-прокси.
-
Авторизуйтесь в Менеджере управления:
$ ssh root@_[IP of {engine-name}]_ -
Чтобы очистить SPICE-прокси, запустите следующую команду:
engine-config -s SpiceProxyDefault="" -
Перезапустите Менеджер управления:
systemctl restart ovirt-engine.service
Теперь SPICE-прокси деактивирован (выключен). Больше нельзя подключиться к сети zVirt Max через SPICE-прокси.
2. Squid-прокси
2.1. Установка и настройка Squid-прокси
В этом разделе описано, как устанавливать и настраивать Squid-прокси на Пользовательском портале. Squid-прокси используется для ускорения доставки контента. Он кэширует часто просматриваемый контент, снижая расход полосы пропускания и ускоряя отклик.
-
Получите пару ключей и сертификат для порта HTTPS Squid-прокси. Эту пару ключей можно получить таким же способом, как и пару ключей для другой службы SSL/TLS. Пара ключей имеет вид двух файлов PEM, содержащих закрытый ключ и подписанный сертификат. В данном случае предположим, что они имеют имена proxy.key и proxy.cer.
Эту пару ключей и сертификат можно также сгенерировать с помощью центра сертификации engine. Если у вас уже есть закрытый ключ и сертификат для прокси-сервера и вы не хотите генерировать их с помощью центра сертификации engine, перейдите к следующему шагу. -
Выберите имя хоста для прокси-сервера. Затем выберите другие компоненты отличительного имени сертификата для прокси-сервера.
Рекомендуется использовать те же названия страны и организации, что и в самом engine. Чтобы найти эту информацию, авторизуйтесь на машине, на которой установлен Менеджер управления, и выполните следующую команду:
openssl x509 -in /etc/pki/ovirt-engine/ca.pem -noout -text | grep DirNameЭта команда выведет примерно следующее:
subject= /C=US/O=Example Inc./CN=_engine.example.com_.81108Важный фрагмент здесь:
/C=US/O=Example Inc.. Используйте его, чтобы создать полное отличительное имя сертификата для прокси-сервера:/C=US/O=Example Inc./CN=_proxy.example.com_ -
Авторизуйтесь на машине с прокси-сервером и сгенерируйте запрос на подписание сертификата:
openssl req -newkey rsa:2048 -subj '/C=US/O=Example Inc./CN=_proxy.example.com_' -nodes -keyout proxy.key -out proxy.reqОтличительное имя сертификата нужно поставить в кавычки. Параметр -nodesгарантирует, что закрытый ключ не шифруется, а значит, пароль для запуска прокси-сервера вводить не нужно.Команда генерирует два файла: proxy.key и proxy.req. proxy.key – это закрытый ключ. Храните его в надежном месте. proxy.req – это запрос на подписание сертификата. Он не требует специальной защиты.
-
Чтобы сгенерировать подписанный сертификат, скопируйте файл запроса на подписание сертификата с прокси-машины на машину с Менеджером управления:
scp proxy.req _engine.example.com_:/etc/pki/ovirt-engine/requests/. -
Авторизуйтесь на машине с Менеджером управления и подпишите сертификат.
/usr/share/ovirt-engine/bin/pki-enroll-request.sh \ --name=proxy \ --days=3650 \ --subject='/C=US/O=Example Inc./CN=_proxy.example.com_'Эта команда подписывает сертификат и делает его действительным в течение 10 лет (3650 дней). При желании можно установить более короткий срок действия сертификата.
-
Сгенерированный файл сертификата доступен в каталоге /etc/pki/ovirt-engine/certs и должен иметь имя proxy.cer. На прокси-машине скопируйте этот файл с машины с Менеджером управления в текущий каталог:
scp _engine.example.com_:/etc/pki/ovirt-engine/certs/proxy.cer . -
Убедитесь, что и proxy.key, и proxy.cer присутствуют на прокси-машине:
ls -l proxy.key proxy.cer -
Установите пакет Squid на прокси-машину:
dnf install squid -
Переместите закрытый ключ и подписанный сертификат в место, где прокси-сервер может получить к ним доступ, например, в каталог /etc/squid:
cp proxy.key proxy.cer /etc/squid/. -
Задайте разрешения так, чтобы пользователь squid мог читать эти файлы:
chgrp squid /etc/squid/proxy.* chmod 640 /etc/squid/proxy.* -
Squid-прокси должен проверить сертификат, который использует engine. Скопируйте сертификат Менеджера управления на прокси-машину. В этом примере используется путь к файлу /etc/squid:
scp engine.example.com:/etc/pki/ovirt-engine/ca.pem /etc/squid/.Сертификат Центра сертификации по умолчанию находится в /etc/pki/ovirt-engine/ca.pem на машине с Менеджером управления. -
Задайте разрешения так, чтобы пользователь squid мог читать файл сертификата:
chgrp squid /etc/squid/ca.pem chmod 640 /etc/squid/ca.pem -
Если SELinux работает в режиме "принудительный" (enforcing mode), измените контекст порта
443инструментом semanage, чтобы разрешить Squid использование порта443:dnf install policycoreutils-python semanage port -m -p tcp -t http_cache_port_t 443 -
Замените существующий файл конфигурации Squid следующим:
https_port 443 key=/etc/squid/proxy.key cert=/etc/squid/proxy.cer ssl-bump defaultsite=_engine.example.com_ cache_peer _engine.example.com_ parent 443 0 no-query originserver ssl sslcafile=/etc/squid/ca.pem name=engine login=PASSTHRU cache_peer_access engine allow all ssl_bump allow all http_access allow all -
Перезапустите Squid-прокси:
systemctl restart squid.service
Squid-прокси в конфигурации по умолчанию разорвет соединение после 15 минут отсутствия активности. Чтобы увеличить время неактивности, по истечении которого Squid-прокси разорвет соединение, настройте параметр read_timeout в squid.conf (например, read_timeout 10 hours).
|
3. Websocket-прокси
3.1. Общие сведения о Websocket-прокси
Websocket-прокси позволяет пользователям подключаться к виртуальным машинам через консоль noVNC.
Websocket-прокси можно установить и настроить на машине с Менеджером управления во время первоначальной настройки (см. Настройка Менеджера управления).