Установка сертификатов Let’s Encrypt на Windows Server · Мультифактор

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор Сертификаты
Содержание
  1. Описание функционала
  2. Перед началом работы
  3. Если что-то не работает
  4. Win-acme
  5. Возможные проблемы при подключении с ос отличных от windows
  6. Двойное rdp подключение к хостам вне коллекции rds
  7. Дополнительная литература
  8. Мнение
  9. Мониторинг удаленных подключений
  10. Настройка pam модулей ssh
  11. Настройка мультифактора
  12. Настройка службы sshd
  13. Наш тестовый стенд
  14. Невозможность указать нестандартный порт подключения на старых rdp клиентах microsoft
  15. Некорректная работа с nat
  16. Необходимость решения вопроса с ssl сертификатом для подключения к шлюзу
  17. Нюансы эксплуатации
  18. Обновление сертификатов
  19. Общие сведения
  20. Отсутствие возможности копирования файлов
  21. Подключение к хостам вне коллекции rds
  22. Предварительные требования
  23. Принцип работы
  24. Проверка
  25. Установка и настройка модуля pam_radius
  26. Установка сертификата для remote desktop gateway
  27. Установка сертификата для sstp vpn
  28. Установка через развертывание служб удаленных рабочих столов
  29. Установка, конфигурация и проверка web client
  30. Установка, конфигурация и проверка роли remote desktop gateway

Описание функционала

Компонент RD Gateway представляет из себя стандартную (доступную из коробки) роль Windows Server. Суть заключается в том, что на периметре локальной сети разворачивается хост на котором инсталлируется компонент RD Gateway. Как нам подсказывает название, он является шлюзом для удаленных подключений.

Перед началом работы

Не закрывайте текущую ssh сессию, пока не убедитесь, что все работает.

Если что-то не работает

Последовательно проверьте, что вы ничего не упустили:

Если ничего не сработало, обращайтесь, поможем.

Win-acme

Для работы с сервером сертификации необходимо загрузить клиент Win-Acme. Клиент распространяется бесплатно, исходный код доступен в GitHub.

Возможные проблемы при подключении с ос отличных от windows

Функционал, необходимый для подключения через шлюз удаленных рабочих столов, интегрирован в стандартный RDP клиент Microsoft. Однако, если необходимо подключаться с других ОС, необходимо предварительно проверить возможность подключения через шлюз.

Двойное rdp подключение к хостам вне коллекции rds

На текущий момент мне не удалось напрямую подключиться к узлам, которые не находятся в RDS коллекции. Пока что мне известен только способ через двойное подключение, где в качестве прокси будет использован RDSH узел. Для пользователя использование этого метода может стать причиной низкого быстродействия удаленного подключения.

Дополнительная литература

Для более подробных инструкций предлагаю посмотреть документацию Microsoft.

Мнение

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

Большой удачей является тот факт, что обе технологии могут работать вместе в гибридном варианте. Более того, они работают через один порт и через один и тот же сервис IIS, который устанавливается при развертывании, что также упрощает жизнь специалистам по эксплуатации.

Как уже упоминалось выше, при использовании некоторых хитростей можно расширить зону применения (публикация rdp клиента для дальнейшего подключения на компьютеры не входящие в коллекции) и предоставить нашим коллегам удаленный доступ вне зависимости от типа и конфигурации их ОС.

Про сертификаты:  Подарочный сертификат — Московский театр мюзикла

Также администраторы получают возможность централизовано (через свойства коллекций или Active Directory) управлять доступом и заниматься мониторингом подключений. Это очень удобно с точки зрения интеграции с уже существующей инфраструктурой.

Мониторинг удаленных подключений

Для того, чтобы узнать информацию об успешных или неудачных попытках подключения к шлюзу мы можем воспользоваться инструментом Просмотр событий. Нужную нам информацию мы найдем журналах Безопасность и Microsoft-Windows-TerminalServices-Gateway.

Для примера я произведу 2 попытки входа.

Первая — учетные данные некорректны.

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор
В журнале Безопасность, в поле Account Name и Account Domain мы можем увидеть введенные пользователем данные. Также мы видим причину неудачи авторизации.

Вторая — учетные данные корректны.

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор
Процедура авторизации завершилась успехом.

Настройка pam модулей ssh

Откройте для редактирования файл /etc/pam.d/sshd

$ sudo vi /etc/pam.d/sshd

В файле закомментируйте строку auth substack password-auth и добавьте в конец следующую настройку:

auth required pam_radius_auth.so skip_passwd client_id=NAS_Identifier conf=/etc/pam_radius_ssh.conf

где

Сохраните и закройте файл (:x).
В итоге он должен выглядеть подобным образом:

Настройка мультифактора

Зайдите в систему управления Мультифактором, далее в раздел “Ресурсы” и создайте новый Linux сервер.
После создания вам будут доступны два параметра: NAS Identifier и Shared Secret, они потребуются для последующих шагов.

