Alesta WEB

Windows Uzak Masaüstü Port Değiştirme Rehberi
Windows Server ve Windows 10/11 sistemlerde RDP (Remote Desktop Protocol) portunu güvenlik veya özel gereksinimler için değiştirme rehberi. PowerShell script ile otomatik kurulum, Registry düzenlemesi ve Güvenlik Duvarı yapılandırması.
Neden RDP Portu Değiştirilmeli?
Uzak Masaüstü (RDP), Windows sistemlerde varsayılan olarak 3389 portunu kullanır. Bu portu değiştirmek için birçok önemli sebep vardır:
✅ Port Değiştirmenin Avantajları
- Güvenlik artışı: Otomatik botlar ve saldırılar genellikle varsayılan 3389 portunu hedef alır
- Brute-force saldırılardan korunma: Standart olmayan port kullanımı saldırganları zorlaştırır
- Ek güvenlik katmanı: "Security through obscurity" prensibi
- Çoklu sunucu yönetimi: Aynı ağda birden fazla RDP sunucusu için farklı portlar
- ISP kısıtlamalarını aşma: Bazı internet sağlayıcıları 3389 portunu engelleyebilir
- ⚙️ Kurumsal politikalar: Şirket güvenlik standartları gereği
Karşılaştırma: Varsayılan vs Özel Port
| Özellik | Varsayılan Port (3389) | Özel Port (örn: 49200) |
|---|---|---|
| Güvenlik Seviyesi | ❌ Düşük (hedef alınır) | ✅ Yüksek (gizli kalır) |
| Brute-force Saldırıları | ❌ Çok sık | ✅ Çok nadir |
| Port Tarama | ❌ Hemen bulunur | ✅ Bulunması zor |
| ISP Engeli | ❌ Engellenebilir | ✅ Engellenmez |
| Çoklu Sunucu | ❌ Port çakışması | ✅ Her sunucuya farklı port |
Başlamadan Önce Gerekenler
✅ Sistem Gereksinimleri
- ✅ Windows Server 2012/2016/2019/2022 veya Windows 10/11 Pro/Enterprise
- ✅ Yönetici (Administrator) yetkisi
- ✅ PowerShell 5.1+ (varsayılan olarak yüklü)
- ✅ Uzak Masaüstü özelliği etkinleştirilmiş olmalı
- ✅ Yedek erişim yolu (fiziksel veya alternatif bağlantı)
Hangi Port Numarasını Seçmeli?
| Port Aralığı | Açıklama | Önerilen? |
|---|---|---|
| 0 - 1023 | Sistem portları (HTTP, FTP, SSH vb.) | ❌ Kullanmayın |
| 1024 - 49151 | Kayıtlı portlar (uygulamalar için) | ⚠️ Dikkatli kullanın |
| 49152 - 65535 | Dinamik/Özel portlar | ✅ İdeal seçim |
- 49200 - Bu rehberde kullanılan örnek
- 50001 - Hatırlanması kolay
- 33899 - 3389'a benzer
- 55443 - HTTPS portuna benzer
- Fiziksel veya başka bir uzak erişim yönteminiz olsun
- Değişiklik sırasında aktif RDP oturumunuz kopabilir
- Sistem yeniden başlatılması gerekebilir
- Güvenlik duvarı ayarlarını yapmazsanız bağlanamazsınız!
PowerShell Script ile Otomatik Kurulum (ÖNERİLEN)
En hızlı ve güvenli yöntem PowerShell scripti kullanmaktır. Script otomatik olarak şunları yapar:
✅ Script Özellikleri
- ✅ Registry'de RDP portunu değiştirir
- ✅ Güvenlik duvarında yeni port için kural oluşturur
- ✅ Eski 3389 kuralını kaldırır (opsiyonel)
- ✅ Terminal Services servisini yeniden başlatır
- ✅ Değişiklikleri doğrular
- ✅ Bağlantı bilgilerini gösterir
Hızlı Kurulum Adımları
- PowerShell'i Yönetici olarak açın
- Execution Policy ayarlayın:
PowerShell
Set-ExecutionPolicy Bypass -Scope Process -Force - Scripti çalıştırın:
PowerShell
# Varsayılan port (49200) ile .\Set-RDPPort.ps1 # Özel port ile .\Set-RDPPort.ps1 -NewPort 50001 # Eski kuralları da kaldırarak .\Set-RDPPort.ps1 -NewPort 50001 -RemoveOldRule -
PowerShell
# ======================================================== # Windows RDP Port Değiştirme Scripti # Kullanım: Yönetici PowerShell'de çalıştırın # Yazar: AlestaWeb Sistem Rehberleri # Versiyon: 2.0 # Tarih: 2025 # ======================================================== # Parametreler param( [Parameter(Mandatory=$false)] [int]$NewPort = 49200, [Parameter(Mandatory=$false)] [switch]$RemoveOldRule = $false ) # Renkli çıktı için yardımcı fonksiyonlar function Write-ColorOutput($ForegroundColor) { $fc = $host.UI.RawUI.ForegroundColor $host.UI.RawUI.ForegroundColor = $ForegroundColor if ($args) { Write-Output $args } $host.UI.RawUI.ForegroundColor = $fc } function Write-Success { Write-ColorOutput Green $args } function Write-Info { Write-ColorOutput Cyan $args } function Write-Warning2 { Write-ColorOutput Yellow $args } function Write-Error2 { Write-ColorOutput Red $args } # Banner Write-Host "`n" Write-Host "╔════════════════════════════════════════════════════╗" -ForegroundColor Cyan Write-Host "║ Windows RDP Port Değiştirme Scripti v2.0 ║" -ForegroundColor Cyan Write-Host "║ AlestaDergi Sistem Rehberleri ║" -ForegroundColor Cyan Write-Host "╚════════════════════════════════════════════════════╝" -ForegroundColor Cyan Write-Host "`n" # Yönetici kontrolü $isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) if (-not $isAdmin) { Write-Error2 "❌ HATA: Bu script yönetici (Administrator) yetkisi ile çalıştırılmalıdır!" Write-Warning2 "`nÇözüm: PowerShell'i sağ tıklayıp 'Yönetici olarak çalıştır' seçeneğini kullanın." Read-Host "`nDevam etmek için Enter'a basın" exit 1 } # Port doğrulama if ($NewPort -lt 1024 -or $NewPort -gt 65535) { Write-Error2 "❌ HATA: Port numarası 1024-65535 arasında olmalıdır!" Write-Warning2 "Önerilen aralık: 49152-65535 (dinamik portlar)" Read-Host "`nDevam etmek için Enter'a basın" exit 1 } # Mevcut port kontrolü $RegPath = "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" try { $CurrentPort = Get-ItemProperty -Path $RegPath -Name "PortNumber" -ErrorAction Stop $CurrentPortValue = $CurrentPort.PortNumber Write-Info "Mevcut RDP portu: $CurrentPortValue" } catch { Write-Error2 "❌ HATA: Registry yolu okunamadı. RDP servisi kurulu değil olabilir." Write-Error2 "Detay: $($_.Exception.Message)" Read-Host "`nDevam etmek için Enter'a basın" exit 1 } if ($CurrentPortValue -eq $NewPort) { Write-Warning2 "⚠️ Port zaten $NewPort olarak ayarlanmış! İşlem yapılmayacak." Read-Host "`nDevam etmek için Enter'a basın" exit 0 } # Onay isteme Write-Warning2 "`n⚠️ DİKKAT: RDP portu $CurrentPortValue ==> $NewPort olarak değiştirilecek!" Write-Warning2 "Bu işlem sırasında mevcut RDP bağlantınız kopabilir." Write-Warning2 "Fiziksel veya alternatif bir erişim yolunuz olduğundan emin olun!`n" $confirmation = Read-Host "Devam etmek istiyor musunuz? (E/H)" if ($confirmation -ne 'E' -and $confirmation -ne 'e') { Write-Info "İşlem kullanıcı tarafından iptal edildi." Read-Host "`nDevam etmek için Enter'a basın" exit 0 } Write-Info "`nİşlem başlıyor...`n" Start-Sleep -Seconds 1 # 1. Registry'de port değiştirme Write-Info "1️⃣ Registry'de RDP portu değiştiriliyor..." try { Set-ItemProperty -Path $RegPath -Name "PortNumber" -Value $NewPort -ErrorAction Stop Write-Success " ✅ Registry başarıyla güncellendi: $NewPort" } catch { Write-Error2 " ❌ Registry güncellenemedi: $($_.Exception.Message)" Read-Host "`nDevam etmek için Enter'a basın" exit 1 } # 2. Güvenlik duvarı kuralı ekleme Write-Info "`n2️⃣ Güvenlik duvarı kuralı oluşturuluyor..." try { $ruleName = "RDP Port $NewPort" # Mevcut kural kontrolü $existingRule = Get-NetFirewallRule -DisplayName $ruleName -ErrorAction SilentlyContinue if ($existingRule) { Write-Warning2 " ⚠️ Kural zaten mevcut, güncelleniyor..." Remove-NetFirewallRule -DisplayName $ruleName -ErrorAction SilentlyContinue } New-NetFirewallRule -DisplayName $ruleName ` -Direction Inbound ` -Protocol TCP ` -LocalPort $NewPort ` -Action Allow ` -Profile Any ` -Enabled True ` -ErrorAction Stop | Out-Null Write-Success " ✅ Güvenlik duvarı kuralı oluşturuldu: $ruleName" } catch { Write-Error2 " ❌ Güvenlik duvarı kuralı oluşturulamadı: $($_.Exception.Message)" Write-Warning2 " ⚠️ Manuel olarak eklemeniz gerekebilir!" } # 3. Eski güvenlik duvarı kuralını kaldırma (opsiyonel) if ($RemoveOldRule) { Write-Info "`n3️⃣ Eski güvenlik duvarı kuralları kaldırılıyor..." try { $oldRules = Get-NetFirewallRule | Where-Object { $_.DisplayName -like "*Remote Desktop*" -and $_.DisplayName -notlike "*$NewPort*" } foreach ($rule in $oldRules) { Write-Info "Kaldırılıyor: $($rule.DisplayName)" Remove-NetFirewallRule -DisplayName $rule.DisplayName -ErrorAction SilentlyContinue } if ($oldRules.Count -gt 0) { Write-Success " ✅ $($oldRules.Count) eski kural kaldırıldı" } else { Write-Info " ℹ️ Kaldırılacak eski kural bulunamadı" } } catch { Write-Warning2 " ⚠️ Eski kurallar kaldırılamadı: $($_.Exception.Message)" } } # 4. Terminal Services servisini yeniden başlatma Write-Info "`n4️⃣ Terminal Services servisi yeniden başlatılıyor..." try { $serviceName = "TermService" $service = Get-Service -Name $serviceName -ErrorAction Stop if ($service.Status -eq 'Running') { Write-Info " Servis durduruluyor..." Stop-Service -Name $serviceName -Force -ErrorAction Stop Start-Sleep -Seconds 2 } Write-Info " Servis başlatılıyor..." Start-Service -Name $serviceName -ErrorAction Stop Start-Sleep -Seconds 1 Write-Success " ✅ Servis başarıyla yeniden başlatıldı" } catch { Write-Error2 " ❌ Servis yeniden başlatılamadı: $($_.Exception.Message)" Write-Warning2 " ⚠️ Sistemi yeniden başlatmanız önerilir!" } # 5. Doğrulama Write-Info "`n5️⃣ Değişiklikler doğrulanıyor..." Start-Sleep -Seconds 2 try { # Registry kontrolü $verifyPort = Get-ItemProperty -Path $RegPath -Name "PortNumber" if ($verifyPort.PortNumber -eq $NewPort) { Write-Success " ✅ Registry doğrulandı: Port = $NewPort" } else { Write-Error2 " ❌ Registry doğrulanamadı! Beklenen: $NewPort, Mevcut: $($verifyPort.PortNumber)" } # Servis kontrolü $serviceStatus = Get-Service -Name TermService if ($serviceStatus.Status -eq 'Running') { Write-Success " ✅ Terminal Services çalışıyor" } else { Write-Warning2 " ⚠️ Terminal Services çalışmıyor: $($serviceStatus.Status)" } # Güvenlik duvarı kontrolü $firewallRule = Get-NetFirewallRule -DisplayName "RDP Port $NewPort" -ErrorAction SilentlyContinue if ($firewallRule) { Write-Success " ✅ Güvenlik duvarı kuralı mevcut ve aktif" } else { Write-Warning2 " ⚠️ Güvenlik duvarı kuralı bulunamadı" } } catch { Write-Error2 " ❌ Doğrulama sırasında hata: $($_.Exception.Message)" } # Sonuç özeti Write-Host "`n" Write-Host "╔════════════════════════════════════════════════════╗" -ForegroundColor Green Write-Host "║ İŞLEM BAŞARIYLA TAMAMLANDI ║" -ForegroundColor Green Write-Host "╚════════════════════════════════════════════════════╝" -ForegroundColor Green # IP adresini al try { $ipAddresses = Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.InterfaceAlias -notlike "*Loopback*" } | Select-Object -ExpandProperty IPAddress } catch { $ipAddresses = @("HATA: IP alınamadı") } Write-Host "`nBağlantı Bilgileri:" -ForegroundColor Cyan Write-Host "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -ForegroundColor Cyan Write-Host "Eski RDP Portu : " -NoNewline -ForegroundColor Yellow Write-Host "$CurrentPortValue" -ForegroundColor Red Write-Host "Yeni RDP Portu : " -NoNewline -ForegroundColor Yellow Write-Host "$NewPort" -ForegroundColor Green if ($ipAddresses.Count -gt 0) { Write-Host "Sunucu IP Adresi : " -NoNewline -ForegroundColor Yellow foreach ($ip in $ipAddresses) { Write-Host "$ip" -ForegroundColor Green } } Write-Host "`nBağlantı Komutları:" -ForegroundColor Cyan Write-Host "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -ForegroundColor Cyan if ($ipAddresses.Count -gt 0) { Write-Host " mstsc /v:" -NoNewline -ForegroundColor White Write-Host "$($ipAddresses[0]):$NewPort" -ForegroundColor Green Write-Host "`n veya Uzak Masaüstü uygulamasında:" -ForegroundColor White Write-Host " Bilgisayar: " -NoNewline -ForegroundColor White Write-Host "$($ipAddresses[0]):$NewPort" -ForegroundColor Green } Write-Host "`n⚠️ ÖNEMLİ NOTLAR:" -ForegroundColor Yellow Write-Host "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -ForegroundColor Yellow Write-Host "1. Eski $CurrentPortValue portuna gelen bağlantılar artık ÇALIŞMAYACAK" -ForegroundColor White Write-Host "2. Yeni $NewPort portunu kullanarak bağlanmalısınız" -ForegroundColor White Write-Host "3. NAT/Router arkasındaysanız port yönlendirme yapın" -ForegroundColor White Write-Host "4. Şirket güvenlik duvarınızda da bu portu açmanız gerekebilir" -ForegroundColor White Write-Host "5. Değişikliğin tam aktif olması için sistemi yeniden başlatın" -ForegroundColor White # NAT yönlendirme bilgisi if ($ipAddresses.Count -gt 0) { Write-Host "`nNAT/Router Port Yönlendirme Ayarları:" -ForegroundColor Cyan Write-Host "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -ForegroundColor Cyan Write-Host " Dış Port (WAN) : " -NoNewline -ForegroundColor White Write-Host "$NewPort" -ForegroundColor Green Write-Host " İç IP (LAN) : " -NoNewline -ForegroundColor White Write-Host "$($ipAddresses[0])" -ForegroundColor Green Write-Host " İç Port : " -NoNewline -ForegroundColor White Write-Host "$NewPort" -ForegroundColor Green Write-Host " Protokol : " -NoNewline -ForegroundColor White Write-Host "TCP" -ForegroundColor Green } # Test komutları Write-Host "`nTest Komutları:" -ForegroundColor Cyan Write-Host "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -ForegroundColor Cyan Write-Host " # Registry kontrolü" -ForegroundColor Gray Write-Host " Get-ItemProperty -Path '$RegPath' -Name PortNumber" -ForegroundColor White Write-Host "" Write-Host " # Port dinleme kontrolü" -ForegroundColor Gray Write-Host " netstat -ano | findstr :$NewPort" -ForegroundColor White Write-Host "" Write-Host " # Bağlantı testi" -ForegroundColor Gray if ($ipAddresses.Count -gt 0) { Write-Host " Test-NetConnection -ComputerName $($ipAddresses[0]) -Port $NewPort" -ForegroundColor White } Write-Host "`n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`n" -ForegroundColor Cyan # Geri alma bilgisi Write-Host "Geri Alma: " -NoNewline -ForegroundColor Yellow Write-Host "Eski porta dönmek isterseniz bu scripti tekrar çalıştırın:" -ForegroundColor White Write-Host " .\Set-RDPPort.ps1 -NewPort $CurrentPortValue`n" -ForegroundColor Cyan # Sistem yeniden başlatma önerisi $reboot = Read-Host "Sistemi şimdi yeniden başlatmak ister misiniz? (E/H)" if ($reboot -eq 'E' -or $reboot -eq 'e') { Write-Warning2 "`n⏰ Sistem 10 saniye içinde yeniden başlatılacak..." Write-Warning2 "İptal etmek için Ctrl+C tuşlarına basın!" for ($i = 10; $i -gt 0; $i--) { Write-Host " $i..." -ForegroundColor Yellow Start-Sleep -Seconds 1 } Write-Info "`nSistem yeniden başlatılıyor..." Restart-Computer -Force } else { Write-Info "`n✅ Script tamamlandı. Sistemi daha sonra yeniden başlatmayı unutmayın!" Write-Warning2 " Not: Tam aktif olması için yeniden başlatma ŞİDDETLE önerilir!`n" } # Son mesaj Write-Host "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -ForegroundColor Cyan Write-Host "AlestaDergi - Sistem Rehberleri | alestaweb.com" -ForegroundColor Cyan Write-Host "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`n" -ForegroundColor Cyan Read-Host "Çıkmak için Enter'a basın"
Manuel Kurulum Adımları
PowerShell scripti kullanamıyorsanız, manuel olarak da port değiştirebilirsiniz:
1️⃣ Registry Editor ile Port Değiştirme
Adım 1: Registry Editor'ü Açın
# Win + R tuşlarına basın ve yazın:
regeditAdım 2: RDP-Tcp Anahtarına Gidin
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TcpAdım 3: PortNumber Değerini Değiştirin
- Sağ panelde
PortNumberdeğerini bulun - Üzerine çift tıklayın
- "Base" kısmında Decimal (Ondalık) seçin
- Value data'ya yeni port numarasını yazın:
49200 - "OK" butonuna tıklayın
2️⃣ Terminal Services Servisini Yeniden Başlatma
# PowerShell (Yönetici)
Stop-Service -Name TermService -Force
Start-Sleep -Seconds 3
Start-Service -Name TermService
# veya CMD
net stop TermService
net start TermService
# En garanti yöntem: Sistemi yeniden başlatma
Restart-Computer -Force3️⃣ Değişikliği Doğrulama
# PowerShell ile port kontrolü
$Port = Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber"
Write-Host "Mevcut RDP Portu: $($Port.PortNumber)"
# Netstat ile port dinleme kontrolü
netstat -ano | findstr :49200
# Başarılı çıktı: TCP 0.0.0.0:49200 LISTENINGGüvenlik Duvarı Ayarları
Port değiştirdikten sonra mutlaka güvenlik duvarında yeni portu açmalısınız!
Yöntem 1: PowerShell ile (ÖNERİLEN)
# Yeni port için kural ekleme
New-NetFirewallRule -DisplayName "RDP Port 49200" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 49200 `
-Action Allow `
-Profile Any
# Kural kontrolü
Get-NetFirewallRule -DisplayName "RDP Port 49200"Yöntem 2: Windows Defender Güvenlik Duvarı GUI
- Başlat → Windows Defender Güvenlik Duvarı
- Sol menüden Gelişmiş Ayarlar
- Gelen Kuralları (Inbound Rules) seçin
- Sağ panelden Yeni Kural (New Rule)
- Port seçeneğini seçip İleri
- TCP seçin ve Specific local ports:
49200 - İleri → Allow the connection
- Tüm profilleri seçin → İsim:
RDP Port 49200
⚙️ Yöntem 3: netsh Komutu ile
# Kural ekleme
netsh advfirewall firewall add rule name="RDP Port 49200" dir=in action=allow protocol=TCP localport=49200
# Kural kontrolü
netsh advfirewall firewall show rule name="RDP Port 49200"NAT/Router Port Yönlendirme
Sunucunuz router veya NAT arkasındaysa ve internet üzerinden erişim istiyorsanız port yönlendirme (port forwarding) yapmalısınız.
Gerekli Bilgiler
| Parametre | Açıklama | Örnek Değer |
|---|---|---|
| External Port | Dış dünyadan gelen port | 49200 |
| Internal IP | Sunucunun yerel IP adresi | 192.168.1.100 |
| Internal Port | Sunucudaki RDP portu | 49200 |
| Protocol | Bağlantı protokolü | TCP |
Router Yapılandırma Adımları
- Router admin paneline giriş: 192.168.1.1 veya 192.168.0.1
- Port Forwarding bölümünü bulun: Advanced → NAT → Port Forwarding
- Yeni kural oluşturun:
- Service Name:
RDP Custom - External Port:
49200 - Internal IP:
192.168.1.100(sunucunuzun yerel IP'si) - Internal Port:
49200 - Protocol:
TCP
- Service Name:
- Kaydedin ve router'ı yeniden başlatın
IP Adresini Bulma
# Yerel IP adresi
ipconfig | findstr IPv4
# Dış IP adresi (WAN)
(Invoke-WebRequest -Uri "https://api.ipify.org").ContentBağlantı Testi
Yöntem 1: Uzak Masaüstü Bağlantısı (mstsc)
# Komut satırından
mstsc /v:192.168.1.100:49200
# İnternet üzerinden
mstsc /v:85.34.56.78:49200
# Tam ekran modunda
mstsc /v:192.168.1.100:49200 /fGUI ile:
- Başlat → Uzak Masaüstü Bağlantısı
- Bilgisayar:
192.168.1.100:49200 - Bağlan butonuna tıklayın
Yöntem 2: Port Kontrolü
# PowerShell ile bağlantı testi
Test-NetConnection -ComputerName 192.168.1.100 -Port 49200
# Başarılı çıktı: TcpTestSucceeded : True
# netstat ile port kontrolü
netstat -ano | findstr :49200
# Çıktı: TCP 0.0.0.0:49200 LISTENING- Test-NetConnection "TcpTestSucceeded : True" gösteriyor
- netstat'ta port "LISTENING" durumunda
- mstsc ile bağlantı penceresi açılıyor
- Başarılı giriş yapılıyor
Sık Karşılaşılan Hatalar ve Çözümleri
❌ Hata 1: "Uzak bilgisayara bağlanılamıyor"
Çözüm:
# Port kontrolü
Test-NetConnection -ComputerName 192.168.1.100 -Port 49200
# Güvenlik duvarı kontrolü
Get-NetFirewallRule -DisplayName "*RDP*"
# Servis kontrolü
Get-Service -Name TermService
# Registry kontrolü
Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber❌ Hata 2: PowerShell Script Çalışmıyor
Hata: "cannot be loaded. The file is not digitally signed"
Çözüm:
# Execution Policy'yi geçici değiştir
Set-ExecutionPolicy Bypass -Scope Process -Force
# Scripti çalıştır
.\Set-RDPPort.ps1❌ Hata 3: Güvenlik Duvarı Engelliyor
Çözüm:
# Test için geçici kapat
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
# Test et
Test-NetConnection -ComputerName 192.168.1.100 -Port 49200
# Tekrar aç ve doğru kuralı ekle
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
New-NetFirewallRule -DisplayName "RDP Port 49200" -Direction Inbound -Protocol TCP -LocalPort 49200 -Action Allow❌ Hata 4: Registry Değişikliği Etkisiz
Çözüm: Sistemi yeniden başlatın
Restart-Computer -ForceGüvenlik Önerileri ve En İyi Uygulamalar
Temel Güvenlik Önlemleri
- ✅ Güçlü Şifreler: En az 12 karakter, karışık karakterler
- ✅ Network Level Authentication (NLA):
PowerShell
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication -Value 1 - ✅ Account Lockout Policy:
PowerShell
net accounts /lockoutthreshold:3 /lockoutduration:30 - ✅ IP Kısıtlaması:
PowerShell
New-NetFirewallRule -DisplayName "RDP Sadece Ofis" -Direction Inbound -Protocol TCP -LocalPort 49200 -RemoteAddress 85.34.56.78 -Action Allow
İleri Seviye Güvenlik
- VPN Kullanımı: En güvenli yöntem
- İki Faktörlü Kimlik Doğrulama: Duo Security, Microsoft Authenticator
- RDP Gateway: Ek güvenlik katmanı
- Event Log İzleme:
PowerShell
# Başarısız giriş denemelerini izle Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} -MaxEvents 20
- Port değiştirme tek başına yeterli değildir
- Tüm güvenlik önlemlerini birlikte uygulayın
- Düzenli güvenlik güncellemeleri yapın
- Log dosyalarını periyodik kontrol edin
✅ Kurulum Tamamlandı!
Windows sistemde RDP portunu başarıyla değiştirdik. Artık daha güvenli bir uzak masaüstü bağlantısına sahipsiniz!
Tamamlanan İşlemler:
- ✅ Registry'de port değiştirildi
- ✅ Güvenlik duvarı yapılandırıldı
- ✅ Terminal Services yeniden başlatıldı
- ✅ Bağlantı testi yapıldı
Destek ve Sorular:
alestaweb.com
© 2025 AlestaDergi - Tüm hakları saklıdır.

