Terminal Server (Uzak Masaüstü Sunucusu) Kullanıcı Politikaları

Microsoft RDS Security Best Practices: Güvenli Uzak Masaüstü Hizmetleri Gerekli Politikalar

İçindekiler
1. [Giriş](giriş)
2. [RDS Güvenlik Mimarisi](rds-güvenlik-mimarisi)
3. [Ağ Seviyesinde Güvenlik Önlemleri](ağ-seviyesinde-güvenlik-önlemleri)
4. [Kimlik Doğrulama ve Yetkilendirme](kimlik-doğrulama-ve-yetkilendirme)
5. [Erişim Kontrolü](erişim-kontrolü)
6. [Şifreleme ve Veri Güvenliği](şifreleme-ve-veri-güvenliği)
7. [İzleme ve Denetim](i̇zleme-ve-denetim)
8. [İşletim Sistemi Güvenliği](i̇şletim-sistemi-güvenliği)
9. [Uygulama Güvenliği](uygulama-güvenliği)
10. [Güvenlik Duvarı ve Ağ Geçidi Yapılandırması](güvenlik-duvarı-ve-ağ-geçidi-yapılandırması)
11. [Zafiyet Yönetimi](zafiyet-yönetimi)
12. [Kapsamlı Güvenlik Kontrol Listesi](kapsamlı-güvenlik-kontrol-listesi)

Giriş

Microsoft Remote Desktop Services (RDS), uzaktan çalışma ve uzaktan uygulama erişimi için kritik bir altyapı bileşeni haline gelmiştir. Özellikle pandemi sonrası hibrit çalışma modellerinin yaygınlaşmasıyla, RDS altyapılarının güvenliği her zamankinden daha önemli hale gelmiştir. Bu blog yazısında, RDS ortamınızı güvenli hale getirmek için uygulamanız gereken en iyi güvenlik uygulamalarını detaylı bir şekilde ele alacağız.

RDS, kuruluşların kullanıcılarına uzaktan masaüstü ve uygulama erişimi sağlamasına olanak tanırken, yetersiz güvenlik önlemleri nedeniyle siber saldırganlar için cazip bir hedef haline gelebilir. Kimlik avı, brute force saldırıları, man-in-the-middle saldırıları ve sıfır gün açıkları gibi tehditlere karşı RDS altyapınızı korumak için kapsamlı bir güvenlik stratejisi gereklidir.

RDS Güvenlik Mimarisi

Modern RDS Mimarisi Bileşenleri

Güvenli bir RDS mimarisi aşağıdaki temel bileşenlerden oluşur:

– RD Connection Broker: Oturum yönetimi ve yük dengeleme sağlar
– RD Gateway: İnternet üzerinden güvenli erişim sağlar
– RD Web Access: Web tabanlı erişim portalı sunar
– RD Session Host: Kullanıcıların bağlandığı oturum sunucuları
– RD Licensing: Lisans yönetimini sağlar
– RD Virtualization Host: VDI (Virtual Desktop Infrastructure) için

Güvenli Mimari Tasarımı

Güvenli bir RDS mimarisi için önerilen yapılandırma:

1. Çok Katmanlı Mimari: Bileşenleri farklı güvenlik katmanlarına ayırın
– RD Gateway’i DMZ’ye yerleştirin
– Connection Broker ve diğer bileşenleri iç ağda tutun
– Oturum sunucularını ayrı bir alt ağda izole edin

2. Yüksek Kullanılabilirlik: Kritik bileşenler için yedeklilik sağlayın
– Connection Broker yüksek kullanılabilirlik yapılandırması
– RD Gateway için NLB (Network Load Balancing)
– Oturum sunucularının yük dengelemesi

3. Güvenlik Bölgeleri: Trafik akışını kontrol eden güvenlik bölgeleri oluşturun

Internet –> Firewall –> DMZ (RD Gateway) –> Firewall –> Internal Network (Connection Broker, Session Hosts)

Ağ Seviyesinde Güvenlik Önlemleri

Network Level Authentication (NLA)

NLA, kullanıcının RDS bağlantısı kurulmadan önce kimlik doğrulaması yapmasını zorunlu kılar:

PowerShell ile NLA etkinleştirme

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1

 

Sınırlı Ağ Erişimi