Настройка службы sshd

Отредактируйте файл /etc/ssh/sshd_config

$ sudo vi /etc/ssh/sshd_config
  1. Включите PAM интерфейс
ChallengeResponseAuthentication yes
  1. Добавьте способы аутентификации
AuthenticationMethods publickey,keyboard-interactive:pam

Сохраните файл (:x) и перезапустите ssh демона

$ sudo systemctl restart sshd

Наш тестовый стенд

Чтобы легче было понимать материал, опишу нашу тестовую лабораторию на которой мы будем проводить тесты.

Стенд состоит из 4х узлов:

  • lab-dc1.party.hard — контроллер домена.
  • lab-rds1.party.hard — сервер, на котором уже создано тестовое развертывание служб удаленных рабочих столов.
  • lab-rdgw1.party.hard — сервер шлюза удаленных рабочих столов и компонента web client.
  • lab-client1 — узел вне домена, моделирует клиентское подключение.

Невозможность указать нестандартный порт подключения на старых rdp клиентах microsoft

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

Такой сценарий, безусловно, поддерживается, однако проблемы могут возникнуть на клиентских машинах со старой версией RDP клиента. При попытке указать внешний адрес и порт подключения будет выдаваться ошибка о невозможности выполнения этого действия.

Решение только одно — установка обновления RDP клиента. Начиная с Windows 8 клиент уже обновлен и такой проблемы замечено небыло.

Некорректная работа с nat

При эксплуатации была выявлена проблема, при которой не удавалось установить соединение с RDSH узлами. В ходе диагностики выяснилось, что если доступ к узлу с компонентом Web Client осуществляется с помощью трансляции портов отличных от 443, то подключение не может быть установлено. Если транслировать внешний порт 443 в такой же внутренний, то подобной проблемы не возникает.

Необходимость решения вопроса с ssl сертификатом для подключения к шлюзу

Этот пункт подразумевает обязательное доверие со стороны клиентов к внешнему сертификату безопасности. Проще говоря, если у клиента нет доверия к сертификату, то подключиться к шлюзу не получится. Вариантов решения не так уж и много:

Про сертификаты:  Купить SSL-сертификат для перевода сайта на

Нюансы эксплуатации

В ходе изучения технологии я столкнулся с несколькими нюансами которые желательно знать перед вводом в эксплуатацию.

Обновление сертификатов

Обратите внимание, сертификат Let’t Encrypt выдается сроком на 3 месяца, но скрипт установки создает задачу в Task Scheduler для автоматического обновления.

Общие сведения

Для работы служб удаленного доступа Windows Server, таким как Remote Desktop Gateway и Remote Access VPN требуется требуется сертификат, выданный публичным удостоверяющим центром.

Сертификат используется для шифрования трафика между клиентом и сервером, а также для аутентификации сервера (не клиента).
Можно использовать самоподписанный сертификат, но в таком случае вам придется устанавливать его на каждое устройство ваших пользователей.

Есть бесплатная альтернатива — сервис Let’s Encrypt, в котором можно бесплатно за несколько минут получить валидный сертификат.

Отсутствие возможности копирования файлов

К сожалению, на момент публикации статьи в компоненте отсутствует возможность копировать файлы между системами. Возможно, в вашей рабочей деятельности это будет являться важным фактором, поэтому это стоит учитывать.

Подключение к хостам вне коллекции rds

У некоторых может возникнуть вопрос:

Возможно ли подключение через веб-браузер к серверам, которые не находятся в коллекции RDS? А к клиентским компьютерам?

Да, такое возможно с небольшой хитростью. Для этого нам необходимо опубликовать RemoteApp приложение удаленного рабочего стола (mstsc) с необходимыми параметрами подключения.

Ниже я покажу пример публикации удаленного подключения к серверу lab-dc1.party.hard.

Подход имеет свои недостатки. Таким образом мы, фактически, устанавливаем 2 RDP соединения. Сначала с узлом RDSH и отсюда устанавливаем новое соединение с нужным нам хостом.

При использовании хитрости описанной выше, наш пользователь увидит в веб-панели только опубликованное приложение, без значка подключения к RDSH узлу коллекции. Это связано с тем, что коллекции могут быть двух типов:

  • Сессии
  • Приложения RemoteApp

Поэтому, если необходимо сохранить у пользователя как подключение к RDSH узлу, так и к другому серверу или клиентскому компьютеру, необходимо изменить один параметр в реестре.

HKLMSOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerCentralPublishedResourcesPublishedFarms<collection>RemoteDesktops<collection>ShowInPortal

Значение этого ключа должно быть равно 1.

После изменения значения пользователь увидит оба варианта подключения.

Предварительные требования

  • В сети должно быть сконфигурировано развертывание удаленных рабочих столов.
  • Версия ОС на узлах с ролями Connection Broker, Web Access, Session Host, Gateway должна быть Windows Server 2021 .
  • Лицензии CAL должны выдаваться на пользователя, не на устройство.
  • На узле Web client должно быть установлено обновление KB4025334.
  • Наличие развернутого домена Active Directory.

