
Windows Server güvenlik ayarları, internete açık bir Windows VDS'in ilk gününden itibaren ele alınması gereken bir konudur. Uzak Masaüstü erişimi açık bir sunucu, devreye girdiği andan itibaren otomatik parola denemeleriyle karşılaşır; güncellenmemiş bir sistem, zayıf bir yönetici parolası veya gereksiz yere açık bırakılmış bir servis, fidye yazılımı gibi ciddi saldırıların kapısını aralayabilir. Bu rehberde Windows Server 2019 ve 2022 çalıştıran bir VDS'i sertleştirmek için uygulayabileceğiniz adımları, PowerShell komutlarıyla birlikte öncelik sırasına göre anlatıyoruz. Komutların tamamı yönetici olarak açılmış bir PowerShell penceresinde çalıştırılmalıdır.
1. Güncellemeleri Hemen Yükleyin
Yeni teslim edilen bir sunucuda yapılacak ilk iş, bekleyen tüm güvenlik güncellemelerini yüklemektir. RDP ve SMB gibi ağ servislerinde geçmişte çıkan kritik açıkların büyük kısmı, güncel sistemlerde zaten kapatılmıştır. Güncellemeleri Ayarlar > Güncelleştirme ve Güvenlik > Windows Update üzerinden veya komut satırında sconfig aracının güncelleme seçeneğiyle yükleyebilirsiniz.
Son yüklenen güncellemeleri görmek için:
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5
Güncellemelerin otomatik indirilmesini açık tutun, ancak yeniden başlatma zamanlamasını kendi iş akışınıza göre ayarlayın. 7/24 çalışan uygulamalarınız varsa yeniden başlatmaları düşük trafikli saatlere planlamak kesintiyi en aza indirir.
2. Yönetici Hesabını Güvenli Hale Getirin
Yerleşik Administrator hesabının adı herkes tarafından bilinir ve parola denemelerinin neredeyse tamamı bu ada yöneliktir. Daha güvenli yaklaşım, farklı adlı bir yönetici hesabı oluşturup yerleşik hesabı devre dışı bırakmaktır:
$parola = Read-Host -AsSecureString "Yeni hesabin parolasi"
New-LocalUser -Name "srvyonetici" -Password $parola -FullName "Sunucu Yoneticisi" -PasswordNeverExpires
Add-LocalGroupMember -SID "S-1-5-32-544" -Member "srvyonetici"
S-1-5-32-544, Administrators grubunun dilden bağımsız kimliğidir; Türkçe sistemlerde grubun adı Yöneticiler olarak göründüğü için SID kullanmak komutu her dilde çalışır hale getirir.
Önemli: Yerleşik hesabı kapatmadan önce yeni hesapla RDP üzerinden giriş yapabildiğinizi mutlaka test edin. Test başarılıysa yerleşik yönetici hesabını (SID'i -500 ile biten hesap) şöyle devre dışı bırakabilirsiniz:
Get-LocalUser | Where-Object { $_.SID -like "*-500" } | Disable-LocalUser
Parola için en az 14–16 karakterli, başka hiçbir yerde kullanmadığınız bir parola tercih edin ve bir parola yöneticisinde saklayın. Teslim e-postasında gelen parolayı mutlaka değiştirin.
3. Uzak Masaüstü Erişimini Sıkılaştırın
Ağ Seviyesi Kimlik Doğrulaması (NLA)
NLA açık olduğunda kullanıcı, oturum ekranı oluşturulmadan önce kimliğini doğrular. Bu hem sunucu kaynaklarını korur hem de kimlik doğrulaması öncesinde istismar edilebilen açıklara karşı ek bir katman sağlar. Durumu kontrol edip açmak için:
$rdp = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp'
Get-ItemProperty -Path $rdp -Name UserAuthentication
Set-ItemProperty -Path $rdp -Name UserAuthentication -Value 1
Değer 1 ise NLA etkindir. Aynı ayara Sistem Özellikleri > Uzak sekmesindeki Yalnızca Ağ Düzeyinde Kimlik Doğrulaması ile Uzak Masaüstü çalıştıran bilgisayarlardan bağlantılara izin ver seçeneğiyle de ulaşabilirsiniz.
RDP'yi belirli IP adreslerine sınırlayın
Sabit bir ofis veya VPN IP adresiniz varsa RDP'yi yalnızca bu adreslere açmak, alabileceğiniz en etkili önlemdir. Varsayılan port kullanılıyorsa Windows'un hazır Uzak Masaüstü kurallarını dilden bağımsız grup kimliğiyle kısıtlayabilirsiniz:
Set-NetFirewallRule -Group "@FirewallAPI.dll,-28752" -RemoteAddress 198.51.100.20
Bu ayardan sonra başka bir adresten bağlanamayacağınızı ve IP'niz değişirse konsol erişimine ihtiyaç duyacağınızı unutmayın. RDP portunu değiştirmeyi de düşünüyorsanız güvenlik duvarı kuralı ve yeniden başlatma adımlarıyla birlikte RDP portu değiştirme rehberimizi izleyin.
4. Hesap Kilitleme İlkesi Tanımlayın
Hesap kilitleme ilkesi, belirli sayıda hatalı parola denemesinden sonra hesabı bir süre kilitleyerek deneme yanılma saldırılarını yavaşlatır. Komut satırından şöyle ayarlanır:
net accounts /lockoutthreshold:5 /lockoutwindow:30 /lockoutduration:30
net accounts
Bu örnekte 30 dakika içinde 5 hatalı deneme yapılırsa hesap 30 dakika kilitlenir. Aynı ayarlar secpol.msc içinde Hesap İlkeleri > Hesap Kilitleme İlkesi altında da bulunur. Dikkat edilmesi gereken iki nokta vardır: Birincisi, yerleşik Administrator hesabı sürüme ve ilke ayarına bağlı olarak kilitlemeden muaf tutulabilir; bu da ayrı adlı bir yönetici hesabı kullanmanın bir başka gerekçesidir. İkincisi, saldırganlar kilitleme ilkesini kullanarak meşru kullanıcıların hesaplarını kilitleyebilir; IP kısıtlaması bu riski de ortadan kaldırır. Kilitlenme sonrası çözüm adımlarını RDP çok fazla oturum açma denemesi hatası yazımızda anlattık.
5. Windows Güvenlik Duvarını Denetleyin
Windows Güvenlik Duvarı'nın tüm profillerde açık olduğundan emin olun:
Get-NetFirewallProfile | Select-Object Name, Enabled
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True
Ardından gelen trafiğe izin veren etkin kuralları gözden geçirin:
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow |
Select-Object DisplayName, Profile | Sort-Object DisplayName
SMB (445), MS SQL Server (1433) ve uzak yönetim portları gibi servisler internete doğrudan açık olmamalıdır. Bir veritabanına yalnızca uygulama sunucunuzun erişmesi gerekiyorsa kuralı o adresle sınırlandırın:
New-NetFirewallRule -DisplayName "SQL Server - Uygulama Sunucusu" -Direction Inbound -Protocol TCP -LocalPort 1433 -RemoteAddress 198.51.100.20 -Action Allow
Bir portun dışarıdan açık görünüp görünmediğini port kontrol aracımızla test ederek beklenmedik açıkları kolayca fark edebilirsiniz.
6. Gereksiz Rolleri ve Servisleri Kapatın
Kullanılmayan her rol ve servis, gereksiz bir saldırı yüzeyidir. Kurulu rolleri ve özellikleri listeleyin:
Get-WindowsFeature | Where-Object Installed | Select-Object Name, DisplayName
Özellikle şu ikisine dikkat edin:
- SMBv1: Eski ve güvensiz bir dosya paylaşım protokolüdür. Windows Server 2019 ve 2022'de varsayılan olarak kurulu gelmez, ancak özelleştirilmiş imajlarda kontrol etmekte fayda vardır.
- Yazdırma Biriktiricisi (Print Spooler): Yazıcı kullanılmayan sunucularda gereksizdir ve geçmişte ciddi açıklara konu olmuştur.
# SMBv1 durumunu kontrol et ve kapat
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
# Yazıcı kullanılmıyorsa Print Spooler'ı kapat
Stop-Service -Name Spooler
Set-Service -Name Spooler -StartupType Disabled
Print Spooler'ı kapattığınızda RDP oturumlarında yerel yazıcı yönlendirmesinin de çalışmayacağını unutmayın.
7. Microsoft Defender'ı Etkin Tutun
Windows Server 2019 ve 2022'de Microsoft Defender Antivirus yerleşik olarak gelir. Gerçek zamanlı korumanın açık ve imzaların güncel olduğunu kontrol edin:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Update-MpSignature
Start-MpScan -ScanType QuickScan
Başka bir güvenlik yazılımı kuruyorsanız iki ürünün birbiriyle çakışmamasına dikkat edin. Sunucuya internetten indirilen dosyaları yalnızca güvenilir kaynaklardan alın ve sunucuda gündelik internet gezintisi yapmaktan kaçının.
8. Oturum Açma Günlüklerini İzleyin
Güvenlik günlüğü, sunucunuza yönelik denemeleri görmenin en doğrudan yoludur. Olay kimliği 4625 başarısız oturum açma denemelerini, 4624 başarılı oturum açmaları gösterir. Son başarısız denemeleri listelemek için:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
Select-Object TimeCreated, Id
Olay Görüntüleyicisi'nde (eventvwr.msc) Windows Günlükleri > Güvenlik bölümünde aynı kayıtları ayrıntılarıyla, deneme yapılan kullanıcı adı ve kaynak ağ adresiyle birlikte görebilirsiniz. Kayıtlardaki Oturum Açma Türü alanı da yol gösterir: Başarılı uzak masaüstü oturumları 4624 kayıtlarında genellikle tür 10 (RemoteInteractive) olarak görünür; NLA açıkken başarısız RDP denemeleri ise çoğunlukla tür 3 (ağ) olarak kaydedilir. Tanımadığınız bir saatte, tanımadığınız bir adresten gelen başarılı bir oturum açma kaydı, parolanın ele geçirilmiş olabileceğinin işaretidir; böyle bir durumda parolayı hemen değiştirip açık oturumları kontrol edin. Kısa sürede yüzlerce 4625 kaydı görüyorsanız RDP'nin IP kısıtlaması olmadan internete açık olduğu ve hedef alındığı anlamına gelir.
9. Yedekleme ve Kurtarma Planı Oluşturun
Hiçbir güvenlik önlemi yüzde yüz koruma sağlamaz; fidye yazılımı veya hatalı bir güncelleme sonrasında sizi kurtaracak olan güncel bir yedektir. Windows Server Yedekleme özelliğini kurarak düzenli yedek alabilirsiniz:
Install-WindowsFeature -Name Windows-Server-Backup
Yedeklerin en az bir kopyasını sunucunun dışında, mümkünse farklı bir lokasyonda tutun ve geri yükleme testini düzenli olarak yapın. Ayrıntılı strateji için VDS yedekleme stratejileri ve 3-2-1 kuralı yazımıza göz atabilirsiniz.
Özet kontrol listesi
| Adım | Öncelik | Kontrol komutu |
|---|---|---|
| Güncellemeler | Kritik | Get-HotFix |
| Ayrı yönetici hesabı ve güçlü parola | Kritik | Get-LocalUser |
| NLA açık | Yüksek | Get-ItemProperty ... UserAuthentication |
| RDP için IP kısıtlaması | Yüksek | Get-NetFirewallRule |
| Hesap kilitleme ilkesi | Yüksek | net accounts |
| SMBv1 ve Print Spooler kapalı | Orta | Get-SmbServerConfiguration |
| Defender güncel | Orta | Get-MpComputerStatus |
| Düzenli yedek | Kritik | Geri yükleme testi |
Sık Sorulan Sorular
Windows VDS'te ilk yapılması gereken güvenlik adımı nedir?
Güncellemeleri yüklemek ve teslim edilen yönetici parolasını güçlü, benzersiz bir parolayla değiştirmek. Ardından RDP erişimini mümkünse kendi IP adreslerinizle sınırlamak en büyük farkı yaratan adımdır.
Yerleşik Administrator hesabını silmeli miyim?
Yerleşik hesap silinemez, ancak devre dışı bırakılabilir. Bunu yalnızca farklı adlı yeni yönetici hesabınızla RDP üzerinden giriş yapabildiğinizi doğruladıktan sonra yapın; aksi halde sunucuya yalnızca konsoldan girebilirsiniz.
RDP portunu değiştirmek tek başına yeterli mi?
Hayır. Port değişikliği otomatik taramaların gürültüsünü azaltır, ancak hedefli bir saldırgan yeni portu kolayca bulabilir. IP kısıtlaması, NLA, güçlü parola ve hesap kilitleme ilkesiyle birlikte kullanılmalıdır.
Ek bir antivirüs yazılımına ihtiyacım var mı?
Microsoft Defender çoğu sunucu için temel korumayı sağlar. Kurumsal politikalarınız farklı bir ürün gerektiriyorsa kurabilirsiniz; ancak iki gerçek zamanlı koruma ürününü aynı anda çalıştırmak performans ve uyumluluk sorunlarına yol açabilir.
Sunucumda IIS ile web sitesi çalışıyor, ek olarak ne yapmalıyım?
Web uygulamanızı ve IIS'i güncel tutun, yalnızca 80 ve 443 portlarını herkese açın ve yönetim arayüzlerini IP ile kısıtlayın. Uygulama katmanındaki saldırılara karşı trafiği sunucuya ulaşmadan süzen bir Layer 7 WAF ve DDoS koruma hizmeti ek bir güvenlik katmanı sağlar.
Windows Server güvenlik ayarları bir kez yapılıp unutulacak bir iş değil, düzenli olarak gözden geçirilmesi gereken bir süreçtir. Ağ seviyesinde DDoS koruması, NVMe SSD ve Windows Server kurulum seçenekleri sunan Windows sanal sunucu paketlerimizle bu adımları güvenilir bir altyapı üzerinde uygulayabilirsiniz.
Hizmet Sözleşmemiz
Web Koruma
İade Politikamız