– RDS trafiğini VPN veya SD-WAN üzerinden tünelle
– Jump server mimarisi uygula
– RDS bağlantı noktalarını yalnızca gerekli kaynaklara aç

IP Kısıtlamaları

PowerShell ile RD Gateway’de IP kısıtlaması yapılandırma

$AuthzManager = Get-WmiObject -class "Win32_TSGatewayAuthorizationPolicy" -namespace root\cimv2\terminalservices -ComputerName localhost
$AuthzManager.AddConnectionPolicy("IP Restrictions", "Restrict by IP", 0, 1, 0, 1, $null, $null, "192.168.1.0/24,10.0.0.0/8")

 

RDP Bağlantı Noktasını Değiştirme

Varsayılan 3389 portunu değiştirmek basit bir güvenlik önlemidir:

PowerShell ile RDP portunu değiştirme

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber" -Value 9876
New-NetFirewallRule -DisplayName "RDP Custom Port" -Direction Inbound -Protocol TCP -LocalPort 9876 -Action Allow

 

Kimlik Doğrulama ve Yetkilendirme

Çok Faktörlü Kimlik Doğrulama (MFA)

MFA, RDS güvenliği için kritik öneme sahiptir:

– Azure MFA: Azure AD ile entegrasyon
– Smart Card kimlik doğrulaması: PKI altyapısıyla entegre edin
– Üçüncü taraf MFA çözümleri: Duo Security, RSA SecurID vb.

Azure MFA entegrasyonu için:

 

 

# Azure AD ile tümleşik MFA için Azure MFA sunucu bileşenini RD Gateway'e yükleyin
# ve aşağıdaki PowerShell komutunu çalıştırın
Install-PackageProvider -Name NuGet -Force
Install-Module -Name AzureAD -Force
Connect-AzureAD
# MFA ayarlarını yapılandırma komutları...

 

 

Güçlü Parola Politikaları

– Minimum 14 karakter uzunluğunda parolalar
– Karmaşıklık gereksinimleri (büyük/küçük harf, sayı, özel karakter)
– 90 günlük parola değişim zorunluluğu
– Parola geçmişi uygulaması (son 24 parola tekrar kullanılamaz)

PowerShell ile güçlü parola politikası ayarlama

$domain = Get-ADDomain
Set-ADDefaultDomainPasswordPolicy -Identity $domain.DNSRoot -ComplexityEnabled $true -MinPasswordLength 14 -PasswordHistoryCount 24 -MaxPasswordAge 90.00:00:00 -MinPasswordAge 1.00:00:00 -LockoutThreshold 5

 

Yönetici Hesapları İçin PAM (Privileged Access Management)

– Just-In-Time (JIT) erişimi uygulayın
– Ayrı yönetici hesapları kullanın
– Yükseltilmiş ayrıcalıklar için onay mekanizması kurun

Erişim Kontrolü

RBAC (Role-Based Access Control)

– Görev ayrımı prensibiyle roller tanımlayın
– En az ayrıcalık prensibini uygulayın
– RDS özel yönetim rolleri oluşturun

PowerShell ile özel RDS yönetici rolü oluşturma

New-RDSessionCollectionRole -CollectionName "MyCollection" -RoleName "RDS Support" -UserGroupName "DOMAIN\RDS Support" -Actions @("DISCONNECT", "LOGOFF", "SENDMESSAGE")

 

Oturum Kısıtlamaları

– Maksimum oturum süresini sınırlayın
– Boşta kalan oturumları otomatik sonlandırın
– Kullanıcı başına eşzamanlı oturum sayısını sınırlayın

PowerShell ile oturum zaman aşımı ayarları

Set-RDSessionCollectionConfiguration -CollectionName "MyCollection" -IdleSessionLimitMin 30 -DisconnectedSessionLimitMin 60 -MaxSessionLimit 3

 

Kaynak Atama Kontrolü

– Yalnızca gerekli uygulamalara ve kaynaklara erişim sağlayın
– Kaynakları gruplar bazında atayın
– Collection bazlı izolasyon uygulayın

Şifreleme ve Veri Güvenliği

TLS ile İletişim Şifreleme

Tüm RDS bileşenleri arasında TLS 1.2 veya üzeri kullanın:

