sunucu.com.tr
Güvenlik

Uzak masaüstü sunucu güvenliği: Logo ve Mikro kullanan şirketler için NLA, MFA, IP kısıtlama ve 3389'u internete kapatma

Logo, Mikro ya da Netsis çalıştırdığınız uzak masaüstü sunucu internetten nasıl korunur? 3389'u dışarıdan bash betiğiyle kontrol etme, IP izin listesi, NLA, hesap kilitleme, MFA, kullanıcı yetkileri, olay günlüğü ve kiralarken sağlayıcıya sorulacak sorular.

11 dk okuma

Logo, Mikro ya da Netsis'i bir uzak masaüstü sunucu üzerinde çalıştıran şirketlerde en sık görülen zayıf nokta aynıdır: 3389 portu tüm internete açıktır ve tek koruma kullanıcı parolasıdır. Bu durumda sunucu, internetteki otomatik tarayıcıların hedefine girer. Bu rehber, sunucuyu kendisi yöneten sistem yöneticisi ve uzak masaüstü sunucu kiralamayı düşünen KOBİ sahibi için hazırlandı. Önce dışarıdan bir kontrol yapıyor, sonra katman katman kapatıyor ve her adımı nasıl doğrulayacağınızı gösteriyoruz.

Uzak masaüstü sunucuya gelen saldırılar

RDP'ye yönelik saldırıların çoğu el ile yapılmaz. Botlar internet adres aralıklarını sürekli tarar, 3389'u açık bulduğu sunucuya üç tür saldırı dener:

  • Kaba kuvvet (brute force): Tek bir kullanıcı adına, örneğin administrator, binlerce parola denenir.
  • Parola püskürtme (password spraying): Az sayıda yaygın parola, çok sayıda kullanıcı adına denenir. Her hesapta deneme sayısı düşük kaldığı için hesap kilitleme eşiğine takılmayabilir.
  • Fidye yazılımı: Saldırgan içeri girdikten sonra yetki yükseltir, yedekleri siler ve Logo, Mikro veritabanlarıyla paylaşılan klasörleri şifreler.

Port numarasını 3389'dan başka bir sayıya çekmek günlükteki gürültüyü azaltır ama güvenlik önlemi sayılmaz. Port tarayıcıları RDP'yi hangi portta çalışırsa çalışsın tanır. Asıl hedef, RDP'nin internetten doğrudan erişilebilir olmamasıdır.

Önce dışarıdan bakın: 3389 internete açık mı?

Sunucunun içinden bakınca her şey kapalı görünebilir; önemli olan dışarıdan nasıl göründüğüdür. Aşağıdaki betik, internete çıkan herhangi bir Linux makineden (evdeki bilgisayar, başka bir sunucu, WSL) sunucunuzun RDP ve ilgili portlarına erişilip erişilemediğini ve RDP'nin NLA olmadan bağlantı kabul edip etmediğini kontrol eder.

Betik Ubuntu 24.04 ve Debian 12 için hazırlandı. Yalnız okuma yapar, sunucuda hiçbir ayarı değiştirmez; geri almak için betik dosyasını silmeniz yeterlidir. Yalnız size ait sunucuları tarayın. 192.0.2.10 yerine kendi sunucunuzun genel IP adresini yazın.

bash
#!/usr/bin/env bash
# rdp-dis-kontrol.sh
# Uzak masaüstü sunucusunun internetten erişilebilen portlarını ve NLA durumunu kontrol eder.
# Kullanım: bash rdp-dis-kontrol.sh 192.0.2.10
# Port listesini değiştirmek için: PORTLAR="3389 3390 1433" bash rdp-dis-kontrol.sh 192.0.2.10
# Yalnız okuma yapar; tekrar tekrar çalıştırmak güvenlidir.

set -u

HEDEF="${1:-192.0.2.10}"                           # ORNEK_SUNUCU_IP: kendi sunucunuzun genel IP adresi
PORTLAR="${PORTLAR:-3389 1433 445 135 5985 5986}"  # RDP, SQL Server, SMB, RPC, WinRM
ZAMAN_ASIMI=3                                      # saniye

