Windows RDP за NAT с туннелем Cloudflare

Вопрос или проблема

Мое интернет-соединение находится за NAT, что делает невозможным предоставление доступа к чему-либо снаружи (камеры видеонаблюдения, файловые серверы и т.д.)

Я пробую CloudFlare Zero Trust Tunnel, чтобы обойти его, и, кажется, это работает нормально. Я запустил установщик Windows и выполнил эту команду:

cloudflared.exe service install CLOUDFLARE_TOKEN_HERE

И настроил туннель так:

enter image description here

Теперь, если я подключаюсь к emby.example.com, я могу увидеть мой веб-сайт, размещенный локально на порту 8096, с внешнего компьютера.

Что я не могу сделать, так это подключиться к Windows RDP: он локально активен на порту 3389, с отключенной опцией “Требовать аутентификацию на уровне сети”. Однако, если я открываю RDP клиент на внешнем компьютере и подключаюсь к rdp://rdp.example.com, клиент просто ничего не находит. Почему?

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

https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/rdp/#connect-to-rdp-server-with-cloudflared-access

В основном вы:

  1. Устанавливаете приложение cloudflared на клиент (в дополнение к серверу).

  2. Запускаете приложение со следующим командой для создания локального слушателя.

    cloudflared access rdp –hostname rdp.example.com –url rdp://localhost:3389

  3. А затем открываете ваш RDP клиент и подключаетесь к “localhost:3389”

Документация объясняет, что нужно держать слушатель запущенным.

Мне удалось запустить это в LinuxLight с Remmina в качестве RDP клиента.

Ответ или решение

Теория

Windows RDP (удалённый рабочий стол) позволяет удалённое подключение к компьютеру, работающему под управлением ОС Windows, но NAT (когда у вас нет прямого внешнего IP) может создавать серьезные трудности в установлении таких соединений. В этой ситуации Cloudflare Tunnel (Zero Trust) предлагает решение, позволяющее обойти ограничение, создаваемое NAT. Используя Cloudflare Tunnel, вы можете безопасно и надежно получить доступ к внутренним ресурсам вашей сети через Интернет.

Пример

В вашей ситуации вы успешно установили и настроили Cloudflare Tunnel для доступа к вашему локальному веб-сайту через ваш зарегистрированный домен emby.example.com. Однако у вас возникли проблемы с доступом к RDP на порте 3389. Это связано с тем, что для подключения через Cloudflare Tunnel к RDP требуется дополнительная процедура, отличающаяся от подхода к HTTP-трафику.

Применение

Чтобы подключиться к RDP через Cloudflare Tunnel, выполните следующие шаги:

  1. Установите cloudflared на клиенте, помимо сервера:
    Это необходимо для того, чтобы клиент мог устанавливать безопасное соединение через туннель, управляемый Cloudflare.

  2. Создайте локальный слушатель на клиентской машине:
    Запустите следующую команду на клиенте, чтобы создать локальный сервер, который перехватывает запросы RDP:

    cloudflared access rdp --hostname rdp.example.com --url rdp://localhost:3389

    Эта команда создает локальный слушатель RDP на порту 3389, который туннелируется через Cloudflare и преобразуется на сервере.

  3. Откройте ваш RDP клиент и установите соединение с localhost:3389:
    Это обеспечит туннелирование вашего RDP-соединения, которое будет проходить через Cloudflare и возвращаться к вашему внутреннему серверу.

Важно отметить, что слушатель должен быть активен постоянно во время сеанса соединения. Такой подход обеспечивает дополнительный уровень безопасности, позволяя использовать верификацию и одноразовые пароли (OTP), предлагаемые Cloudflare, что делает удалённое подключение более защищенным.

Таким образом, использование Cloudflare Tunnel и соответствующих настроек позволяет эффективно обойти ограничения NAT для соединений RDP, обеспечивая доступность и безопасность ваших сетевых ресурсов.

Оцените материал
Добавить комментарий

Капча загружается...