UAG предоставляет удаленное туннельное соединение с внутренними машинами Horizon Agent. Его работа наглядно поясняется такой схемой:
По факту, это – размещенная, обычно, на DMZ замена Horizon Security Servers, работающая как прокси-хосты для подключений, и преимуществ у использования этой технологии немало, в том числе:
- Отсутствие необходимости в JMS, AJP13 и IPSec-протоколах, 4001 или других портах для его работы – только TCP 443;
- Нет нужды во включении шлюза/туннеля на внутренних Connection Server;
- Повышена безопасность за счет DMZ-аутентификации. UAG поддерживает RSA SecurID, RADIUS, CAC/certificates и др.
Важно учесть, что ряд самых современных функций Blast Extreme работают исключительно с UAG. Кроме того, стоит помнить, что ограничения для туннельных соединений меньше, чем для активных с прямой связью с Connection Server. UAG пользуется стандартным HTTPS-протоколом, а его Аppliance является чрезвычайно защищенным и построенным на Linux (SLES 12). Тем не менее, при его развороте и настройке вам не потребуются какие-либо навыки работы с дистрибутивами этого семейства. Правда, в процессе траблшуттинга без них не обойтись. А для мониторинга производительности, статуса здоровья и сервиса может использоваться API или GUI пользователя с правами администратора.
UAG поддерживает смарт-карты для аутентификации, причем в этом случае только идентифицированный этим методом трафик проходит сквозь защищенную сеть, будет доступен SSO для десктопов и RDSH-рабочих столов и приложений, а клиентские системы могут представлять собой как macOS, Linux, iOS, Android, так и Windows (версия смарт-карт 3.3). Еще одной важной особенностью можно назвать полный симбиоз с функциями балансировщика нагрузки, пример интеграции которого в среду с UAG может выглядеть так:
Понятие масштабируемости технологии UAG иллюстрирует следующая схема:
Топология включения UAG может пойти по трем сценариям, в зависимости от кол-ва NIC:
- Единственная NIC UAG Аppliance комбинирует front-end, back-end и управляющий трафик:
- Дуальные NIC, отделяющие front-end аутентифицированный трафик от управляющего и аутентифицированного back-end-трафика:
- Три NIC с полным отделением друг от друга всех видов аутентифицированного трафика:
Требования, совместимость и подготовка к развороту UAG
Со списком портов для организации UAG можно ознакомиться в статье «Установка VMware Horizon Version 2012 от «А» до «Я»», подраздел «Сетевые порты для Horizon» главы «Подготовка к инсталляции компонентов VMware Horizon 8 2012». Что же касается требований к «железу», по best practice не нужно менять значения CPU, памяти или размера диска на меньшие тех, что предложит OVF-пакет UAG Аppliance при развороте – он сам выберет конфигурацию ВМ в процессе (2 ядра и 4 ГБ RAM в стандартных средах, 4 ядра и 16 ГБ RAM – для крупных разворотов, 20 ГБ дискового пространства). Сетевые настройки могут использовать единственный интерфейс сети (внешний, внутренний и управляющий трафик должны располагаться в одной подсети), два интерфейса (внешний – в одной, а внутренний и управляющий – в другой) и три интерфейса (все в разных – наиболее защищенный разворот).
Важно! UAG Аppliance 20.12 можно разворачивать только на версиях vSphere, совместимых с Horizon 7.7 и выше, а версия клиента должна быть последней, иначе вся полнота функционала и производительности не будут доступны.
Запускать PowerShell-скрипты разворота можно на машинах с Windows 8.1 или новее, либо же на Windows Server 2008 R2 и более поздних. Также там должны быть проинсталлированы OVF Tool 4.2.0 и свежее (скачать подходящую версию можно здесь). Если в наличии версия, старше этой, ее нужно сначала деинсталлировать, а затем поставить новую.
Обновление UAG стало доступно с 27.12.20 и его Appliance можно скачать здесь или в разрезе актуального клауд-решения, а также напрямую под vSphere (FIPS) – отсюда. На последней из указанных страниц обязательно стоит скачать еще «Unified Access Gateway (UAG) 20.12 PowerShell Scripts» – далее будем использовать в процессе разворота. Сверяться с совместимостью версии, как обычно, рекомендуется здесь.
Разворот UAG Аppliance
Развернуть UAG Аppliance можно двумя методами: напрямую из клиента vSphere, либо же PowerShell-скриптами. В первом случае общая концепция процедуры разворота из OVF хорошо знакома нашим читателям по предыдущим материалам в секции «Гайды по развороту и настройке» этого блога, поэтому приводить ее здесь не будем. Гораздо интереснее сейчас, как нам кажется, научиться применять способ PowerShell-скриптов.
После прохождения всех этапов подготовки, нам нужно разархивировать скаченный zip-файл PowerShell-скриптов для нашей версии UAG:
и создать или отредактировать конфигурационный .ini-файл UAG:
В нем приступим к назначению следующих параметров:
- Находим или заводим новые параметры «name» и «uagName». Первый – это имя ВМ в vCenter (если такая машина уже существует, OVF Tool ее удалит и переместит), а по второй строке вписывается любое удобное и информативное имя, его потом нужно будет добавить в консоль Horizon, чтобы иметь возможность следить там за здоровьем и работой UAG Аppliance:
- Включаем SSH, добавив строку:
sshEnabled=true
- По строке «source» заводим полный путь к UAG «.ova»-файлу:
- В строке «target» оставляем «PASSWORD» капсом, ни в коем случае не вводя актуальный пароль – потом OVF Tool нам предложит сделать это и так. Там же вводим имя кластера вместо имени хоста. Все должно выглядеть, например, вот так:
target=vi://admin@corp.local:PASSWORD@vcenter02.corp.local/Datacenter/host/Cluster 1
- Указываем имя хранилища для извлечения инсталлятора нашего Аppliance и, опционально, можно раскомментировать строку «diskMode»:
- В зависимости от кол-ва NIC в конфигурации, устанавливаем значения для параметров «netInternet», «netManagementNetwork» и«netBackendNetwork» как одну и ту же порт-группу. В случае одно-адаптерной настройки соответствующий блок .ini-файла будет выглядеть так:
- Заводим несколько DNS-серверов через пробелы:
dns=10.2.2.11 10.2.2.115
Важно! Нет нужды вводить .pfx-пароль в этот файл, так как скрипт «uagdeploy.ps1» предложит нам это позднее:
- В «proxyDestinationUrl» указываем внутренний load balancer для Connection Server, например, так:
proxyDestinationUrl=https://view.corp.local
- В «proxyDestinationUrlThumbprints» вставляем отпечаток сертификата Connection Server в рекомендуемом формате (если сертификатов несколько, прописываем их через запятую):
- Меняем значения в строках для «ExternalUrl» по туннелю и типу протокола на внешне-разрешенное имя DNS и публичный IP-адрес:
Теперь можно непосредственно разворачивать скрипт:
- Открываем командную строку PowerShell с максимальными привилегиями и вставляем путь к «ps1»-файлу (если в пути есть кавычки, перед ним нужно добавить «&» с пробелом) и через пробел в этой же строке аргумент «-iniFile» с путем к только что сконфигурированному нами файлу. Для запуска скрипта жмем на Enter:
- Запросит пароль рута для UAG Appliance, а также пароль администратора, спросит присоединяться ли к CEIP – вводим «yes» или «no»;
Увидим прогресс работы OVF Tool, включая выключение целевой ВМ, ее удаление и разворот:
И, наконец, появится сообщение об успешном развороте UAG Appliance:
После этого можно заходить в интерфейс UAG, задавать необходимые настройки и заниматься его инициацией в консоли Horizon.
Включение и настройка UAG Appliance
В инвентаре клиента vSphere находим только что развернутую машину UAG, кликаем на нее правой кнопкой и в «Actions» в «Power» выбираем из выпавшего меню «Power On»:
Если Appliance изначально загрузился с неправильным IP, после перезагрузки это исправится. Для этого в том же меню выбираем пункт «Restart Guest OS».
Теперь в браузере вводим «https://My_UAG_IP:9443/admin/index.html» и заходим под правами администратора:
В настройках будет предложено, на выбор, импортировать ли их, или же сконфигурировать вручную сейчас. Если работаем с обновлением UAG, настройки шлюза можно просто вначале экспортировать из предыдущей версии (файл вида «UAG_Settings.json»), а затем загрузить в новую, нажав в соответствующем блоке кнопку «Select» (процедура будет рассмотрена ниже):
В появившемся окне нажимаем на «Browse» и находим файл экспорта, после чего кликаем на кнопку «Import»:
Если же это первая установка, выбираем второй блок «Configure Manually» и в «General Settings» назначаем следующее:
- Включаем ползунок на «Edge Service Settings»:
После этого внизу появится несколько строк, где в «Horizon Settings» нажимаем на иконку настроек:
- В появившемся окне включаем ползунок на «Enable Horizon»:
После этого раскроется список полей, которые необходимо заполнить.
- В «Connection Server URL» нужно ввести DNS-имя внутреннего Connection Server:
- В строке «Connection Server URL Thumbprint» вводится отпечаток после атрибута «sha1=»:
который можно узнать, если зайти через браузер на FQDN внутреннего Horizon View Connection Server и нажать на значок «замочка» перед адресом, после чего в выпавшем списке выбрать «Certificate (Valid)»:
В соответствующем окне нужный нам отпечаток выглядит так:
- Теперь включаем ползунок на «Enable PCOIP», после чего раскроется еще несколько полей для назначения протоколов и шлюзов – на всех нужно включить ползунки, как показано на скриншоте:
В «PCOIP External URL» вводим внешний IP и «:4172» внешнего балансировщика нагрузок, который перенаправляет трафик с UDP 4172 и TCP 4172 на множество UAG.
В «Blast External URL» вводим «https://<FQDN>:8443», где FQDN разрешен для балансировщика нагрузок с UDP 8443 и TCP 8443 на множество UAG.
В «Tunnel External URL» вводим «https://<FQDN>:443», где FQDN разрешен для балансировщика нагрузок с TCP 8443 на множество UAG.
Затем нажимаем внизу на «More» для редактирования поля «Proxy Pattern» (там стоит вписать «/|/downloads(.*)», чтобы пользователи могли загружать клиенты Horizon, хранящиеся на Horizon View Connection Server), и сохраняем все сделанные настройки кнопкой «Save»:
Теперь статусы на всех Edge-сервисах Horizon будут помечены включенными (зеленые точки), если раскрыть их список, как мы делали это в самом начале перед выполнением настроек.
После того, как мы базово настроили сам UAG, нужно выключить на Connection Server защищенные шлюзы PCoIP. Для этого заходим на консоль Horizon, раскрываем секцию левого меню «Settings» и нажимаем на «Servers»:
Справа переходим на вкладку «Connection Servers», выделяем наши сервера и нажимаем на «Edit»:
В окне «Edit Connection Server Settings» снимаем галочки со всех трех туннелей/шлюзов:
Последним шагом настройки станет задание статических маршрутов к каждой используемой UAG NIC – это делается в «Advanced Settings» по строке «Networking Settings» при нажатии на значок настроек:
Появится соответствующее окно, где нужно нажать на такую же иконку:
В следующем окне заполняются нужные поля:
Также полезной возможностью может быть привязка балансировщика нагрузки, которая перенаправляет его DNS-имя на специфический для нод аналог. Это настраивается в «Edge Service Settings» – «Horizon Settings» после клика на «More» внизу страницы:
Все остальные настройки UAG будут детально рассмотрены в соответствующем разделе ниже.
Добавление UAG в Horizon Console
Последнее, что нужно сделать для нормального функционирования UAG – зарегистрировать его на консоли Horizon. Для этого:
- Заходим в консоли в «Advanced Settings» и кликаем на иконку настроек по строке «System Configuration»:
- В появившемся окне меняем «UAG Name» на то, которое выбрали ранее в процессе разворота, прописываем тип локализации и заполняем другие его поля:
Затем нажимаем «Save» внизу, чтобы сохранить настройки;
- Снова заходим на «Servers» секции «Settings» левой панели консоли, справа переходим на вкладку «Gateways» и нажимаем на кнопку «Register»:
- В появившемся окне «Register Gateway» вводим имя UAG и нажимаем «OK»:
Теперь в «Dashboard» секции «Monitor» левой панели можно будет отслеживать статус UAG для активных сеансов, после захода на которую в верхнем левом блоке «System Health», если нажать на «View» внизу него, выделить в левой части открывшегося вида «Components» и зайти на вкладку «Gateway Servers», мы сможем просмотреть информацию о наличии и состоянии шлюза UAG:
Там же, в секции «Monitor», но уже в разделе «Sessions» можно смотреть информацию о подключенных пользователях:
В правой части UI выбираем из выпадающего меню «Sessions» сверху нужную сессию и видим, что в колонке «Security Gateway» по подключенному пользователю появился наш UAG:
Настройка аутентификации в UAG
В секции «Identity Bridging Settings» можно настроить SAML. Для этого сначала загружаем «Identity Provider Metadata», кликнув на иконку настроек по соответствующей строке:
Затем в консоли UAG заходим снова на «Edge Service Settings» в секцию «Horizon Settings» и нажимаем на «More» внизу окна. В строке «Auth Methods» из выпадающего меню выбираем «SAML» (если имплементировано True SSO) или «SAML and Passthrough» (при двухуровневой аутентификации – и в IdP, и в Horizon):
В случае RADIUS-аутентификации идем в «General Settings» и включаем ползунок на «Authentication Settings»:
Появится список настроек, где и включается то, что нам нужно, в строке «RADIUS», нажав на соответствующую иконку справа:
В конфигурировании RADIUS, если нажать внизу на «More», можно задать порт аутентификации и «Login page passphrase hint»:
Кстати, для этого сценария в «Edge Service Settings» – «Horizon Settings», если нажать на «More», в «Auth Methods» вместо «SAML», как мы делали ранее, нужно выбрать «RADIUS», и тогда появятся дополнительные строки, в которых нужно заполнить значения:
Тут можно настроить поле «Passcode label for RADIUS» для MFA-провайдеров, а если RADIUS применяет AD-аутентификацию, нужно включить ползунок на «Enable Windows SSO», чтобы пользователю не приходилось дважды вводить пароль.
Другие настройки UAG (Advanced settings)
Использование всей полноты функционала UAG невозможно без скрупулезной конфигурации массы полезных настроек секции «Advanced settings». И сейчас мы изучим почти каждый ее подраздел.
Далее работа с каждым из них начинается с нажатия на значок «шестеренки» по соответствующей строке группы настроек.
Account Settings
Отслеживание истечения срока действия пароля администратора UAG:
System Configuration
- Настройка шифрования после заполнения всех нужных полей в открывшемся окне:
- Конфигурирование Syslog после включения всех ползунков в соответствующем разделе, выбора его типа и ввода другой нужной информации:
- Задание настроек для SNMP, DNS и NTP – это можно сделать в самом низу окна «System Configuration». Последняя версия UAG поддерживает SNMPv3:
- Настройка таймаута сеансов. По умолчанию он равен 10 часам:
High Availability Settings
UAG поддерживает НА, настроить которую можно в следующем окне:
Здесь, в первую очередь, режим включается на «Enabled», затем вводится активный для обоих Appliance «Virtual IP Address», выбирается уникальный ID группы (значение от 1 до 255) для подсети и нажимается «Save» для сохранения настроек.
TLS Server Certificate Settings
Автоматическая загрузка валидных сертификатов настраивается здесь:
В открывшемся окне настроек можно поставить галочки для подгрузки в админский интерфейс или в интернет-интерфейс (либо же и туда, и туда), выбрать тип сертификата, загрузить PFX, нажав на «Upload PFX», ввести соответствующий пароль, а поле «Alias» нужно оставить пустым:
Endpoint Compliance Check Provider Settings
Для подписчиков OPSWAT (информация по теме выложена здесь) доступно конфигурирование для использования функции «Endpoint Compliance Check»:
В появившемся окне настроек из выпадающего меню выбирается тип провайдера («OPSWAT»), вводятся клиентские ключи, имя хоста и интервалы проверки соответствия. Затем нужно нажать на «Show Allowed Status Codes» и включить ползунок на «In compliance»:
Также для последних версий UAG можно задавать настройки агента по требованию в этом случае. Они раскрываются под предыдущей секцией и там можно выбрать тип загрузки файла:
Outbound Proxy Settings
В случае работы с OPSWAT, можно настраивать разрешение UAG контактировать с OPSWAT-серверами при проверке соответствия устройств:
Окно настройки в этом случае будет выглядеть так:
Appliance Updates Settings
Завершая разговор о дополнительных настройках UAG, мы не можем не коснуться темы конфигурации апдейтов. Она задается здесь:
После чего откроется окошко, где надо выбрать схему применения обновлений и место, откуда их забирать, после чего сохранить настройки кнопкой «Save»:
Работа с журналами логов UAG
В разделе «Support settings» UI администратора можно задавать настройки уровня журналов логов, а также просматривать их архивы:
Кнопочка загрузки по строке «Log Archive» позволит загрузить архив логов, также их можно просмотреть в «/opt/vmware/gateway/logs», либо же из браузера, зайдя на «https://MyApplianceIP:9443/rest/v1/monitor/support-archive». Последнее закачает .zip-файл логов со всеми имеющимися. Конечно, последние варианты не слишком удобны, гораздо проще все делать из текстового редактора GUI.
Обновление UAG
Если этот опыт работы с UAG для пользователя – не первый, весьма велика вероятность того, что захочется обновиться до свежайшей версии Appliance. К сожалению, обычные пути апгрейда, когда система автоматически осуществляет проверку, есть ли доступные обновления, подгружает их и самостоятельно устанавливает в окна техобслуживания, в этом случае недоступны. Нужно полностью удалить старый UAG Appliance и установить новый по описанной выше схеме.
Не забудьте перед операцией экспортировать все рабочие настройки. Для этого заходим в админку UAG на «https://<Your_UAG_IP>:9443/admin/index.html» и в блоке «Configure Manually» жмем на «Select». Если проскроллить вниз к «Support Settings» и нажать на иконку напротив «Export Unified Access Gateway Settings», можно сохранить настройки в JSON-файл:
Когда же новый Appliance будет установлен, в него можно будет импортировать эти настройки, как рассказывалось выше в разделе «Включение и настройка UAG Appliance».
Вот тот минимум, который позволит довольно успешно и полноценно применять функционал UAG в десктопной виртуализации. Если же по этой теме остались какие-то вопросы, либо же хочется углубить по ней знания и выйти на новый уровень понимания инструментов защиты и распределения пользовательского трафика извне на компоненты Horizon, добро пожаловать на авторизованные курсы по этому продукту к сертифицированным инструкторам.