Обзор
Заходим в Гукамоле под Пользователем из Домена А, где выбираем rdp-подключение к серверу из Домена Б.
Трасты
Домен А в Домен Б и наоборот:
- Тип: Внешний
- Поддержка шифрования Kerberos AES: нет
- Направление: двустороннее
- Транзитивность: нет
- Аутентификация: для всего домена
Разрешения
Пользователь из домена A был присоединен к локальной группе пользователей удаленного рабочего стола на сервере из домена B. Временно также попробовал с локальной группой администраторов.
Гуакамоле
Вся настройка была сделана не мной, и у меня мало информации, так как ею управляет другая команда. Что я знаю, так это то, что он отлично работает с пользователем из домена А на сервер из домена А.
Пользователи входят в него с помощью upn и используют 2FA по OpenOTP.
Если вы, ребята, думаете, что это поможет поделиться некоторыми конфигурациями гуакамоле, дайте мне знать, что вы хотите увидеть, и я свяжусь с командой.
Связи на гуакамоле
- протокол: рдп
- hostname: ip сервера из домена B
- порт: 3389
- имя пользователя: ${GUAC_USERNAME}
- пароль: ${GUAC_PASSWORD}
- домен: пустой
- режим безопасности: NLA
- отключить аутентификацию: нет
- игнорировать сертификат сервера: да
- все остальное установлено по умолчанию/не настроено
Конечно, мы пробовали несколько разных настроек.
Симптомы
Теперь вот что происходит.
- Я вхожу в Гуакамоле с Пользователем из Домена А
- получить OpenOTP push и подтвердить
- я вошел в гуакамоле и выбрал соединение с сервером домена B
- получить сообщение об ошибке:
Сервер удаленного рабочего стола в настоящее время недоступен. Если проблема сохраняется, сообщите об этом системному администратору или проверьте системные журналы.
- после нескольких попыток я иногда получаю это сообщение:
Это соединение было закрыто, так как сервер слишком долго не отвечает. Обычно это вызвано проблемами с сетью, такими как слабый сигнал беспроводной сети или низкая скорость сети. Проверьте подключение к сети и повторите попытку или обратитесь к системному администратору.
- и теперь наступает забавная часть, которая сводит меня с ума: я могу войти на сервер домена B с пользователем из домена A через прямой rdp, и если я это сделаю, оставьте соединение открытым и запустите соединение на гуакамоле, я могу бери сессию!!
Журналы
Журналы гуакамоле не показывают абсолютно ничего полезного.
Журнал безопасности Windows показывает это событие при ошибке входа:
Идентификатор события 4625, вход в систему
Не удалось войти в учетную запись.
Предмет:
Идентификатор безопасности: NULL SID
Имя учетной записи: -
Домен учетной записи: -
Идентификатор входа: 0x0
Тип входа: 3
Учетная запись, для которой не удалось выполнить вход:
Идентификатор безопасности: NULL SID
Имя учетной записи: Пользователь (правильно)
Домен учетной записи: DomainA (правильно)
Информация об отказе:
Причина сбоя: Произошла ошибка при входе в систему.
Статус: 0xC000005E
Подстатус: 0x0
Обрабатывать информацию:
Идентификатор вызывающего процесса: 0x0
Имя вызывающего процесса: -
Информация о сети:
Имя рабочей станции: f7054e3b9dd7
Исходный сетевой адрес: Guacamole-Server-IP
Исходный порт: 0
Подробная информация об аутентификации:
Процесс входа в систему: NtLmSsp
Пакет аутентификации: NTLM
Транзитные услуги: -
Имя пакета (только NTLM): -
Длина ключа: 0
Это событие генерируется при сбое запроса на вход. Он генерируется на компьютере, к которому была предпринята попытка доступа.
В полях «Тема» указана учетная запись в локальной системе, которая запросила вход. Чаще всего это служба, такая как служба сервера, или локальный процесс, такой как Winlogon.exe или Services.exe.
В поле «Тип входа» указывается тип запрошенного входа. Наиболее распространены типы 2 (интерактивный) и 3 (сетевой).
В полях Информация о процессе указывается, какая учетная запись и какой процесс в системе запросил вход в систему.
В полях «Информация о сети» указывается источник запроса на удаленный вход в систему. Имя рабочей станции доступно не всегда и в некоторых случаях может быть оставлено пустым.
В полях сведений об аутентификации содержится подробная информация об этом конкретном запросе на вход.
- Транзитные службы указывают, какие промежуточные службы участвовали в этом запросе на вход.
- Имя пакета указывает, какой подпротокол использовался среди протоколов NTLM.
- Длина ключа указывает длину сгенерированного сеансового ключа. Это будет 0, если сеансовый ключ не был запрошен.
Исправление проблем
Теперь в этот момент я не знаю, где установить мой следующий фокус. Мы попробовали несколько настроек для RDP-соединения Guacamole. Провел много исследований в Интернете, но не смог найти примеров с информацией, где кто-то пытается сделать то же самое, что и мы. Поскольку обычный rdp работает нормально, мы считаем, что наши доверительные отношения и разрешения должны быть в порядке.
Можете ли вы, ребята, дать мне какие-либо намеки, в каком направлении я должен исследовать?
Кто-нибудь использует гуакамоле в аналогичной настройке?
Редактировать
Дополнительная информация о программе просмотра событий, предложенная пользователем Swisstone:
RemoteDesktopServices-RdpCoreTS
08:38:23 Информация: Сервер принял новое TCP-соединение от клиента *Guacamole-IP*:53494.
08:38:23 Информация: создано соединение RDP-Tcp#78
08:38:23 Информация: Вызван метод интерфейса: PrepareForAccept
08:38:23 Информация: Вызван метод интерфейса: SendPolicyData
08:38:23 Информация: сеанс PerfCounter запущен с идентификатором экземпляра 78.
08:38:23 Предупреждение: сокет TCP корректно завершен
08:38:23 Информация: Вызван метод интерфейса: OnDisconnected
08:38:23 Информация: Сервер разорвал основное соединение RDP с клиентом.
08:38:23 Информация: Во время этого подключения сервер не отправлял данные или обновление графики в течение 0 секунд (Idle1: 0, Idle2: 0).
08:38:23 Информация: Канал rdpinpt был закрыт между сервером и клиентом в транспортном туннеле: 0.
08:38:23 Информация: Канал rdpcmd был закрыт между сервером и клиентом в транспортном туннеле: 0.
08:38:23 Информация: Канал rdplic был закрыт между сервером и клиентом в транспортном туннеле: 0.
08:38:23 Информация: Причина отключения 14
TerminalServices-LocalSessionManager
ничего за это время
TerminalServices-RemoteConnectionManager
ничего за это время
Забыл упомянуть, сервер версии 2019 1809.
Редактировать2
Хорошо, теперь я заработал, изменив режим безопасности при подключении на tls. Я помню, что пробовал tls раньше, когда он не работал. Возможно, некоторые из изменений, которые я внес в течение всего процесса устранения неполадок, имели значение. Пока не могу сказать, что это было.
Я пришел к этому «решению», случайным образом попробовав различные варианты подключения с помощью freerdp после того, как обнаружил, что он используется гуакамоле для соединений rdp.
Кто-нибудь видит какие-либо проблемы с использованием tls вместо nla в этом случае?