TLS 1.2'yi etkinleştirme
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server"
if (!(Test-Path $regPath)) {
New-Item -Path $regPath -Force | Out-Null
}
New-ItemProperty -Path $regPath -Name "Enabled" -Value 1 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $regPath -Name "DisabledByDefault" -Value 0 -PropertyType DWORD -Force | Out-Null

Eski TLS/SSL sürümlerini devre dışı bırakma
$protocols = @("TLS 1.0", "TLS 1.1", "SSL 2.0", "SSL 3.0")
foreach ($protocol in $protocols) {
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$protocol\Server"
if (!(Test-Path $regPath)) {
New-Item -Path $regPath -Force | Out-Null
}
New-ItemProperty -Path $regPath -Name "Enabled" -Value 0 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $regPath -Name "DisabledByDefault" -Value 1 -PropertyType DWORD -Force | Out-Null
}

 

Sertifika Yönetimi

– Tüm RDS bileşenleri için güvenilir CA’lardan sertifikalar kullanın
– Düzenli sertifika yenileme prosedürleri oluşturun
– Güçlü şifreleme algoritmaları kullanan sertifikalar tercih edin

RD Gateway için sertifika atama
Set-RDCertificate -Role RDGateway -ImportPath "C:\Certificates\rdgateway.pfx" -Password (ConvertTo-SecureString -String "CertPassword" -AsPlainText -Force)
Set-RDCertificate -Role RDWebAccess -ImportPath "C:\Certificates\rdweb.pfx" -Password (ConvertTo-SecureString -String "CertPassword" -AsPlainText -Force)
Set-RDCertificate -Role RDRedirector -ImportPath "C:\Certificates\rdcb.pfx" -Password (ConvertTo-SecureString -String "CertPassword" -AsPlainText -Force)
Set-RDCertificate -Role RDPublishing -ImportPath "C:\Certificates\rdcb.pfx" -Password (ConvertTo-SecureString -String "CertPassword" -AsPlainText -Force)

 

 

Diskler ve Depolama Şifreleme

– BitLocker ile oturum sunucularının disklerini şifreleyin
– Kullanıcı profilleri için şifreleme uygulayın
– Ağ depolama alanları için şifreleme kullanın

BitLocker etkinleştirme

Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly -Pin (ConvertTo-SecureString -String "BitLockerPIN" -AsPlainText -Force) -TPMandPinProtector

 

İzleme ve Denetim

Kapsamlı Loglama

– Tüm RDS bileşenlerinde detaylı loglama etkinleştirin
– Windows Event Logs’ları merkezi bir SIEM sistemine yönlendirin
– Başarılı ve başarısız tüm oturum açma girişimlerini kaydedin

PowerShell ile gelişmiş denetim politikasını etkinleştirme

auditpol.exe /set /subcategory:"Logon" /success:enable /failure:enable
auditpol.exe /set /subcategory:"Logoff" /success:enable /failure:enable
auditpol.exe /set /subcategory:"Account Lockout" /success:enable /failure:enable
auditpol.exe /set /subcategory:"Special Logon" /success:enable /failure:enable
auditpol.exe /set /subcategory:"Other Logon/Logoff Events" /success:enable /failure:enable

 

Anormal Davranış Tespiti

– Kullanıcı davranış analitiği uygulayın
– Anormal saatlerde bağlantıları tespit edin
– Olağandışı coğrafi konumlardan bağlantıları izleyin
– Bir SIEM çözümü kullanarak anormal davranış algılama kuralları oluşturun

Düzenli Güvenlik İncelemeleri

– Erişim günlüklerini düzenli olarak gözden geçirin
– Kullanıcı ayrıcalıklarını periyodik olarak doğrulayın
– Hesap kullanımını izleyin ve gereksiz hesapları devre dışı bırakın

İşletim Sistemi Güvenliği

Güncel Yamalar

– Tüm RDS sunucuları için düzenli yama yönetimi programı uygulayın
– Kritik güvenlik güncellemelerini hızla uygulayın
– WSUS veya Microsoft Endpoint Manager ile merkezi yönetim sağlayın

powershell
WSUS üzerinden güncellemeleri kontrol edip yükleme
Install-WindowsUpdate -AcceptAll -AutoReboot | Out-File C:\WindowsUpdate.log