Принцип работы

  1. SSHD использует модуль PAM_RADIUS для второго фактора проверки подлинности
  2. Модуль подключается через RADIUS протокол к сервису Мультифактор
  3. Мультифактор отправляет одноразовый пароль или PUSH уведомление пользователю для подтверждения доступа
  4. Пользователь вводит одноразовый пароль или подтверждает PUSH и подключается к терминалу

Проверка

Не закрывая текущую сессию, подключите новую.

Одна кнопка разрешает доступ, вторая блокирует.

Про сертификаты:  Как настроить HTTPS — поможет SSL Configuration Generator / Хабр

Установка и настройка модуля pam_radius

$ sudo yum -y install epel-release$ sudo yum -y install pam_radius

Далее создайте файл конфигурации

$ sudo vi /etc/pam_radius_ssh.conf

Впишите в него настройки RADIUS сервера Мультифактора, сохраните и закройте редактор (:x)

Установка сертификата для remote desktop gateway

Перед установкой, убедитесь, что:

  • адрес сервера указан в DNS
  • на сервере установлена роль Remote Desktop Gateway

Запустите скрипт

Установка сертификата для sstp vpn

Перед установкой, убедитесь, что:

  • адрес сервера указан в DNS
  • на сервере установлена роль Direct Access and VPN (RAS)

Запустите скрипт

Установка через развертывание служб удаленных рабочих столов

Начнем с сервера lab-rds1.party.hard. Для инсталляции роли нам необходимо в Диспетчере серверов, где уже существует развертывание инфраструктуры RDS, добавить сервер lab-rdgw1.party.hard для управления.

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор
Производим поиск и добавление сервера для управления.

Затем, через иконку RD Gateway, добавить роль узлу lab-rdgw1.party.hard.

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор
Выбираем интересующую нас роль для развертывания.

Следующим этапом мы займемся конфигурацией сертификатов.

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор
Выберем пункт Создать новый сертификат.

В результате выполненных действий, статус изменится на Готово к применению.

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор
Воспользуемся статусом готовности и нажмем кнопку Применить.

Установка, конфигурация и проверка web client

В этой статье мы развернем компонент Web client, как и Remote Desktop Gateway, на отдельном узле — lab-rdgw1.party.hard. Воспользуемся уже сконфигурированной инфраструктурой, описанной выше.

Т.к мы планируем развернуть компонент на узле lab-rdgw1.party.hard, нам необходимо установить на него роль Web Access, иначе, мы столкнемся с невозможностью установки Web client.

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор
Подобная ошибка возникнет при отсутствии роли RD Web Access на узле, в момент публикации Web client.

Для этого воспользуемся способом установки через развертывание служб удаленных рабочих столов и добавим управляемый хост в Диспетчере серверов.

Теперь перейдем к установке роли Web Access. Для этого выберем пункт Добавить сервера Web Access в Обзоре развертывания.

Укажем узел для развертывания роли.

Подтверждаем установку и ждем ее завершения.

Теперь переходим непосредственно к установке Web client. На текущий момент установка компонента возможна только через PowerShell. Может быть, со временем, разработчики добавят возможность установки через GUI.

Сперва нам необходимо обновить модуль PowershellGet. Открываем Powershell от имени администратора и вводим:

Install-Module -Name PowerShellGet -Force

Для корректной работы нам нужно закрыть и еще раз открыть Powershell от имени администратора, иначе установленный модуль не будет работать.

После установки PowershellGet устанавливаем модуль RDWebClientManagement. Для этого вводим в Powershell:

Install-Module -Name RDWebClientManagement

Также подтверждаем установку и соглашаемся с условиями в процессе выполнения командлета.

Теперь установим модуль Web client выполнив в Powershell командлет:

Install-RDWebClientPackage

Теперь ненадолго переместимся на узел с ролью RD Connection Broker. Отсюда нам нужен сертификат который уже или будет назначен для роли RD Connection Broker. Так как мы разворачиваем тестовый стенд, нам проще создать новый самоподписанный.

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор
В разделе коллекций, меню задачи, выбираем редактирование свойств развертывания.

После этого нам необходимо найти его в оснастке Сертификаты учетной записи компьютера в виде ключевой пары .pfx и экспортировать публичную часть.

Установка сертификатов Let's Encrypt на Windows Server · Мультифактор
Сформированные нами сертификаты можно найти в папке Личное.

Только что полученный сертификат переносим на сервер lab-rdgw1.party.hard любым доступным способом и сами возвращаемся на него же. 🙂

Импортируем открытую часть сертификата для развертывания Web client.

Установка, конфигурация и проверка роли remote desktop gateway

Установить роль возможно произвести разными способами. Мы рассмотрим способ через развертывание служб удаленных рабочих столов.

Оцените статью
Мой сертификат
Добавить комментарий