# nc yoksa kurulum ipucu verip çık
if ! command -v nc >/dev/null 2>&1; then
  echo "nc bulunamadı. Kurmak için: sudo apt install netcat-openbsd"
  exit 2
fi

echo "Hedef: ${HEDEF}"
echo "----------------------------------------"

ACIK_VAR=0
for PORT in ${PORTLAR}; do
  # -z: veri göndermeden yalnız bağlantı dene, -w: zaman aşımı
  if nc -z -w "${ZAMAN_ASIMI}" "${HEDEF}" "${PORT}" 2>/dev/null; then
    echo "[ACIK]   tcp/${PORT} bu ağdan erişilebilir"
    ACIK_VAR=1
  else
    echo "[KAPALI] tcp/${PORT}"
  fi
done

echo "----------------------------------------"

# nmap varsa RDP güvenlik katmanlarını listele (NLA kontrolü)
if command -v nmap >/dev/null 2>&1; then
  echo "RDP güvenlik katmanları (tcp/3389):"
  nmap -Pn -p 3389 --script rdp-enum-encryption "${HEDEF}" 2>/dev/null | grep -E '^\|' || \
    echo "Sonuç alınamadı: port kapalı ya da filtreli olabilir."
else
  echo "nmap yok, NLA kontrolü atlandı. Kurmak için: sudo apt install nmap"
fi

# Çıkış kodu: 0 = hiçbir port açık değil, 1 = en az bir port açık
exit "${ACIK_VAR}"

Beklenen sonuç, izin listesinde olmayan bir ağdan çalıştırıldığında tüm satırların [KAPALI] olmasıdır. Kısıtlama yapmadan önce çalıştırırsanız büyük olasılıkla şuna benzer bir çıktı görürsünüz:

bash
[ACIK]   tcp/3389 bu ağdan erişilebilir
[KAPALI] tcp/1433
| rdp-enum-encryption:
|   Security layer
|     CredSSP (NLA): SUCCESS
|     SSL: SUCCESS

rdp-enum-encryption çıktısında yalnız CredSSP satırları başarılıysa sunucu NLA zorunlu çalışıyordur. SSL: SUCCESS ya da Native RDP: SUCCESS görüyorsanız sunucu kimlik doğrulamadan önce oturum ekranı açmayı kabul ediyordur. Çıktının ayrıntısı nmap sürümüne göre değişebilir; betiğin açıklamasını nmap --script-help rdp-enum-encryption komutuyla kendi makinenizde okuyabilirsiniz. 1433 (SQL Server) ya da 445 (SMB) açık görünüyorsa bunlar RDP'den daha acil kapatılması gereken portlardır.

3389'u internete kapatma: VPN, RD Gateway ya da IP izin listesi

RDP'yi internetten saklamanın üç yolu var. Hangisini seçeceğiniz çalışanların nereden bağlandığına bağlı.

Yöntem Ne zaman uygun Dikkat edilecek nokta
IP izin listesi Ofis ve şubelerin sabit IP'si var Evden ya da mobil bağlananların IP'si değişir
VPN Kullanıcılar farklı yerlerden bağlanıyor VPN sunucusunun kendisi de güncel tutulmalı
RD Gateway Çok kullanıcı, HTTPS üzerinden erişim, MFA isteniyor Sertifika ve ek rol yönetimi gerekir

Karar ölçütü basit: herkes ofisten bağlanıyorsa IP izin listesi yeterlidir. Saha ekibi, evden çalışanlar ya da mali müşavir dışarıdan bağlanıyorsa VPN ya da RD Gateway kullanın ve 3389'u yalnız VPN ağına veya gateway'e açın. RD Gateway kurulumu, RDS rolleri ve CAL lisansıyla birlikte Windows Server 2025'te uzak masaüstü sunucusu kurulumu yazısında adım adım anlatılıyor.

Windows Güvenlik Duvarı ile IP izin listesi

Kendinizi kilitlemeyin. Bu kural uygulandığı anda izin listesinde olmayan her adresten RDP bağlantısı kesilir. Kuralı uygulamadan önce şu anda bağlandığınız genel IP'nin listede olduğunu kontrol edin ve sağlayıcınızın panelindeki konsol (VNC ya da KVM) erişimini test edin. Bir şey ters giderse sunucuya yalnız konsoldan ulaşabilirsiniz.