Sıkılaştırma Kılavuzları

– CIS veya Microsoft güvenlik temel yapılandırma kılavuzlarını uygulayın
– Gereksiz hizmetleri devre dışı bırakın
– AppLocker veya Windows Defender Application Control uygulayın

PowerShell ile gereksiz servisleri devre dışı bırakma

$services = @("Browser", "MapsBroker", "PeerNetSvc", "lfsvc", "SharedAccess", "lltdsvc", "SSDPSRV", "upnphost", "WMPNetworkSvc", "XblAuthManager", "XblGameSave", "XboxNetApiSvc")
foreach ($service in $services) {
Set-Service -Name $service -StartupType Disabled -Status Stopped
}

 

Antivirüs ve EDR

– Tüm RDS sunucularında modern antimalware çözümleri kullanın
– EDR (Endpoint Detection and Response) araçları ile proaktif koruma sağlayın
– Microsoft Defender for Servers veya üçüncü taraf kurumsal güvenlik çözümleri kullanın

Uygulama Güvenliği

AppLocker / WDAC

– Yalnızca onaylanmış uygulamaların çalışmasına izin veren politikalar uygulayın
– Kullanıcı başına uygulama kısıtlamaları tanımlayın
– PowerShell betikleri için kısıtlamalar uygulayın

AppLocker politikası oluşturma ve uygulama

New-AppLockerPolicy -XMLPolicy C:\Policies\AppLockerPolicy.xml -Merge
Set-AppLockerPolicy -XMLPolicy C:\Policies\AppLockerPolicy.xml

 

RemoteApp Güvenliği

– Yalnızca gerekli uygulamaları RemoteApp olarak yayınlayın
– Uygulamalar için kaynak kısıtlamaları (CPU, RAM, disk) belirleyin
– Uygulama izolasyonu için App-V veya MSIX App Attach teknolojilerini kullanın

RemoteApp uygulaması ekleme (sınırlı izinlerle)

New-RDRemoteApp -CollectionName "MyCollection" -DisplayName "Secure Notepad" -FilePath "C:\Windows\notepad.exe" -CommandLineSetting Disallowed -RequiredCommandLine ""

 

Veri Koruma

– Veri Kaybı Önleme (DLP) politikaları uygulayın
– USB ve diğer çevre birimlerine erişimi kısıtlayın
– Ekran yakalama ve kopyala/yapıştır özelliklerini sınırlayın

Group Policy ile USB depolama cihazlarını kısıtlama

Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices" -Name "Deny_All" -Value 1 -Type DWord

 

Güvenlik Duvarı ve Ağ Geçidi Yapılandırması

RD Gateway Güvenliği

– Connection Authorization Policies (CAPs) yapılandırın
– Resource Authorization Policies (RAPs) tanımlayın
– Bağlantı sayısını ve kaynak kullanımını sınırlayın

CAP oluşturma

$authzManager = Get-WmiObject -class "Win32_TSGatewayAuthorizationPolicy" -namespace root\cimv2\TerminalServices -ComputerName localhost
$authzManager.AddConnectionPolicy("Secure CAP", "Secure connection policy", 1, 1, 0, 1, "DOMAIN\RDS Users", $null, $null)

 

RAP oluşturma

$authzManager.AddResourcePolicy("Secure RAP", "Secure resource policy", 1, 1, "DOMAIN\RDS Computers", $null, $null, 0)

 

Windows Defender Firewall

– İç ve dış güvenlik duvarı katmanları oluşturun
– Yalnızca gerekli bağlantı noktalarına izin verin
– Gelişmiş güvenlik kuralları tanımlayın

RDS için güvenlik duvarı kuralları

New-NetFirewallRule -DisplayName "RDS - Gateway UDP" -Direction Inbound -Protocol UDP -LocalPort 3391 -Action Allow -Profile Domain,Private
New-NetFirewallRule -DisplayName "RDS - Gateway TCP" -Direction Inbound -Protocol TCP -LocalPort 443,3389 -Action Allow -Profile Domain,Private

 

İleri Seviye Tehdit Koruması

– Web Application Firewall (WAF) uygulayın
– DDoS koruma çözümleri kullanın
– Microsoft Defender for Servers ile gelişmiş saldırı koruması sağlayın

