Прокси
Прокси-сервер SPICE
Обзор SPICE Proxy
SPICE Proxy — это утилита, используемая для подключения клиентов SPICE к ВМ, когда клиенты SPICE находятся вне сети, соединяющей гипервизоры. Настройка SPICE Proxy состоит из установки на машине прокси-сервера Squid и настройки межсетевого экрана для разрешения трафика прокси. Процесс включения SPICE Proxy состоит из запуска на виртуализированном ЦУ утилиты engine-config для настройки значения ключа SpiceProxyDefault, состоящего из имени и порта прокси. Процесс выключения SPICE Proxy состоит из запуска на виртуализированном ЦУ утилиты engine-config для удаления ранее настроенного значения ключа SpiceProxyDefault.
Примечание — Утилиту SPICE Proxy можно использовать только в сочетании с одиночным клиентом SPICE и нельзя использовать для подключения к ВМ, использующим noVNC.
Настройка машины SPICE Proxy
В следующей последовательности действий описывается, как настроить машину в качестве SPICE Proxy. SPICE Proxy делает возможным подключение извне к сети РОСА Виртуализация. Для предоставления служб прокси используется Squid.
Для установка прокси-сервера Squid нужно:
- установить Squid на машине прокси, выполнив команду:
yum install squid
- в конфигурационном файле /etc/squid/squid.conf в строке
"http_access deny CONNECT"заменить значение"!SSL_ports"на значение"!Safe_ports"; - запустить службу squid и включить автоматический запуск этой службы в процессе загрузки Системы:
systemctl enable squid.service --now
- разрешить исходящие запросы на службу squid в зоне по умолчанию межсетевого экрана firewalld:
firewall-cmd --permanent --add-service=squid
- для применения изменений в конфигурации перезапустить службу межсетевого экрана firewalld:
firewall-cmd --reload
В результате данная машина будет настроена для протокола SPICE в качестве прокси.
Необходимо активировать (включить) прокси перед тем, как подключаться извне к сетям РОСА Виртуализация.
Включение SPICE Proxy
В следующей последовательности действий описывается, как активировать (включить) прокси для протокола SPICE.
Для активации SPICE Proxy нужно:
- на машине виртуализированного ЦУ выполнить следующую команду с применением утилиты engine-config для настройки прокси:
engine-config -s SpiceProxyDefault=someProxy
- перезапустить службу ovirt-engine:
systemctl restart ovirt-engine.service
В результате SPICE Proxy будет активирован (включен), предоставляя возможность подключения извне к сетям РОСА Виртуализация через прокси-сервер для протокола SPICE.
Запись прокси должна быть в формате:
protocol://[host]:[port].
Примечание — Поддержка прокси HTTPS доступна только для клиентов SPICE, поставляемых в составе Системы виртуализации РОСА Виртуализация. Клиенты в более ранних версиях ОС поддерживают только HTTP. Если указать HTTPS для клиентов более ранних версий, клиент проигнорирует настройку прокси и будет пробовать прямое подключение к хосту.
Выключение SPICE Proxy
В следующей последовательности действий описывается, как выключить (деактивировать) прокси для протокола SPICE.
Для выключения SPICE Proxy нужно:
- на машине виртуализированного ЦУ выполнить следующую команду для очистки прокси SPICE:
engine-config -s SpiceProxyDefault=""
- перезапустить службу ovirt-engine:
systemctl restart ovirt-engine.service
В результате SPICE Proxy будет деактивирован (выключен) и подключение извне к сетям РОСА Виртуализация через прокси-сервер для протокола SPICE станет невозможным.
Прокси-сервер Squid
Установка и настройка Squid
В данном разделе описывается, как установить и настроить прокси-сервер Squid для Портала ВМ.
Прокси-сервер Squid используется в качестве ускорителя передачи данных за счет кеширования часто просматриваемого содержимого, что повышает пропускную способность и снижает время откликов.
Для настройки прокси-сервера Squid нужно:
- получить в установленном порядке закрытый ключ и сертификат ключа для порта HTTPS прокси-сервера Squid в виде файлов proxy.key и proxy.cer соответственно;
- установить Squid на машине прокси:
yum install squid
- переместить полученные файлы proxy.key и proxy.cer с закрытым ключом и сертификатом ключа в каталог машины прокси (например, /etc/squid);
- установить права на чтение файлов proxy.key и proxy.cer для пользователя squid:
chgrp squid /etc/squid/proxy.*
chmod 640 /etc/squid/proxy.*
- Squid должен верифицировать сертификат ЦС, используемый виртуализированным ЦУ, для чего скопировать с виртуализированного ЦУ сертификат ЦС /etc/pki/ovirt-engine/ca.pem на машину прокси в каталог /etc/squid и установить права на чтение файла сертификата ca.pem для пользователя squid:
chgrp squid /etc/squid/ca.pem
chmod 640 /etc/squid/ca.pem
- для принудительного режима SELinux изменить контекст порта 443, тем самым разрешив Squid использовать порт 443:
yum install policycoreutils-python
semanage port -m -p tcp -t http_cache_port_t 443
- заменить текущий файл конфигурации Squid /etc/squid/squid.conf следующим содержимым:
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 минут простоя) следует настроить параметр read_timeout в файле конфигурации Squid /etc/squid/squid.conf (например, значение "read_timeout 10 hours" увеличивает интервал времени простоя до 10 часов).
Прокси-сервер WebSocket
Обзор прокси-сервера WebSocket
Прокси-сервер WebSocket дает возможность пользователям подключаться к ВМ с помощью консоли noVNC. Клиент noVNC использует веб-сокеты для передачи данных VNC, но сервер VNC в QEMU не поддерживает технологию веб-сокетов, поэтому между клиентом и сервером VNC необходимо расположить прокси WebSocket. При этом прокси WebSocket может выполняться на любой машине, имеющей доступ к сети, включая машину виртуализированного ЦУ.
Примечание — Прокси-сервер WebSocket и консоль noVNC являются экспериментальными технологиями. Экспериментальные возможности не поддерживаются соглашениями об уровне обслуживания, могут иметь неполную функциональность и не рекомендуются к использованию на производстве, но предоставляют ранний доступ к будущим возможностям продукта, давая пользователям средство протестировать функциональность и предоставить отзывы, полезные для разработчиков.
Прокси-сервер WebSocket можно установить и настроить на машине виртуализированного ЦУ во время начального создания конфигурации ЦУ или на отдельной машине. Также можно провести миграцию WebSocket с машины виртуализированного ЦУ на отдельную машину.
Миграция WebSocket на отдельную машину
По соображениям безопасности или производительности прокси-сервер WebSocket может выполняться на отдельной машине. Действия по переносу WebSocket с машины виртуализированного ЦУ на отдельную машину включают в себя удаление конфигурации WebSocket с машины виртуализированного ЦУ, а затем установку прокси на отдельной машине.
Для удаления WebSocket с машины виртуализированного ЦУ требуется:
- запустить утилиту engine-cleanup на машине виртуализированного ЦУ:
engine-cleanup
- при запросе на удаление всех компонентов ввести
"No":
Do you want to remove all components? (Yes, No) [Yes]: No
- при запросе на удаление виртуализированного ЦУ (engine) ввести
"No":
Do you want to remove the engine? (Yes, No) [Yes]: No
- при запросе на удаление прокси-сервера WebSocket ввести
"Yes":
Do you want to remove the WebSocket proxy? (Yes, No) [No]: Yes
- при запросах на удаление любых других компонентов вводить
"No".
Для установки WebSocket на отдельной машине нужно:
- установить прокси-сервер WebSocket:
yum install ovirt-engine-websocket-proxy
- запустить утилиту engine-setup для настройки конфигурации прокси-сервера WebSocket:
engine-setup
Примечание — Если в Системе ранее был установлен пакет rhvm, то при выводе запроса о необходимости настройки виртуализированного ЦУ на этом хосте ввести
"No".
- при выводе следующего запроса нажать клавишу
Enterдля запуска процесса настройки конфигурации прокси-сервера WebSocket на данной машине:
Configure WebSocket Proxy on this machine? (Yes, No) [Yes]:
- при выводе следующего запроса нажать клавишу
Enter, чтобы принять автоматически определенное имя хоста, или ввести альтернативное имя хоста (следует обратить внимание, что при использовании виртуальных хостов автоматически определенное имя хоста может быть неправильным):
Host fully qualified DNS name of this server [host.example.com]:
- при выводе следующего запроса нажать клавишу
Enter, чтобы утилита engine-setup автоматически настроила межсетевой экран и открыла порты, необходимые для внешних соединений (в противном случае нужные порты необходимо будет открыть вручную):
Setup can automatically configure the firewall on this system.
Note: automatic configuration of the firewall may overwrite current settings.
Do you want Setup to configure the firewall? (Yes, No) [Yes]:
- при выводе следующего запроса ввести полное доменное имя (FQDN) машины виртуализированного ЦУ:
Host fully qualified DNS name of the engine server []:
- при выводе следующего запроса нажать клавишу Enter, чтобы утилита engine-setup автоматически выполнила необходимые настройки на машине виртуализированного ЦУ, или ввести цифру
"2", чтобы выполнить эти настройки вручную:
Setup will need to do some actions on the remote engine server. Either automatically, using ssh as root to access it, or you will be prompted to manually perform each such action.
Please choose one of the following:
1 ‒ Access remote engine server using ssh as root
2 ‒ Perform each action manually, use files to copy content around
(1, 2) [1]:
- для настройки вручную:
- при выводе следующего запроса нажать клавишу
Enter, чтобы принять номер порта SSH по умолчанию, или указать номер порта SSH машины виртуализированного ЦУ:
ssh port on remote engine server [22]:
- указать пароль суперпользователя root для выполнения входа в Систему на машине виртуализированного ЦУ:
root password on remote engine server engine_host.example.com:
- при выводе следующего запроса ввести
"Yes"для просмотра правил iptables на предмет их отличия от текущих параметров:
Generated iptables rules are different from current ones.
Do you want to review them? (Yes, No) [No]:
- при выводе ранее настроенных параметров нажать клавишу
Enter, чтобы подтвердить текущую конфигурацию:
--== CONFIGURATION PREVIEW ==--
Firewall manager : iptables
Update Firewall : True
Host FQDN : host.example.com
Configure WebSocket Proxy : True
Engine Host FQDN : engine_host.example.com
Please confirm installation settings (OK, Cancel) [OK]:
- ознакомиться со следующими инструкциями для использования настроенного прокси-сервера WebSocket на машине виртуализированного ЦУ:
Manual actions are required on the engine host in order to enroll certs for this host and configure the engine about it.
Please execute this command on the engine host:
engine-config -s WebSocketProxy=host.example.com:6100
and than restart the engine service to make it effective
- осуществить вход в Систему на машине виртуализированного ЦУ и выполнить следующие команды для завершения настройки:
engine-config -s WebSocketProxy=host.example.com:6100
systemctl restart ovirt-engine.service