Aşağıdaki komutlar Windows Server 2019, 2022 ve 2025 ile PowerShell 5.1 için hazırlandı. Yerleşik kuralların iç adları (RemoteDesktop-UserMode-In-TCP) Türkçe Windows'ta da aynıdır, bu yüzden görünen ad yerine iç ad kullanılıyor. Komutu tekrar çalıştırmak aynı sonucu verir. Geri almak için son satırdaki -RemoteAddress Any komutunu konsoldan çalıştırın.

powershell
# Yönetici olarak açılmış PowerShell'de çalıştırın.
# 1) Mevcut durumu görün: hangi adreslerden RDP kabul ediliyor?
Get-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP","RemoteDesktop-UserMode-In-UDP" |
    Get-NetFirewallAddressFilter | Select-Object InstanceID, RemoteAddress

# 2) 3389'a izin veren başka (elle eklenmiş) kural var mı? Varsa onlar da kısıtlanmalı.
Get-NetFirewallPortFilter -Protocol TCP | Where-Object LocalPort -eq 3389 |
    Get-NetFirewallRule | Where-Object { $_.Enabled -eq 'True' -and $_.Direction -eq 'Inbound' } |
    Select-Object Name, DisplayName, Action

# 3) İzin listesi: ORNEK_OFIS_AGI ve ORNEK_SUBE_IP yerine kendi adreslerinizi yazın.
$izinli = @("198.51.100.0/24", "203.0.113.25")
Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP","RemoteDesktop-UserMode-In-UDP" -RemoteAddress $izinli

# GERİ ALMA (yalnız gerekirse, konsoldan):
# Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP","RemoteDesktop-UserMode-In-UDP" -RemoteAddress Any

İkinci adımda listelenen ve sizin eklemediğiniz bir izin kuralı çıkarsa onu da kısıtlayın ya da devre dışı bırakın; aksi halde izin listesi işe yaramaz. Sağlayıcınızın panelinde ağ seviyesinde güvenlik duvarı varsa aynı kısıtlamayı orada da yapın, böylece trafik sunucuya hiç ulaşmaz.

Doğrulama: bash betiğini izin listesindeki bir ağdan ve listede olmayan bir ağdan (örneğin telefonun mobil verisine bağlı bir dizüstü) ayrı ayrı çalıştırın. İlkinde 3389 açık, ikincisinde kapalı görünmelidir.

NLA, hesap kilitleme ve parola politikası

Ağ Düzeyinde Kimlik Doğrulama (NLA), kullanıcıdan oturum ekranı açılmadan önce kimlik bilgisi ister. Böylece kimliği doğrulanmamış bir bağlantı sunucuda oturum kaynağı tüketemez ve oturum açma ekranındaki açıklara doğrudan ulaşamaz. Aşağıdaki komutlar Windows Server 2019, 2022 ve 2025 için hazırlandı. Geri almak için aynı yöntemi UserAuthenticationRequired = 0 ile çalıştırın; ancak çok eski RDP istemcisi kullanan bir cihaz yoksa geri almanız gerekmez.

powershell
# NLA durumunu oku (1 = zorunlu, 0 = kapalı)
$ts = Get-CimInstance -Namespace root\cimv2\TerminalServices -ClassName Win32_TSGeneralSetting -Filter "TerminalName='RDP-Tcp'"
$ts.UserAuthenticationRequired

# NLA'yı zorunlu kıl (zaten 1 ise değişiklik olmaz)
Invoke-CimMethod -InputObject $ts -MethodName SetUserAuthenticationRequired -Arguments @{ UserAuthenticationRequired = 1 }

Hesap kilitleme, kaba kuvvete karşı ikinci katmandır. Sunucu bir etki alanına (domain) üye değilse yerel ilkeyi net accounts ile ayarlayabilirsiniz. Etki alanı varsa aynı ayarları grup ilkesinden (Default Domain Policy) yapın; yerel ayar ezilir.

