İçeriğe atla
Cloudflare Wiki

    gez · aç · Esc kapat

    RDP Protection

    Ayrı bir ürün değil. Cloudflare uzak masaüstünü yayınlamanın üç yolunu belgeliyor — ve dördüncü seçenek olan Spectrum bunların en zayıfı.

    • DurumGenel kullanımda
    • FiyatZero Trust koltuk (seat) bazlı; Spectrum yolu için Business/Enterprise + GB ücreti
    • Doğrulama

    RDP Protection nedir?

    Çözülen problem gerçek: RDP’yi internete açmak, kaba kuvvet ve fidye yazılımı saldırılarının en yaygın giriş kapılarından biri. Dört yol da 3389 portunu internetten kaldırmayı hedefliyor — ama farklı derecelerde başarıyorlar.

    Nasıl çalışır?

    Yol 1 — Tarayıcı tabanlı RDP

    İstemci kurmadan, tarayıcıdan bağlanma. Yaşam döngüsü:

    TarihDurum
    21 Mart 2025kapalı beta“in closed beta with new customers being onboarded each week”
    1 Temmuz 2025açık beta“Access RDP securely from your browser — now in open beta”
    22 Eylül 2025GA“…now generally available!”
    1 Mart 2026Pano (clipboard) kontrolleri — GA
    7 Temmuz 2026Dosya transferi — beta, tüm Zero Trust planlarında
    16 Temmuz 2026Toplu PDF yazdırma — GA

    Yol 2 — Cloudflare One istemcisiyle RDP

    WARP istemcisi kurulu bir cihazdan, yerel mstsc ile bağlanma.

    Yol 3 — İstemci tarafı cloudflared

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

    Ardından mstsc ile localhost:3389’a bağlanıyorsun.

    Yol 4 — Spectrum üzerinden 3389

    Spectrum’un protokol tablosunda RDP bir satır: Business veya Enterprise gerekiyor, tek uygulama.

    Daha iyi modern desen: Spectrum artık origin olarak bir Cloudflare Tunnel sanal ağı kullanabiliyor — Windows makinesinin public IP’si olmasına gerek kalmıyor.

    “Virtual network origins are only supported for TCP and UDP applications. The origin must be a single private IP routable within the specified virtual network. Port ranges, hostname origins (origin_dns), and multiple addresses in origin_direct are not supported. Proxy Protocol is not currently supported, so proxy_protocol must be set to off.”

    Kimlik doğrulamanın sınırı

    Ne zaman kullanılır, ne zaman kullanılmaz

    Kullanılır

    • 3389’u internetten kaldırmak istiyorsan. Dört yolun dördü de bunu farklı derecelerde yapıyor.
    • Yüklenici veya dış ekiplere geçici erişim veriyorsan. Tarayıcı tabanlı RDP istemci kurulumu gerektirmiyor — en büyük operasyonel kazanç bu.
    • Kimlik sağlayıcın üzerinden SSO ve MFA istiyorsan. Windows parolasının önüne bir katman ekliyorsun.
    • Cihaz duruşu (device posture) kontrolü yapmak istiyorsan. WARP yolunda bu mümkün.

    Kullanılmaz

    Windows kimlik yönetiminden kurtulmayı bekliyorsan. Kullanıcı kimliklerinin sunucuda önceden tanımlı olması zorunlu. Cloudflare bir katman ekliyor, mevcut katmanı kaldırmıyor.

    RDP oturum kaydı gerekiyorsa. Belgelenmiş bir özellik yok.

    Spectrum-on-3389’u güvenlik çözümü sanıyorsan. Business planında IP filtreleme yok, Proxy Protocol yok, WAF yok. Hedefi taşıyorsun, kaldırmıyorsun.

    Türkçe klavye garantisi arıyorsan. Genel bir iddia var, Türkçe için belgelenmiş bir teyit yok.

    Koltuk maliyetini öngöremiyorsan. Her kimlik doğrulayan kullanıcı bir koltuk tüketiyor ve revoke etmek koltuğu boşaltmıyor. Yüklenici trafiği yoğun bir kurumda bu, beklenmedik bir maliyet kalemi.

    Dosya transferine üretimde güveneceksen. Özellik beta ve “Transfer history is discarded when the RDP session ends.”

    cloudflared sürecini ayakta tutamayacaksan. İstemci tarafı yol, süreç ölünce bağlantıyı da öldürüyor.

    Somut örnekler

    Tarayıcı tabanlı RDP — hedef oluşturma

    # Infrastructure target
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/infrastructure/targets" \
      --request POST -H "Authorization: Bearer $CF_API_TOKEN" \
      --json '{
        "hostname": "win-sunucu-01",
        "ip": { "ipv4": { "ip_addr": "10.0.1.20", "virtual_network_id": "'"$VNET_ID"'" } }
      }'

    Tunnel yapılandırması

    # ~/.cloudflared/config.yml
    tunnel: <TUNNEL_ID>
    credentials-file: /root/.cloudflared/<TUNNEL_ID>.json
    ingress:
      - hostname: rdp.ornek.com.tr
        service: rdp://10.0.1.20:3389
      - service: http_status:404

    Özel ağ için catch-all Gateway kuralı

    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
      --request POST -H "Authorization: Bearer $CF_API_TOKEN" \
      --json '{
        "name": "ozel-ag-varsayilan-blok",
        "action": "block",
        "filters": ["l4"],
        "traffic": "net.dst.ip in {10.0.0.0/8 172.16.0.0/12 192.168.0.0/16}",
        "precedence": 10000
      }'

    Bu kuralı önce yaz, sonra izin kurallarını daha düşük precedence ile ekle.

    İstemci tarafı cloudflared

    cloudflared access rdp --hostname rdp.ornek.com.tr --url rdp://localhost:3389
    # ardından mstsc ile localhost:3389

    systemd ile ayakta tutmak:

    # /etc/systemd/system/cf-rdp.service
    [Unit]
    Description=Cloudflare RDP erisimi
    After=network-online.target
    
    [Service]
    ExecStart=/usr/local/bin/cloudflared access rdp --hostname rdp.ornek.com.tr --url rdp://localhost:3389
    Restart=always
    RestartSec=5
    
    [Install]
    WantedBy=multi-user.target

    Spectrum üzerinden 3389 (en zayıf yol)

    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
      --request POST -H "Authorization: Bearer $CF_API_TOKEN" \
      --json '{
        "protocol": "tcp/3389",
        "dns": { "type": "CNAME", "name": "rdp.ornek.com.tr" },
        "origin_direct": ["tcp://203.0.113.20:3389"],
        "ip_firewall": false,
        "proxy_protocol": "off"
      }'

    ip_firewall ve proxy_protocol Business planında zaten kullanılamıyor — yukarıdaki değerler kaçınılmaz.

    Demo 1: Üç yolu yan yana kurup farklarını ölçmek

    Adım 1 — Windows sunucusunu hazırla

    # RDP'yi aç ama güvenlik duvarında yalnızca yerel ağa izin ver
    Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' `
      -Name "fDenyTSConnections" -Value 0
    Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
    
    # İnternete kapalı olduğunu doğrula
    Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Get-NetFirewallAddressFilter
    RDP'nin açık, güvenlik duvarının yalnızca yerel ağa izin verdiği PowerShell çıktısı

    Adım 2 — 3389’un internetten kapalı olduğunu kanıtla

    # Dışarıdan bir makineden
    nmap -p 3389 -Pn 203.0.113.20
    nc -zv -w 5 203.0.113.20 3389
    nmap çıktısında filtered veya closed durumu

    Adım 3 — Tarayıcı tabanlı RDP ile bağlan

    Hiçbir istemci kurulmadan tarayıcıda açılan Windows masaüstü

    Adım 4 — Türkçe klavyeyi test et

    Tarayıcı oturumunda Türkçe Q ve F düzeniyle şu karakterleri yaz: ş ğ İ ı ö ç ü Ş Ğ Ö Ç Ü

    Tarayıcı RDP oturumunda Not Defteri'ne yazılan Türkçe karakterlerin doğru görünüp görünmediği

    Adım 5 — Pano ve dosya transferini test et

    Kopyala-yapıştır işleminin yerel makine ile uzak oturum arasında çalışması
    Bir dosyanın tarayıcı oturumuna sürükle-bırakla aktarılması

    Limitleri test et: 2 GB’lık tek dosya, 1.000 dosyalık toplu yükleme.

    Adım 6 — Ayarların zıtlığını kanıtla

    Tarayıcı tabanlı RDP  → "Authenticate with Cloudflare One Client" = KAPALI
    Yerel istemci (mstsc) → "Authenticate with Cloudflare One Client" = AÇIK
    Access uygulama ayarlarında bu seçeneğin iki yol için farklı olması gerektiğini gösteren ekran

    Yanlış ayarla dene ve ne olduğunu göster: tarayıcı yolunda açıksa çalışmıyor; mstsc yolunda kapalıysa 302 yönlendirmesi takip edilemediği için bağlantı kurulamıyor.

    Bu demoda ölçülenler:

    ÖlçütTarayıcı RDPCloudflare One istemcisiİstemci cloudflared
    İstemci kurulumuhiçWARPcloudflared
    3389 internete açık
    SSO / MFA✅ (Access kurulursa)
    Varsayılan olarak herkese açık mı✅ (kayıtlı her cihaz)✅ (tüm internet)
    Split Tunnels gerekiyor mu
    Türkçe klavyetest etyerel istemciyerel istemci
    Pano✅ (GA)yerelyerel
    Dosya transferi✅ (beta)yerelyerel
    Oturum kaydıyokyokyok
    Koltuk tüketiyor mu

    Demo 2: Spectrum yolunun neden zayıf olduğunu kanıtlamak

    Bu demo, bir güvenlik kararını veriyle destekliyor.

    Adım 1 — Spectrum uygulamasını kur

    tcp/3389 protokolüyle oluşturulan Spectrum uygulamasının panel görünümü

    Adım 2 — Bağlan ve Windows olay günlüğüne bak

    # Başarılı oturum açma olayları — kaynak IP'ye dikkat
    Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624} -MaxEvents 10 |
      Select-Object TimeCreated, @{n='KaynakIP';e={$_.Properties[18].Value}}, `
                    @{n='Kullanici';e={$_.Properties[5].Value}} | Format-Table
    4624 olaylarında kaynak IP'nin gerçek kullanıcı IP'si değil bir Cloudflare adresi olması

    Adım 3 — Kaba kuvvet denemesi yap

    Kontrollü bir ortamda, kendi test hesabına karşı birkaç hatalı oturum açma denemesi yap.

    Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} -MaxEvents 20 |
      Select-Object TimeCreated, @{n='KaynakIP';e={$_.Properties[19].Value}}, `
                    @{n='Kullanici';e={$_.Properties[5].Value}} | Format-Table
    4625 olaylarının hepsinde aynı Cloudflare IP'sinin görünmesi

    Hedefin taşındığını, kaldırılmadığını gösteren ekran bu: 3389 hâlâ erişilebilir, sadece adresi değişti.

    Adım 4 — IP filtreleme yapamadığını göster

    Business planında ip_firewall ayarını açmayı dene.

    ip_firewall alanının reddedildiği API hatası veya panelde devre dışı seçenek

    Adım 5 — WAF’ın uygulanmadığını göster

    Bir WAF custom rule yaz ve Spectrum trafiğine uygulanmadığını Security Events’ten doğrula.

    Security Events'te RDP trafiğine ait hiçbir WAF kaydının olmaması

    “Spectrum… cannot apply WAF rules to TCP traffic.”

    Adım 6 — Aynı testi tarayıcı tabanlı RDP ile tekrarla

    Access oturum açma ekranı — RDP'ye ulaşmadan önce kimlik doğrulaması
    Cloudflare One denetim loglarında kimin, ne zaman, hangi cihazdan bağlandığı

    Windows olay günlüğü hâlâ Cloudflare IP’si gösteriyor — ama artık Cloudflare tarafında kim olduğunu bilen bir log var. Spectrum yolunda o log yok.

    Bu demoda ölçülenler:

    ÖlçütSpectrum (Business)Tarayıcı tabanlı RDP
    3389 internetten erişilebilir mievet, yeni adrestehayır
    Kimlik doğrulama katmanıyokAccess SSO + MFA
    Windows logunda kaynak IPCloudflare edge IP’siCloudflare edge IP’si
    Kim bağlandı bilgisihiçbir yerde yokAccess loglarında
    IP filtrelemeyok (Enterprise)Access politikaları
    Cihaz duruşu kontrolüyok
    WAFuygulanmıyorilgisiz
    Kaba kuvvet denemesiorigin’e ulaşıyorAccess’te duruyor

    Fiyatlandırma

    YolFiyat modeli
    Tarayıcı tabanlı RDPZero Trust koltuk (seat) bazlı
    Cloudflare One istemcisiZero Trust koltuk bazlı
    İstemci tarafı cloudflaredZero Trust koltuk bazlı (Access kurulursa)
    Spectrum üzerinden 3389Business/Enterprise + 10 GB dahil, sonrası $1/GB

    Hesap limitleri

    ÖğeLimit
    Access uygulaması500
    Uygulama başına kural1.000
    Uygulama başına alan adı50
    Yeniden kullanılabilir politika500
    Kural başına IP1.000
    Kimlik sağlayıcı50
    Servis token50
    Infrastructure target5.000
    Hesap başına cloudflared tüneli1.000
    Hesap başına rota1.000
    Tünel başına aktif cloudflared replikası25
    Sanal ağ1.000
    Uygulama adı350 karakter
    Hedef adı255 karakter
    Uygulama URL’si63 karakter
    Team domain63 karakter

    “These limits may be increased on Enterprise accounts.”

    Dosya transferi limitleri (beta)

    Dosya başına 2 GB · yükleme başına en fazla 1.000 dosya · sürükle-bırak klasörlerde toplam 1.000 girdi. Ve: “Transfer history is discarded when the RDP session ends.”

    Lisanslama ve hukuki çerçeve

    Hizmet tescillidir ve Cloudflare Hizmet Şartları’na tabidir.

    Uzak masaüstü oturumları ve KVKK. Bir RDP oturumu, çalışanın ekranındaki her şeyi Cloudflare altyapısı üzerinden taşıyor. Tarayıcı tabanlı RDP’de görüntü Cloudflare’de işlenip tarayıcıya render ediliyor. Bu, kişisel veri içeren bir ekranın üçüncü taraf altyapısından geçmesi anlamına geliyor.

    Cloudflare bu konuda RDP’ye özgü bir metin yayımlamıyor. Genel Zero Trust veri işleme çerçevesi geçerli.

    Oturum kaydı yok — bu bir avantaj da olabilir. RDP oturumları kaydedilmediği için “çalışan ekranı kaydediliyor mu” sorusunun cevabı hayır. Ama denetim gereksinimin kayıt istiyorsa bu bir eksiklik.

    Windows kimlikleri sende kalıyor. “Any user identifier used to authenticate must be pre-configured on the server.” Yani Active Directory veya yerel hesap yönetimi, parola politikaları ve hesap yaşam döngüsü senin sorumluluğunda kalıyor. Cloudflare bir katman ekliyor.

    Dosya transferi ve veri sızıntısı. Beta’daki dosya transferi özelliği iki yönlü. Veri sızıntısı politikan varsa bu özelliği bilinçli olarak açıp kapatman gerekiyor — ve transfer geçmişi oturum bitince siliniyor, yani denetim izi bırakmıyor.

    Sık yapılan hatalar

    Cloudflare’in bir “RDP ürünü” olduğunu sanmak. Yok — dört yol var ve biri diğerlerinden çok daha zayıf.

    Spectrum-on-3389’u güvenlik çözümü sanmak. Business planında IP filtreleme, Proxy Protocol ve WAF yok. Hedefi taşıyorsun, kaldırmıyorsun.

    Kısa ömürlü sertifikaların RDP’de de olduğunu sanmak. Yalnızca SSH.

    RDP oturum kaydı beklemek. Belgelenmiş bir özellik yok.

    İstemci tarafı cloudflared’i Access olmadan kullanmak. “anyone on the Internet can connect.”

    WARP kaydını yetkilendirme sanmak. Kayıtlı her cihaz varsayılan olarak bağlanabiliyor.

    Split Tunnels’ı yapılandırmamak. Sessiz zaman aşımı; hata mesajı yok.

    “Authenticate with Cloudflare One Client” ayarını iki yol için aynı yapmak. Tarayıcı yolunda kapalı, mstsc yolunda açık olmalı.

    cloudflared sürecini ayakta tutmayı planlamamak. Süreç ölünce erişim de ölüyor.

    Koltuk tüketimini yanlış hesaplamak. Revoke etmek koltuğu boşaltmıyor; silmek gerekiyor.

    Servis token seçeneğini bilmemek. Makine-makine erişimi koltuk tüketmeden yapılabiliyor.

    Türkçe klavyeyi test etmeden üretime almak. Belgelenmiş bir garanti yok.

    Dosya transferinin denetim izi bıraktığını sanmak. Oturum bitince geçmiş siliniyor.

    63 karakterlik uygulama URL’si sınırını bilmemek. Uzun hostname’lerde sessizce takılıyorsun.

    Sıkça sorulan sorular

    Cloudflare'in RDP ürünü var mı?
    Hayır. Doğrulandı: developers.cloudflare.com/rdp/ diye bir ad alanı yok, llms.txt'te ürün girdisi yok, ayrı bir fiyat kalemi yok. Doküman birebir üç yöntem sayıyor: “Cloudflare offers three ways to secure RDP: Browser-based RDP · RDP with Cloudflare One Client · RDP with client-side cloudflared.” Sayfalar Cloudflare Tunnel connector bölümünün use-cases/ altında yaşıyor.
    Tarayıcı tabanlı RDP GA mi?
    Evet. Yaşam döngüsü: 21 Mart 2025 kapalı beta → 1 Temmuz 2025 açık beta → 22 Eylül 2025 GA. Sonraki eklemeler: pano kontrolleri (1 Mart 2026, GA), dosya transferi (7 Temmuz 2026, beta, tüm Zero Trust planlarında), toplu PDF yazdırma (16 Temmuz 2026, GA).
    Türkçe Q veya F klavye destekleniyor mu?
    Belgelenmemiş. GA notu genel bir iddia yapıyor: “Worldwide keyboard support. Whether your day-to-day is in Portuguese, Chinese, or something in between…” Ama hiçbir doküman Türkçe Q veya F düzenini açıkça saymıyor. Bu sayfada garanti verilmemiştir — üretime almadan önce kendi klavyenle test et.
    Tarayıcı tabanlı RDP, Access for Infrastructure'ın parçası mı?
    Hayır — en çok karıştırılan nüans bu. Birebir: “Access for Infrastructure currently supports SSH. To connect using other protocols, add a self-hosted private application. For browser-based SSH, RDP, or VNC, refer to browser-rendered terminal.” Tarayıcı RDP melez bir yapı: public hostname üzerinde “Self-hosted and private” tipinde bir Access uygulaması, artı hedef için infrastructure targets nesnesi.
    SSH'taki kısa ömürlü sertifikaların RDP karşılığı var mı?
    Yok. Access for Infrastructure SSH'ta “replaces traditional SSH keys with short-lived certificates” diyor. RDP için ise birebir: “Cloudflare will not configure user identifiers on the RDP target. Any user identifier used to authenticate must be pre-configured on the server.” Yani Cloudflare SSO ve MFA'yı Windows parolalarının önüne koyuyor; yerine geçmiyor.
    RDP oturum kaydı veya video tekrarı var mı?
    Yok. 510 KB'lık changelog tarandı, sıfır sonuç. Komut loglama da yalnızca SSH'a ait — infrastructure log alanları Hostname, Target ID, SSH user ve SSH logs. RDP oturumları için bir kayıt özelliği belgelenmiyor. Var diye yazma.
    Spectrum üzerinden 3389 açsam olmaz mı?
    Olur ama en zayıf seçenek bu. Business planında somut olarak: edge 3389'u farklı bir origin portuna eşleyemiyorsun (origin_port Enterprise), IP Access Rules kullanamıyorsun, ve Proxy Protocol kullanamıyorsun — yani her Windows oturum açma olayı bir Cloudflare edge IP'si kaydediyor. Ayrıca Spectrum TCP trafiğine WAF uygulamıyor. Dürüst yargı: Spectrum-on-3389 kaba kuvvet hedefini senin IP'nden bir Cloudflare IP'sine taşıyor, ortadan kaldırmıyor.
    İstemci tarafı cloudflared güvenli mi?
    Varsayılan olarak değil. Doküman birebir: “By default, anyone on the Internet can connect to the server using the hostname of the published application. To allow or block specific users, create a self-hosted application in Cloudflare Access.” Cloudflare bu adımı “(Recommended)” diye etiketliyor — zorunlu muamelesi yap.
    WARP'a kayıtlı olmak yetkilendirme mi?
    Hayır. Birebir: “By default, all devices enrolled in your organization can connect to the RDP server unless you build policies to allow or block specific users.” Ve Cloudflare'in kendi önerisi: “we recommend creating a catch-all Gateway block policy for your private IP space.”
    Bağlantı sessizce zaman aşımına uğruyor.
    Split Tunnels tuzağına takılmışsın. WARP varsayılan olarak RFC 1918 özel IP aralıklarını hariç tutuyor. Birebir: “you must configure Split Tunnels so that the IP/CIDR of your private network routes through the Cloudflare One Client.” Yapmazsan hata mesajı almıyorsun, sadece zaman aşımı.
    “Authenticate with Cloudflare One Client” ayarını açmalı mıyım?
    İki yol için zıt cevap — klasik karıştırma. Tarayıcı tabanlı RDP için birebir: “Authenticate with Cloudflare One Client is not supported for browser-based RDP and should remain turned off.” Ama yerel istemciyle (mstsc) kullanılan private uygulamada açık olmalı — çünkü mstsc 302 yönlendirmesini takip edemiyor.
    Maliyeti nasıl hesaplarım?
    Koltuk (seat) bazlı ve dikkat gerektiriyor. Birebir: “A user consumes a seat when they perform an authentication event… Once the total amount of seats in the subscription has been consumed, additional users who attempt to log in are blocked.” Ve kritik olan: “When you revoke a user, this action will terminate active sessions, but will not remove the user's consumption of an active seat.” Koltuğu boşaltmak için kullanıcıyı silmen gerekiyor. Servis token'ları koltuk tüketmiyor.
    Dosya transferi limitleri ne?
    Dosya başına 2 GB, yükleme başına en fazla 1.000 dosya, sürükle-bırak klasörlerde toplam 1.000 girdi. Ve önemli bir not: “Transfer history is discarded when the RDP session ends.” Özellik beta ama tüm Zero Trust planlarında.
    Windows makinemin public IP'si olmak zorunda mı?
    Hayır. Spectrum artık origin olarak bir Cloudflare Tunnel sanal ağı kullanabiliyor. Kısıtlar: “Virtual network origins are only supported for TCP and UDP applications. The origin must be a single private IP… Port ranges, hostname origins, and multiple addresses are not supported. Proxy Protocol is not currently supported, so proxy_protocol must be set to off.”

    İlgili servisler

    • Cloudflare TunnelŞirket içi sunucunu, güvenlik duvarında port açmadan Cloudflare’e giden bir tünelle yayınlar.
    • SpectrumHTTP olmayan TCP/UDP servislerini (SSH, oyun sunucusu, e-posta) Cloudflare arkasına alır.
    • Accessİç uygulamalara VPN yerine identity ve device temelli erişim policy’leri koyar.
    • GatewayÇalışanların DNS, HTTP ve ağ trafiğini filtreler; zararlı ve yasak siteleri engeller.

    Bu sayfadaki fiyat ve özellik bilgileri 1 Eylül 2026 tarihinde Cloudflare’in resmî kaynaklarından doğrulanmıştır. Cloudflare fiyatlandırmasını önceden haber vermeden değiştirebilir; bağlayıcı bilgi içinresmî sayfaya bakın.

    Hata bildir

    Yanlış bir rakam, eskimiş bir bilgi veya bozuk bir bağlantı mı buldun? Bildir, kaynağıyla birlikte kontrol edelim.