03 червня 2026

Захищаємо RDP сервер за допомогою Zero Trust VPN Tunnel від Cloudflare

    Перед налаштуванням тунелю, переконайтесь, що на серверній стороні увімкнений віддалений доступ і до сервера можна підключитись по RDP штатними методами.

Захищаємо RDP сервер за допомогою Zero Trust VPN Tunnel від Cloudflare

Заходимо на панель керування Cloudflare - Zero Trust


    1. Створюємо тунель для сервера RDP

 Networks - Overview - Manage Tunnels - Add a Tunnel

 

   Даємо назву тунелю. Вибираємо довільну назву тунелю та натискаємо Next

 

 
 Завантажуємо та встановлюємо конектор на сервері RDP

    

    Обираємо тип операційної системи та її розрядність і завантажуємо конектор на сервер. Встановлюємо конектор. Після чого встановлюємо сертифікат і службу через командний рядок (cmd) з правами Адміністратора, так як вказано на скріншоті.

 

   

 Після вдалого встановлення, повертаємось до переліку конекторів і якщо світиться зелений індикатор Healtly, це означає, що з'єднання сервера з Cloudflare встановлене.


    Отже ми налаштували тунель між нашим сервером на Claudflare. Наступним кроком потрібно налаштувати підключення клієнта до нашого тунелю Claudflare. Спочатку створюємо публічне ім'я хоста.

    2. Створення публічного імені хоста 

     Відкриваємо налаштування Конектора

 
 Додаємо Published application routes

    Прописуємо Subdomain, обираємо домен зі списку. В полі Service обираємо протокол RDP, в полі URL прописуємо localhost:3389 (3389 стандартний порт RDP) і натискаємо Save.

       Наше ім'я з'явилось у списку Published application routes 

 3. Підключаємось до RDP сервера без додаткової ідентифікації

    Спочатку потрібно завантажити утиліту сервісу (lightweight server-side daemon)
На сторінці завантаження обираємо потрібний нам варіант, в нашому випадку для Windows x64

 Завантажуємо у довільну папку файл та запускаємо з параметрами:
 
 D:\TEMP>cloudflared-windows-amd64.exe access rdp --hostname rdptest1.ваш_домен.com.ua --url rdp://localhost:4000
 
 Порт 4000 є довільним, що не зайнятий клієнтською ОС. Магія полягає в тому, що тунель Cloudflare сам переспрямує порт 4000 на порт 3389 сервера RDP
 
    Успішним виконанням команди буде повідомлення
 
    INF Start Websocket listener host=localhost:4000 
 


 Для зручності можна зробити або ярличок з параметрами запуску або bat-файл.
 
    Після чого  запускаємо клієнт RDP і підключаємось до сервера
 
 

4. Захищаємо доступ.

 
 Заходимо в Zero trust - Access Control - Appllications - Add an Application

 В даному випадку обираємо Self -hosted- and-privat - Public DNS


    Вказуємо субдомен і домен нашого тунелю для якого потрібно створити двофакторну авторизацію:



     Далі потрібно створити політику (як саме ми будемо захищати):
 
    В нашому випадку авторизація буде відбуватись за допомогою ПІН-коду, що буде надсилатись на вказані електронні пошти.

 Після створення Policy, зберігаємо налаштування. Після чого, коли ми будемо намагатись підключитись по RDP, буде відбуватись переадресація на сторінку авторизації, де будемо вказувати свою електронну пошту, і після отримання на пошту ПІН-коду і вводу його на сторінці авторизації, буде доступне введення пароля на RDP-з'єднання.
 

    5.  Налаштування сторінки авторизації

     Щоб змінити зовнішній вигляд сторінки входу:
  1. Увійдіть у панель керування Cloudflare.

  2. У лівому навігаційному меню перейдіть у розділ Zero Trust.

  3. Знайдіть та відкрийте вкладку Reusable components (Повторно використовувані компоненти) -> Custom pages (Кастомні сторінки).

  4. У блоці Access login page натисніть кнопку Manage (Керувати)

      

    6. Варіант налаштування політики безпеки з використанням Service Token

    Налаштування Service Tokens складається з трьох етапів: створення самого ключа, надання йому прав на ваш сервер та запуск клієнта з цим ключем.

Ось покрокова інструкція:

    6.1.Створіть Service Token:Тут ви отримаєте ключі.

  1. Зайдіть у панель Cloudflare Zero Trust.

  2. Зліва в меню оберіть Access -> Service Auth.

  3. Натисніть кнопку Create Service Token.

  4. Введіть зрозумілу назву (наприклад, RDP-Token-Server2) та оберіть термін дії (Service Token Duration), наприклад, 1 рік.

  5. Натисніть Generate token.

  6. ОБОВ'ЯЗКОВО скопіюйте і збережіть Client ID та Client Secret (наприклад, у Блокнот). Secret показується лише один раз, якщо ви його закриєте — доведеться створювати новий токен.

    6.2. Налаштуйте політику доступу (Policy): 

  1. Перейдіть до Access -> Applications.

  2. Знайдіть застосунок вашого другого сервера і натисніть Edit.

  3. Перейдіть на вкладку Policies і натисніть Add a policy.

  4. У полі Action (Дія) обов'язково оберіть Service Auth.

  5. У блоці Include: у випадаючому списку Selector оберіть Service Token, а у полі Value — виберіть назву щойно створеного токена (RDP-Token-Server2).

  6. Збережіть політику (Save policy). Старі політики (з Email або Bypass) для цього застосунку краще видалити, щоб вони не конфліктували.

    6.3. Запустіть cloudflared на вашому комп'ютері:Команда для CMD.

Відкрийте командний рядок (CMD) на вашому комп'ютері та запустіть тунель, додавши до звичайної команди параметри вашого токена.

Команда виглядатиме так (підставте свої дані):

cloudflared access rdp --hostname [публічний домен ресурсу] --url localhost:3333 --service-token-id [ВАШ_CLIENT_ID] --service-token-secret [ВАШ_CLIENT_SECRET]

Після чого запускаємо клієнт RDP, як в попередньому варіанті з поштою