powershell
# Mevcut parola ve kilitleme ilkesini göster
net accounts

# 5 hatalı denemede 15 dakika kilitle, sayaç 15 dakikada sıfırlansın, parola en az 12 karakter olsun
net accounts /lockoutthreshold:5 /lockoutwindow:15 /lockoutduration:15 /minpwlen:12

# Yerleşik yönetici hesabını (SID sonu -500) bulun; adını tahmin edilemeyen bir adla değiştirin
Get-LocalUser | Where-Object { $_.SID -like "*-500" } | Rename-LocalUser -NewName "ORNEK_YONETICI_ADI"

Geri almak için net accounts /lockoutthreshold:0 kilitlemeyi kapatır, Rename-LocalUser ile eski ada dönebilirsiniz. Eşiği çok düşük tutmak (örneğin 3) saldırganın kullanıcılarınızı sürekli kilitlemesine yol açabilir; 5 ile 10 arası çoğu ofis için makul bir başlangıçtır. Parola püskürtmeye karşı asıl çözüm ise kilitleme değil, aşağıdaki MFA'dır.

RDP için çok faktörlü doğrulama seçenekleri

Windows Server, yerel RDP oturumuna kutudan çıktığı haliyle ikinci faktör eklemez. Seçenekler şunlardır:

  1. RD Gateway ve NPS uzantısı: RD Gateway önüne Microsoft Entra çok faktörlü kimlik doğrulaması, NPS uzantısı ile eklenir. Kullanıcı bağlanırken telefonundaki uygulamadan onay verir. Kurulum ayrıntısı Microsoft belgesinde anlatılıyor. Entra ID lisansı gerektirir.
  2. Windows oturum açma için üçüncü taraf kimlik sağlayıcı: Sunucuya kurulan bir bileşen, Windows oturum açma ekranına ikinci adım ekler. Hem konsol hem RDP girişini kapsar. Ürünü seçerken sunucuyla sağlayıcının bulutu arasındaki bağlantı kesildiğinde ne olduğunu (girişe izin mi, ret mi) mutlaka kontrol edin.
  3. MFA'lı VPN: VPN girişinde ikinci faktör istenir, RDP yalnız VPN ağına açıktır. Küçük ekipler için çoğu zaman en kolay uygulanan yoldur.

Karar ölçütü: Microsoft 365 ve Entra ID zaten kullanılıyorsa birinci yol, dışarıdan bağlanan az kişi varsa üçüncü yol pratiktir. Hangisini seçerseniz seçin, yönetici hesapları için MFA'dan istisna tanımayın ve konsol erişimini acil durum yolu olarak saklı tutun.

Logo, Mikro ve Netsis kullanıcıları için yetki ayrımı

Dışarıdan erişimi kapatmak yarı iştir; içeride bir hesap ele geçerse zararın ne kadar yayılacağını yetkiler belirler.

  • Herkese ayrı hesap: Ortak "muhasebe" hesabı kullanmayın. Hem günlükte kimin ne yaptığı görünmez hem de bir parola sızınca herkes etkilenir. RDS lisanslama açısından da kullanıcı başına hesap gerekir.
  • Kullanıcılar yönetici değil: Logo ya da Mikro kullanıcılarını Remote Desktop Users grubuna ekleyin, Administrators grubuna eklemeyin. Program güncellemesi gibi yönetici işleri ayrı bir yönetici hesabıyla yapılsın.
  • SQL Server dışarıya kapalı: 1433 portu yalnız sunucunun kendisine ya da iç ağa açık olsun. sa hesabını programın zorunlu kıldığı durumlar dışında devre dışı bırakın, kullanıyorsanız güçlü ve benzersiz parola verin.
  • Paylaşılan klasörlerde NTFS izni: Firma dosyalarını, dökümleri ve e-fatura arşivini departman bazlı gruplara açın. "Everyone: Tam denetim" izni fidye yazılımının işini kolaylaştırır.
  • Sürücü ve pano yönlendirmesi: Kullanıcının kendi bilgisayarındaki diskleri oturuma bağlaması, istemcideki zararlının sunucuya ulaşma yolunu açar. Dosya aktarımı gerçekten gerekmiyorsa grup ilkesinde "Do not allow drive redirection" ayarını etkinleştirin.