Zafiyet Yönetimi

Düzenli Güvenlik Taramaları

– Periyodik olarak zafiyet taramaları gerçekleştirin
– Nessus, Qualys veya Microsoft Defender for Endpoint gibi araçlar kullanın
– Zafiyetleri önceliklendirilmiş bir şekilde giderin

Baseline Security Analyzer çalıştırma (temel düzeyde tarama için)

& "C:\Program Files\Microsoft Baseline Security Analyzer\MBSA.exe" /target localhost /n OS+IIS /wi

 

Sızma Testleri

– Yılda en az bir kez sızma testi yapın
– RDS altyapısına özel sızma testleri planlayın
– Bulunan güvenlik açıklarını hızla düzeltin

Güvenlik Açıkları İçin Hızlı Müdahale Planı

– Güvenlik açığı müdahale prosedürleri oluşturun
– Kritik RDS bileşenleri için yama dağıtım süreci tanımlayın
– Sıfır gün açıkları için geçici risk azaltma stratejileri geliştirin

Kapsamlı Güvenlik Kontrol Listesi

Temel Güvenlik Kontrolleri

✓ NLA etkinleştirilmiş ve zorunlu kılınmış
✓ TLS 1.2 veya üzeri tüm bileşenlerde etkinleştirilmiş
✓ Varsayılan RDP portu değiştirilmiş
✓ Tüm sunucular güncel yamalarla güncellenmiş
✓ Çok faktörlü kimlik doğrulama etkinleştirilmiş
✓ Güçlü parola politikaları uygulanıyor
✓ BitLocker disk şifreleme aktif

Orta Seviye Güvenlik Kontrolleri

✓ Güvenlik duvarı kuralları en düşük ayrıcalık prensibiyle yapılandırılmış
✓ RD Gateway güvenli şekilde yapılandırılmış
✓ VDI erişimi için koşullu erişim politikaları tanımlanmış
✓ Gelişmiş denetim özellikleri etkinleştirilmiş
✓ AppLocker veya WDAC ile uygulama kontrolleri uygulanıyor
✓ RDS sunucuları segmentlere ayrılmış ve izole edilmiş
✓ Merkezi log yönetimi uygulanıyor

İleri Seviye Güvenlik Kontrolleri

✓ SIEM entegrasyonu ile anormal davranış algılama yapılıyor
✓ PAM (Privileged Access Management) çözümü kullanılıyor
✓ Just-In-Time erişim yönetimi uygulanıyor
✓ Veri kaybı önleme (DLP) kontrolleri aktif
✓ Azure Sentinel veya benzer SOAR çözümleri entegre edilmiş
✓ Düzenli penetrasyon testleri gerçekleştiriliyor
✓ Kullanıcı davranış analitiği (UBA) uygulanıyor

Remote Desktop Services, modern hibrit çalışma ortamlarında kritik bir teknoloji bileşeni olarak önemini korumaktadır. Ancak, yeterli güvenlik önlemleri uygulanmadığında ciddi güvenlik riskleri oluşturabilir. Bu blog yazısında paylaşılan en iyi güvenlik uygulamaları, RDS altyapınızın güvenliğini artırmak için kapsamlı bir çerçeve sunmaktadır.

RDS güvenliği, tek bir çözüm veya ürünle sağlanamaz. Katmanlı bir güvenlik yaklaşımı, güçlü kimlik doğrulama mekanizmaları, ağ segmentasyonu, sürekli izleme ve zamanında yama yönetimi gibi birden çok faktörün bir arada uygulanmasını gerektirir.

Güvenliğin sürekli bir süreç olduğunu unutmayın. Düzenli güvenlik değerlendirmeleri yapın, yeni tehditlere karşı bilinçli olun ve güvenlik kontrollerinizi sürekli olarak güncelleyin. Bu şekilde, RDS altyapınızı günümüzün karmaşık tehdit ortamına karşı koruyabilirsiniz.

Not: Bu blog yazısı genel bilgi amaçlıdır. Kuruluşunuzun spesifik ihtiyaçlarına göre güvenlik kontrollerini uyarlayın ve uygulamadan önce test ortamında değerlendirin. Microsoft’un en güncel güvenlik tavsiyelerini takip etmeyi unutmayın.