Güncelleme, olay günlüğü izleme ve yedekle geri dönüş planı

Aylık Windows güncellemelerini ertelemeyin; RDP bileşenindeki açıklar bu güncellemelerle kapatılır. Güncellemenin Logo ya da Mikro'yu etkilemesinden çekiniyorsanız önce snapshot alın, sonra kurun.

Günlükte bakmanız gereken kayıtlar: başarısız oturum açma (4625), başarılı oturum açma (4624, oturum türü 10 uzak etkileşimli oturumdur) ve hesap kilitlenmesi (4740). Aşağıdaki komut son 24 saatteki başarılı RDP girişlerini kullanıcı ve kaynak IP ile listeler; PowerShell 5.1 için hazırlandı ve yalnız okuma yapar.

powershell
# Son 24 saatteki başarılı uzak masaüstü girişleri (LogonType 10)
Get-WinEvent -FilterHashtable @{ LogName = 'Security'; Id = 4624; StartTime = (Get-Date).AddDays(-1) } -ErrorAction SilentlyContinue |
    Where-Object { $_.Properties[8].Value -eq 10 } |
    Select-Object TimeCreated,
        @{ n = 'Kullanici'; e = { $_.Properties[5].Value } },
        @{ n = 'KaynakIP';  e = { $_.Properties[18].Value } }

# Son 24 saatteki başarısız deneme sayısı
(Get-WinEvent -FilterHashtable @{ LogName = 'Security'; Id = 4625; StartTime = (Get-Date).AddDays(-1) } -ErrorAction SilentlyContinue).Count

Kontrol noktası: izin listesi devredeyken listede tanımadığınız bir kaynak IP görmemelisiniz. 4625 sayısı izin listesinden sonra belirgin biçimde düşmelidir; düşmüyorsa 3389'a izin veren başka bir kural kalmıştır. 4625 kayıtlarından rapor çıkarıp saldırgan IP'leri otomatik engellemek için RDP brute force engelleme yazısındaki betiği kullanabilirsiniz.

Son katman yedektir. Sunucudaki yedek, sunucuyu şifreleyen saldırgan tarafından da silinebilir. Yedeğin en az bir kopyası sunucudan ayrı, değiştirilemez (immutable) bir depoda durmalı ve geri yükleme ayda bir denenmelidir. Fidye yazılımına karşı ayrı yedek kurgusu için KVKK uyumlu yedekleme sayfasına bakabilirsiniz.

Uzak masaüstü sunucu kiralarken sağlayıcıya sorulacak güvenlik soruları

Kiralık sunucuda bazı önlemler sağlayıcının altyapısına bağlıdır. Teklif alırken şunları sorun:

  1. Panelde ağ seviyesinde güvenlik duvarı var mı, 3389'u yalnız belirli IP'lere açabiliyor muyum?
  2. Erişimi kaybettiğimde kullanabileceğim konsol (VNC ya da KVM) erişimi var mı?
  3. Sunucu teslim edildiğinde 3389 tüm internete açık mı geliyor, NLA açık mı?
  4. Yedekler sunucudan ayrı bir sistemde mi tutuluyor, değiştirilemez kopya seçeneği var mı, geri yükleme nasıl isteniyor?
  5. Windows güncellemelerinden kim sorumlu: ben mi, siz mi?
  6. VPN ya da RD Gateway kurulumunda destek veriyor musunuz?
  7. Veri hangi lokasyonda tutuluyor?

Bu soruları yazılı yanıtla almak, sorumluluk paylaşımını baştan netleştirir. Ekibinizin ofis dışından aynı masaüstüne bağlanacağı hazır bir yapı arıyorsanız uzak masaüstü çözümü sayfasında kapsamı görebilirsiniz.

Sık yapılan hatalar

  • Yalnız port değiştirmek: 3389'u 33890 yapmak taramayı geciktirir, engellemez.
  • İzin listesini kurup eski kuralı unutmak: Elle eklenmiş "3389 her yerden" kuralı izin listesini etkisiz kılar. Yukarıdaki ikinci komutla kontrol edin.
  • Konsol erişimini test etmeden güvenlik duvarına dokunmak: Kendinizi kilitlerseniz tek yol konsoldur.
  • Ortak kullanıcı hesabı: Günlük anlamsızlaşır, MFA uygulanamaz.
  • Yedeği aynı sunucuda tutmak: Fidye yazılımı yedeği de şifreler.
  • SQL Server portunu dışarı açmak: Logo ya da Mikro'yu uzaktan kullanmak için 1433'ün internete açık olması gerekmez; programlar sunucudaki oturumdan çalışır.

Sık sorulan sorular

RDP portunu değiştirmek yeterli olmaz mı?

Olmaz. Port değişikliği günlükteki otomatik deneme sayısını bir süre azaltabilir ama port tarayıcıları RDP servisini farklı portta da tanır. Port değiştirseniz bile IP izin listesi, VPN ya da RD Gateway ile erişimi sınırlamanız gerekir.

NLA'yı açınca eski bilgisayarlar bağlanamaz mı?

Güncel Windows, macOS ve mobil RDP istemcileri NLA'yı destekler. Sorun genellikle çok eski işletim sistemlerinde ya da eski ince istemcilerde çıkar. NLA'yı açtıktan sonra bağlanamayan cihaz varsa NLA'yı kapatmak yerine o istemciyi güncellemek daha doğru yoldur.

Evden çalışanların IP adresi sürekli değişiyor, ne yapmalıyım?

Değişen IP'ler için izin listesi sürdürülebilir değildir. Bu kullanıcılar için VPN ya da RD Gateway kurun, 3389'u yalnız VPN ağına veya gateway'e açın. İkinci faktörü de bu giriş noktasına ekleyin.

Hesap kilitleme saldırganın kullanıcılarımı kilitlemesine yol açmaz mı?

3389 internete açıkken bu risk gerçektir. Bu yüzden kilitleme tek başına değil, erişim kısıtlamasıyla birlikte kullanılmalı. RDP yalnız izinli ağlardan erişilebilir olduğunda dışarıdan kilitleme denemesi de sunucuya ulaşamaz.

Kiralık sunucuda bu ayarları kim yapar?

Yönetilmeyen sunucuda işletim sistemi içindeki ayarlar (NLA, kullanıcılar, Windows Güvenlik Duvarı) sizin sorumluluğunuzdadır. Ağ güvenlik duvarı, konsol ve altyapı yedeği sağlayıcı tarafındadır. Sözleşmede hangi kalemin kimde olduğunu yazılı olarak netleştirin.

Sonuç

Uzak masaüstü sunucu güvenliği tek bir ayarla bitmez, katmanlarla sağlanır. Önce bash betiğiyle dışarıdan neyin açık olduğunu görün. Sonra 3389'u izin listesi, VPN ya da RD Gateway arkasına alın, NLA ile hesap kilitlemeyi açın ve MFA ekleyin. Logo ve Mikro kullanıcılarını yönetici yetkisinden ayırın, günlüğü düzenli okuyun ve yedeğin bir kopyasını sunucudan ayrı tutun. Her değişiklikten sonra betiği izinli ve izinsiz bir ağdan yeniden çalıştırarak sonucu doğrulayın.

  • #uzak masaüstü
  • #rdp güvenliği
  • #windows server
  • #nla
  • #iki faktörlü doğrulama
  • #logo
  • #mikro
  • #güvenlik duvarı

Yazar

Kurucu, sunucu.com.tr · Bulut altyapısı ve yapay zeka otomasyonları

sunucu.com.tr ve Sunucu UK'in kurucusu. Bulut altyapısı, sanallaştırma ve sunucu yönetimi üzerine çalışıyor; şirketlerin iş yazılımlarını, web sitelerini ve yapay zeka iş yüklerini güvenli sunuculara taşıyor. Blogdaki rehberler sahada karşılaşılan kurulum, güvenlik ve taşıma işlerinden derlenir; yazılar yapay zeka desteğiyle hazırlanır ve kaynaklarla doğrulanır.

Tüm yazılarıProfil

İlgili yazılar

Güvenlik yazıları