İçeriğe atla
tolgahat.com

Windows Server 2025 sertleştirme: kurulum sonrası 27 madde

Yeni kurulan Windows Server 2025 için SMB imzalama, NTLM, LAPS, Credential Guard, ASR ve OSConfig dahil komutlu ve doğrulamalı sertleştirme listesi.

THTolga HatipoğluYayın 20 dk okuma
HIZLI CEVAP

Windows Server 2025 birçok ayarı sıkı getiriyor: giden SMB imzalama zorunlu, NTLMv1 kaldırıldı, uygun donanımda Credential Guard açık. SMB sunucu tarafı, NTLM denetimi, RDP kapsamı, ASR, denetim ilkesi ve geri yükleme testi hâlâ sizin işiniz. Bu liste 27 maddeyi yedi bölümde neden, komut ve doğrulamayla veriyor. En kısa yol: test sunucusunda OSConfig güvenlik temel çizgisini uygulamak, kalan boşlukları bu listeyle kapatmak.

Bu listeyi nasıl kullanmalı

Liste iki rolü kapsıyor: üye sunucu (dosya, uygulama, Hyper-V) ve etki alanı denetleyicisi (DC). DC'ye özgü maddeler "Not" kutusuyla işaretli; Credential Guard, LAPS ve LDAP iki rolde farklı davranır. Workgroup sunucuda GPO yoktur; orada OSConfig'in WorkgroupMember senaryosu ve yerel PowerShell kalır.

Hiçbir maddeyi doğrudan üretime uygulamayın. SMB, NTLM, LDAP ve ASR'nin denetim (audit) modu var: önce denetim, istisnaları çöz, sonra zorla. Tek sunucuda PowerShell yeterli; onlarca sunucuda GPO veya OSConfig, ama aynı ayarı iki kaynaktan yönetmeyin.

Öncelikler: Y ilk gün, O ilk ay, D fırsat buldukça.

Beş katmanlı sertleştirme şeması. Kimlik katmanı LAPS, SMB imzalama, NTLM denetimi, LDAP imzalama, Credential Guard ve LSA korumasıyla kimlik bilgisi hırsızlığını ve NTLM relay saldırısını durdurur. Ağ katmanı RDP NLA ve kapsamı, güvenlik duvarı, SMBv1, LLMNR ve NetBIOS kapatma ve WinRM HTTPS ile keşfi ve ad çözümleme zehirlemesini durdurur. Uç nokta katmanı Defender Antivirus, ASR kuralları ve Tamper Protection içerir. Denetim katmanı gelişmiş denetim ilkesi, komut satırı kaydı, Script Block Logging ve günlük boyutlarıyla iz bırakır. Kurtarma katmanı yedek, BitLocker anahtarı, AD Geri Dönüşüm Kutusu ve geri yükleme testiyle dönüş noktası sağlar.
Şekil 1. Beş katman: biri kaçırdığında bir sonraki yakalar.

1. İlk saat: güncelleme, roller, yerel yönetici

  1. Güncellemeleri kurun (Y)

    Neden: kurulum medyası aylarca eski olabilir; ilk açılıştaki açıkların hepsi bilinen açıklardır. Nasıl: SConfig'in güncelleme menüsü, Ayarlar > Windows Update veya WSUS/Azure Update Manager; ardından yeniden başlatın. Doğrulama: derleme ve UBR, Microsoft'un Windows Server 2025 sürüm geçmişindeki son kümülatif güncellemeyle eşleşmeli.

    Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' | Select-Object CurrentBuild, UBR
    Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 3 HotFixID, InstalledOn
  2. Gereksiz rol, özellik ve servisleri kaldırın (Y)

    Neden: kurulu her rol ek saldırı yüzeyidir. Nasıl: kullanmadığınızı kaldırın; yazdırma sunucusu değilse, özellikle DC'de, Print Spooler'ı kapatın.

    Get-WindowsFeature | Where-Object Installed | Select-Object Name, DisplayName
    Uninstall-WindowsFeature -Name <OZELLIK-ADI>
    Stop-Service -Name Spooler; Set-Service -Name Spooler -StartupType Disabled

    Doğrulama: Get-Service Spooler çıktısında Status Stopped, StartType Disabled olmalı.

  3. Yerel Administrator'ı Windows LAPS'e bağlayın (Y)

    Neden: her sunucuda aynı yerel parola, tek sunucunun ele geçirilmesini tüm filoya yayar (pass-the-hash). Windows LAPS 2025'te yerleşik; yeni otomatik hesap yönetimi modu yönetilen hesabı kendisi oluşturup adını rastgele yapabilir. Nasıl: ormanda bir kez şema, OU'ya izin, ardından GPO'da Yönetim Şablonları > Sistem > LAPS > "Configure password backup directory" = Active Directory.

    Update-LapsADSchema
    Set-LapsADComputerSelfPermission -Identity '<OU-ADI>'

    Yerleşik hesabı adıyla değil SID'iyle (RID 500) bulun; Türkçe kurulumda adı farklı olabilir:

    Get-LocalUser | Where-Object { $_.SID -like 'S-1-5-*-500' } | Rename-LocalUser -NewName '<YENI-AD>'

    Doğrulama: sunucuda Invoke-LapsPolicyProcessing, ardından aşağıdaki komut; LAPS günlüğündeki olay 10018 parolanın AD'ye yazıldığını gösterir.

    Get-LapsADPassword -Identity <SUNUCU-ADI> -AsPlainText

2. Kimlik ve oturum

  1. SMB imzalamayı sunucu tarafında da zorunlu yapın (Y)

    Neden: imzasız SMB, NTLM relay ve araya girme saldırılarına açıktır. Microsoft'un belgesine göre Windows Server 2025 yalnızca giden imzalamayı zorunlu tutar; gelen taraf açık kalır. Nasıl: önce denetimi açın, SMBServer/Audit günlüğünü izleyin, sonra zorlayın. GPO karşılığı "Microsoft network server: Digitally sign communications (always)".

    Set-SmbServerConfiguration -AuditClientDoesNotSupportSigning $true -Force
    Set-SmbServerConfiguration -RequireSecuritySignature $true -Force

    Doğrulama: iki tarafta da RequireSecuritySignature True olmalı.

    Get-SmbServerConfiguration | Select-Object RequireSecuritySignature, AuditClientDoesNotSupportSigning
    Get-SmbClientConfiguration | Select-Object RequireSecuritySignature
  2. Hassas paylaşımlarda SMB şifrelemeyi açın (O)

    Neden: imzalama bütünlük sağlar, gizlilik sağlamaz. Nasıl: sunucu genelinde değil, paylaşım bazında başlayın. Windows Server 2025 istemci tarafında RequireEncryption seçeneği de getirdi; ama hedef SMB 3.x şifrelemeyi desteklemiyorsa bağlantı hiç kurulmaz.

    Set-SmbShare -Name <PAYLASIM-ADI> -EncryptData $true -Force

    Doğrulama: Get-SmbShare çıktısında EncryptData True; SMB 3.x desteklemeyen istemci SmbServer/Operational günlüğüne olay 1003 düşürür.

  3. NTLM'i denetleyin, sonra kısıtlayın (Y denetim, O kısıtlama)

    Neden: NTLMv1 Windows Server 2025'ten kaldırıldı, ama NTLMv2 çalışır ve relay ile pass-the-hash'in ana yoludur; Microsoft Ocak 2026'da NTLM'i ileride varsayılan kapatma planını açıkladı. Nasıl: Güvenlik Seçenekleri'nde "Network security: LAN Manager authentication level" = "Send NTLMv2 response only. Refuse LM & NTLM"; "Restrict NTLM: Audit Incoming NTLM Traffic" = "Enable auditing for all accounts"; "Restrict NTLM: Outgoing NTLM traffic to remote servers" = "Audit all". Kullanım haritası çıkınca SMB istemcisinde NTLM'i engelleyin; istisnalar "Block NTLM Server Exception List" ile.

    Set-SmbClientConfiguration -BlockNTLM $true -Force

    Doğrulama:

    Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel
    Get-WinEvent -LogName 'Microsoft-Windows-NTLM/Operational' -MaxEvents 20
  4. LDAP imzalama ve kanal bağlamayı zorlayın (DC, Y)

    Neden: imzasız LDAP ve kanal bağlamasız LDAPS NTLM relay'e açıktır. Microsoft'a göre yeni Windows Server 2025 ormanlarında imzalama zorunlu, kanal bağlama (CBT) "When supported" ve denetimi açık gelir; yükseltilen DC'lerde eski ilke korunur. Nasıl: Default Domain Controllers Policy'de "Domain controller: LDAP server signing requirements" = Require signing; "LDAP server channel binding token requirements" önce When supported, olaylar temizlenince Always. İstemcileri bulmak için teşhis düzeyini 2 yapın:

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics' -Name '16 LDAP Interface Events' -Value 2

    Doğrulama: 2887/2889 imzasız bind'leri, 3074/3075 CBT göndermeyen istemcileri gösterir.

    Get-WinEvent -FilterHashtable @{ LogName = 'Directory Service'; Id = 2887, 2889, 3039, 3074, 3075 } -MaxEvents 50
  5. Credential Guard'ın çalıştığını doğrulayın (Y)

    Neden: NTLM hash'lerini ve Kerberos TGT'lerini sanallaştırma tabanlı güvenlikle (VBS) yalıtır. Microsoft'a göre Windows Server 2025'te etki alanına katılmış, DC olmayan, donanım ve lisans şartını karşılayan ve daha önce açıkça kapatılmamış sunucularda UEFI kilidi olmadan varsayılan açıktır. Hyper-V'de yalnızca 2. nesil VM'de, IOMMU'lu ana bilgisayarda çalışır. Nasıl: GPO'da Sistem > Device Guard > "Turn On Virtualization Based Security" > Credential Guard = "Enabled without lock". Doğrulama: çıktıda 1 varsa çalışıyor.

    (Get-CimInstance -Namespace root\Microsoft\Windows\DeviceGuard -ClassName Win32_DeviceGuard).SecurityServicesRunning
  6. LSA korumasını açın (Y)

    Neden: LSASS'ı korumalı süreç (PPL) yapar, bellek okumayı engeller. Microsoft'un otomatik etkinleştirme ölçütleri Windows 11 için yazılmış; sunucuda kendiniz kontrol edin. Nasıl: önce CodeIntegrity/Operational günlüğünde 3065/3066 denetim olaylarına bakın, sonra GPO'da Sistem > Local Security Authority > "Configures LSASS to run as a protected process" ya da kayıt defteri (2 = UEFI kilidi yok):

    New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name RunAsPPL -PropertyType DWord -Value 2 -Force

    Doğrulama: yeniden başlatmadan sonra Wininit olay 12, "LSASS.exe was started as a protected process" der.

    Get-WinEvent -FilterHashtable @{ LogName = 'System'; ProviderName = 'Microsoft-Windows-Wininit'; Id = 12 } -MaxEvents 1

3. Ağ ve uzaktan erişim

  1. RDP'de NLA'yı zorunlu yapın (Y)

    Neden: NLA, oturum ekranı açılmadan kimlik doğrulama ister; kimliği doğrulanmamış RDP yüzeyini küçültür. Nasıl: GPO'da Windows Bileşenleri > Uzak Masaüstü Hizmetleri > Uzak Masaüstü Oturumu Ana Bilgisayarı > Güvenlik > "Require user authentication for remote connections by using Network Level Authentication".

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1

    Doğrulama: UserAuthenticationRequired 1 olmalı.

    Get-CimInstance -Namespace root\cimv2\TerminalServices -ClassName Win32_TSGeneralSetting -Filter "TerminalName='RDP-tcp'" | Select-Object UserAuthenticationRequired
  2. RDP'yi yönetim ağına ve küçük bir gruba kısıtlayın (Y)

    Neden: geniş ağa açık RDP, kaba kuvvet ve fidye yazılımı girişinin klasik yoludur. Nasıl: kuralın kaynağını yönetim ağıyla sınırlayın; kural adları dil bağımsızdır:

    Set-NetFirewallRule -Name 'RemoteDesktop-UserMode-In-TCP', 'RemoteDesktop-UserMode-In-UDP' -RemoteAddress <YONETIM-AGI-CIDR>

    Doğrulama: adres filtresi ve Remote Desktop Users grubu (SID S-1-5-32-555) üyeleri.

    Get-NetFirewallRule -Name 'RemoteDesktop-UserMode-In-*' | Get-NetFirewallAddressFilter | Select-Object RemoteAddress
    Get-LocalGroupMember -SID 'S-1-5-32-555'
  3. Güvenlik duvarını üç profilde açık tutun (Y)

    Neden: ağ konumu algılaması şaştığında kapalı tek profil sunucuyu açık bırakır. Nasıl: gelen trafik varsayılan engel, engellenenler günlüğe. Windows Server 2025'te yeni SMB paylaşımı artık 137-139'u açmayan "File and Printer Sharing (Restrictive)" grubunu kullanıyor.

    Set-NetFirewallProfile -Profile Domain, Private, Public -Enabled True -DefaultInboundAction Block -LogBlocked True

    Doğrulama: Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, LogBlocked.

  4. SMBv1'in kurulu olmadığını doğrulayın (Y)

    Neden: SMBv1, EternalBlue (MS17-010) sınıfı açıkların kapısıdır. 2025'te varsayılan kurulu gelmez; şablondan veya yükseltmeden kalmış olabilir.

    Uninstall-WindowsFeature -Name FS-SMB1

    Doğrulama: Get-WindowsFeature FS-SMB1 Available, Get-SmbServerConfiguration çıktısında EnableSMB1Protocol False.

  5. LLMNR ve NetBIOS'u kapatın (O)

    Neden: Responder benzeri araçlar LLMNR ve NBT-NS yayınlarını zehirleyip NTLM hash toplar. Nasıl: GPO'da Ağ > DNS İstemcisi > "Turn off multicast name resolution" = Enabled. NetBIOS için GPO yoktur; bağdaştırıcı başına veya DHCP seçeneğiyle kapatılır:

    Get-CimInstance Win32_NetworkAdapterConfiguration -Filter 'IPEnabled = TRUE' | Invoke-CimMethod -MethodName SetTcpipNetbios -Arguments @{ TcpipNetbiosOptions = [uint32]2 }

    Doğrulama: EnableMulticast 0, her bağdaştırıcıda TcpipNetbiosOptions 2.

    Get-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient' -Name EnableMulticast
    Get-CimInstance Win32_NetworkAdapterConfiguration -Filter 'IPEnabled = TRUE' | Select-Object Description, TcpipNetbiosOptions
  6. Workgroup ve DMZ sunucularında WinRM'i HTTPS'e taşıyın (O)

    Neden: etki alanında Kerberos ile WinRM trafiği zaten şifrelidir; HTTPS, NTLM kullanan workgroup sunucularında ve sunucu kimliğini sertifikayla doğrulamak için gerekir. Nasıl: FQDN'li Server Authentication sertifikasıyla dinleyici açın, 5986'yı yalnız yönetim ağına izin verin.

    New-Item -Path WSMan:\localhost\Listener -Transport HTTPS -Address * -CertificateThumbPrint <SERTIFIKA-PARMAK-IZI> -Force
    New-NetFirewallRule -DisplayName 'WinRM HTTPS' -Direction Inbound -Protocol TCP -LocalPort 5986 -RemoteAddress <YONETIM-AGI-CIDR> -Action Allow

    Doğrulama:

    Get-WSManInstance -ResourceURI winrm/config/listener -Enumerate | Select-Object Transport, Port, CertificateThumbprint

4. Microsoft Defender

  1. Defender Antivirus'ün aktif modda ve güncel olduğunu doğrulayın (Y)

    Neden: üçüncü taraf antivirüs varken Defender pasif moda geçer ve ASR kuralları uygulanmaz. Nasıl: bulut korumasını ve örnek gönderimini açın.

    Set-MpPreference -MAPSReporting Advanced -SubmitSamplesConsent SendSafeSamples
    Update-MpSignature

    Doğrulama: AMRunningMode Normal, RealTimeProtectionEnabled True, imza yaşı 1 günden az.

    Get-MpComputerStatus | Select-Object AMRunningMode, RealTimeProtectionEnabled, AntivirusSignatureAge
  2. Sunucuya uygun ASR alt kümesini Audit modunda açın (O)

    Neden: saldırı yüzeyi azaltma (ASR) kuralları zararlıların sık kullandığı davranışları keser. Office odaklı kurallar sunucuda anlamsızdır; aşağıdaki alt küme Microsoft'un tablosuna göre Windows Server 2019 ve sonrasında desteklenir.

    KuralGUIDBaşlangıç
    Savunmasız imzalı sürücülerin kötüye kullanımı56a863a9-875e-4185-98a7-b882c64b5ce5Block
    LSASS'tan kimlik bilgisi çalma9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2LSA koruması yoksa Block
    WMI olay aboneliğiyle kalıcılıke6db77e5-3df2-4cf1-b95a-636979351e5bAudit
    PsExec ve WMI kaynaklı süreç oluşturmad1e49aac-8f56-4280-b9ba-993a6d77406cAudit (ConfigMgr varsa kapalı)
    Gizlenmiş (obfuscated) betikler5beb7efe-fd9a-4556-801d-275e5ffc04ccAudit
    JavaScript/VBScript ile indirilen yürütülebilird3e037e1-3eb8-44c8-a917-57927947596dAudit
    USB'den imzasız süreçb2b3f03d-6a65-4f7b-a9c7-1c7ef74a9ba4Block
    Fidye yazılımına karşı gelişmiş korumac1db55ab-c21a-4637-bb3f-a12568109d35Audit
    Add-MpPreference -AttackSurfaceReductionRules_Ids <KURAL-GUID> -AttackSurfaceReductionRules_Actions AuditMode

    Doğrulama: kural listesi ve olaylar (1121 engellendi, 1122 denetlendi).

    Get-MpPreference | Select-Object AttackSurfaceReductionRules_Ids, AttackSurfaceReductionRules_Actions
    Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-Windows Defender/Operational'; Id = 1121, 1122 } -MaxEvents 50
  3. Tamper Protection'ı açın (O)

    Neden: yönetici yetkisi ele geçiren saldırganın ilk işi Defender'ı kapatmaktır. Nasıl: GPO veya PowerShell ile açılmaz; Defender for Endpoint'e alınmış sunucuda Defender portalı veya Intune, tek sunucuda Windows Güvenliği uygulaması. Doğrulama: IsTamperProtected True.

    Get-MpComputerStatus | Select-Object IsTamperProtected, RealTimeProtectionEnabled

5. Denetim ve günlük

  1. Gelişmiş denetim ilkesini alt kategori düzeyinde ayarlayın (Y)

    Neden: varsayılan denetim "kim, nereden, hangi komutla" sorusunu yanıtlamaz. Nasıl: GPO'da Güvenlik Ayarları > Gelişmiş Denetim İlkesi Yapılandırması altında en az Credential Validation, Logon, Special Logon, Security Group Management, User Account Management, Process Creation ve Sensitive Privilege Use için Başarı ve Hata; DC'de ek olarak Directory Service Changes ve Kerberos Authentication Service. "Audit: Force audit policy subcategory settings" Enabled, Sistem > Audit Process Creation > "Include command line in process creation events" Enabled (olay 4688'e komut satırı ekler).

    Doğrulama: auditpol /get /category:*. Türkçe arayüzde alt kategori adları yerelleştirilir; GUID'ler için auditpol /list /subcategory:* /v.

  2. PowerShell Script Block Logging'i açın (Y)

    Neden: saldırganların gizlenmiş PowerShell'i, çözülmüş hâliyle olay 4104 olarak kaydedilir. Nasıl: GPO'da Windows Bileşenleri > Windows PowerShell > "Turn on PowerShell Script Block Logging". PowerShell 7 kendi ilke şablonunu ve PowerShellCore/Operational günlüğünü kullanır.

    New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging' -Force
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging' -Name EnableScriptBlockLogging -Value 1

    Doğrulama: Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-PowerShell/Operational'; Id = 4104 } -MaxEvents 5 kayıt döndürmeli.

  3. Olay günlüğü boyutlarını büyütün (O)

    Neden: varsayılan boyutta Security günlüğü yoğun bir DC'de saatler içinde döner. OSConfig temel çizgisi Security için en az 192 MB öngörüyor; SIEM'e iletim yoksa ben 1 GB veriyorum. Nasıl: GPO'da Windows Bileşenleri > Olay Günlüğü Hizmeti > Güvenlik > "Specify the maximum log file size (KB)" ya da:

    wevtutil sl Security /ms:1073741824

    Doğrulama: Get-WinEvent -ListLog Security, System | Select-Object LogName, MaximumSizeInBytes, LogMode.

6. Güncel yönetim: OSConfig ve Hotpatch

  1. OSConfig güvenlik temel çizgisini uygulayın (O)

    Neden: tek komutla rol bazlı yüzlerce ayarı uygular ve sapma denetimiyle (drift control) korur; Microsoft'a göre güncel sürüm üye sunucuda 344, DC'de 347 ayar içeriyor. Nasıl: modülü kurun, rolünüze uygun senaryoyu uygulayın, yeniden başlatın. DC için SecurityBaseline/WindowsServer/2025/DomainController, workgroup için .../WorkgroupMember; ayrıca Defender/Antivirus/WindowsServer/2025 ve LAPS/WindowsServer/2025/MemberServer senaryoları var.

    Install-Module -Name Microsoft.OSConfig -Scope AllUsers -Force
    Set-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WindowsServer/2025/MemberServer -Default

    Doğrulama: uyumluluk tablosu.

    Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WindowsServer/2025/MemberServer | Format-Table Name, @{ Name = 'Status'; Expression = { $_.Compliance.Status } }, @{ Name = 'Reason'; Expression = { $_.Compliance.Reason } } -AutoSize -Wrap

    GPO tercih ediyorsanız alternatif Security Compliance Toolkit'teki Windows Server 2025 güvenlik temel çizgisi; denetçi CIS isterse referans "CIS Microsoft Windows Server 2025 Benchmark".

  2. Hotpatch'i değerlendirin (D)

    Neden: güvenlik güncellemelerini yeniden başlatmadan uygular. Microsoft Learn'e göre Azure Arc'a bağlı Windows Server 2025 Standard ve Datacenter'da Arc portalından açılır ve artık ek ücret alınmıyor. Üç ayda bir gelen temel (baseline) güncelleme yine yeniden başlatma ister; .NET ve sürücüler kapsam dışı. Doğrulama: Azure Update Manager'daki Hotpatch durumu ve Get-HotFix.

Uygulama akışı: test sunucusunda ayarlar denetim modunda uygulanır ve kırılanlar listelenir; pilotta her rolden bir iki sunucuda olaylar toplanır; yaygınlaştırmada GPO veya OSConfig'ten yalnızca biri kullanılır; doğrulama betiği salt okunur komutlarla KONTROL ET satırlarını iş listesine çevirir; izleme aşamasında ASR, LDAP ve NTLM olayları takip edilir ve betik her ay yeniden çalıştırılır. Sorun çıkarsa istisna eklenir veya ayar geri alınıp test sunucusunda yeniden denenir.
Şekil 2. Test, pilot, yaygınlaştırma, doğrulama, izleme ve geri besleme döngüsü.

7. Yedekleme ve kurtarma

  1. Yedeği ve DC'de sistem durumunu alın (Y)

    Neden: sertleştirme fidye yazılımını yavaşlatır, yedek geri getirir; bir kopya değiştirilemez veya çevrim dışı olmalı (3-2-1-1-0). Nasıl: ayrı bir yedek ürünü yoksa Windows Server Yedekleme; DC'de sistem durumu.

    Install-WindowsFeature -Name Windows-Server-Backup
    wbadmin start systemstatebackup -backupTarget:<HEDEF-SURUCU>

    Doğrulama: Get-WBSummary | Select-Object LastSuccessfulBackupTime, LastBackupResultHR ve wbadmin get versions.

  2. BitLocker kurtarma anahtarını AD'ye yedekleyin (O)

    Neden: anahtarı olmayan şifreli disk, kurtarma senaryosunda veri kaybıdır. Nasıl: BitLocker özelliği kuruluysa koruyucu kimliğini alıp AD'ye yazın.

    (Get-BitLockerVolume -MountPoint C:).KeyProtector
    Backup-BitLockerKeyProtector -MountPoint C: -KeyProtectorId '<KORUYUCU-ID>'

    Doğrulama: AD'de bilgisayar nesnesinin altında msFVE-RecoveryInformation nesnesi görünmeli.

  3. AD Geri Dönüşüm Kutusu'nu açın (DC, O)

    Neden: silinen kullanıcı veya OU, yetkili geri yükleme olmadan öznitelikleriyle geri gelir. Nasıl ve doğrulama: EnabledScopes boşsa kapalıdır.

    Get-ADOptionalFeature -Filter "Name -eq 'Recycle Bin Feature'" | Select-Object Name, EnabledScopes
    Enable-ADOptionalFeature -Identity 'Recycle Bin Feature' -Scope ForestOrConfigurationSet -Target '<ORMAN-ADI>'
  4. Geri yükleme testini takvime koyun, WinRE'yi kontrol edin (Y)

    Neden: hiç geri yüklenmemiş yedek bir varsayımdır. Nasıl: ayda bir, izole ağda bir sunucuyu ve DC sistem durumunu geri yükleyin. WinRE'nin reagentc /info ile Enabled olduğunu doğrulayın; kurtarma bölümü sorunları için recovery partition yazısına bakın.

Doğrulama: toplu kontrol betiği

Betik yalnızca Get- komutlarıyla okur, hiçbir ayarı değiştirmez. Yönetici PowerShell'de çalıştırın; KONTROL ET satırları iş listenizdir, BILGI satırları bağlama göre yorumlanır. Dosyaya almak için son satırı Export-Csv ile değiştirin.

# Windows Server 2025 sertleştirme - salt okunur kontrol
$sonuc = [System.Collections.Generic.List[object]]::new()
function Ekle($Alan, $Kontrol, $Deger, $Uygun) {
    $durum = if ($null -eq $Uygun) { 'BILGI' } elseif ($Uygun) { 'OK' } else { 'KONTROL ET' }
    $sonuc.Add([pscustomobject]@{ Alan = $Alan; Kontrol = $Kontrol; Deger = "$Deger"; Durum = $durum })
}
function Oku($Yol, $Ad) {
    try { (Get-ItemProperty -Path $Yol -Name $Ad -ErrorAction Stop).$Ad } catch { $null }
}

$dc = (Get-CimInstance Win32_ComputerSystem).DomainRole -ge 4
$cv = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$sonHotfix = Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 1
Ekle 'Güncelleme' 'Derleme.UBR' "$($cv.CurrentBuild).$($cv.UBR)" $null
Ekle 'Güncelleme' 'Son düzeltme' "$($sonHotfix.HotFixID) $($sonHotfix.InstalledOn)" $null
Ekle 'Rol' 'Etki alanı denetleyicisi' $dc $null

$spooler = Get-Service -Name Spooler
Ekle 'Servis' 'Print Spooler' "$($spooler.Status)/$($spooler.StartType)" ($spooler.StartType -eq 'Disabled')

$smbS = Get-SmbServerConfiguration
$smbC = Get-SmbClientConfiguration
Ekle 'SMB' 'Sunucu imzalama zorunlu' $smbS.RequireSecuritySignature ($smbS.RequireSecuritySignature -eq $true)
Ekle 'SMB' 'İstemci imzalama zorunlu' $smbC.RequireSecuritySignature ($smbC.RequireSecuritySignature -eq $true)
Ekle 'SMB' 'SMBv1 sunucu' $smbS.EnableSMB1Protocol ($smbS.EnableSMB1Protocol -eq $false)
Ekle 'SMB' 'Sunucu geneli şifreleme' $smbS.EncryptData $null
Ekle 'SMB' 'İstemci NTLM engelleme' $smbC.BlockNTLM $null

$lm = Oku 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' 'LmCompatibilityLevel'
Ekle 'Kimlik' 'LmCompatibilityLevel' $lm ($lm -eq 5)
$ppl = Oku 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' 'RunAsPPL'
Ekle 'Kimlik' 'LSA koruması (RunAsPPL)' $ppl ($ppl -in 1, 2)
$dg = Get-CimInstance -Namespace root\Microsoft\Windows\DeviceGuard -ClassName Win32_DeviceGuard -ErrorAction SilentlyContinue
$cg = $dg.SecurityServicesRunning -contains 1
Ekle 'Kimlik' 'Credential Guard çalışıyor' $cg $(if ($dc) { $null } else { $cg })
if ($dc) {
    $ntds = 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters'
    Ekle 'DC' 'LDAPServerIntegrity' (Oku $ntds 'LDAPServerIntegrity') $null
    Ekle 'DC' 'LdapEnforceChannelBinding' (Oku $ntds 'LdapEnforceChannelBinding') $null
}

$ts = Get-CimInstance -Namespace root\cimv2\TerminalServices -ClassName Win32_TSGeneralSetting -Filter "TerminalName='RDP-tcp'" -ErrorAction SilentlyContinue
Ekle 'Ağ' 'RDP NLA' $ts.UserAuthenticationRequired ($ts.UserAuthenticationRequired -eq 1)
$rdpAdres = (Get-NetFirewallRule -Name 'RemoteDesktop-UserMode-In-TCP' -ErrorAction SilentlyContinue | Get-NetFirewallAddressFilter).RemoteAddress -join ','
Ekle 'Ağ' 'RDP kaynak adresi' $rdpAdres ($rdpAdres -and $rdpAdres -ne 'Any')
foreach ($p in Get-NetFirewallProfile) {
    Ekle 'Ağ' "Güvenlik duvarı $($p.Name)" "$($p.Enabled)/$($p.DefaultInboundAction)" ($p.Enabled -eq 'True' -and $p.DefaultInboundAction -ne 'Allow')
}
$llmnr = Oku 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient' 'EnableMulticast'
Ekle 'Ağ' 'LLMNR kapalı' $llmnr ($llmnr -eq 0)
$nb = (Get-CimInstance Win32_NetworkAdapterConfiguration -Filter 'IPEnabled = TRUE').TcpipNetbiosOptions
Ekle 'Ağ' 'NetBIOS seçenekleri' ($nb -join ',') (@($nb | Where-Object { $_ -ne 2 }).Count -eq 0)
$winrm = Get-WSManInstance -ResourceURI winrm/config/listener -Enumerate -ErrorAction SilentlyContinue
Ekle 'Ağ' 'WinRM dinleyicileri' ($winrm.Transport -join ',') $null

$mp = Get-MpComputerStatus -ErrorAction SilentlyContinue
Ekle 'Defender' 'Çalışma modu' $mp.AMRunningMode ($mp.AMRunningMode -eq 'Normal')
Ekle 'Defender' 'Gerçek zamanlı koruma' $mp.RealTimeProtectionEnabled ($mp.RealTimeProtectionEnabled -eq $true)
Ekle 'Defender' 'Tamper Protection' $mp.IsTamperProtected ($mp.IsTamperProtected -eq $true)
Ekle 'Defender' 'İmza yaşı (gün)' $mp.AntivirusSignatureAge ($mp.AntivirusSignatureAge -le 1)
$asr = (Get-MpPreference -ErrorAction SilentlyContinue).AttackSurfaceReductionRules_Actions
Ekle 'Defender' 'ASR Block/Audit kural sayısı' "$(@($asr | Where-Object { $_ -eq 1 }).Count)/$(@($asr | Where-Object { $_ -eq 2 }).Count)" (@($asr).Count -gt 0)

$sbl = Oku 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging' 'EnableScriptBlockLogging'
Ekle 'Günlük' 'Script Block Logging' $sbl ($sbl -eq 1)
$secLog = Get-WinEvent -ListLog Security
Ekle 'Günlük' 'Security günlüğü (MB)' ([math]::Round($secLog.MaximumSizeInBytes / 1MB)) ($secLog.MaximumSizeInBytes -ge 192MB)

$osc = Get-Module -ListAvailable -Name Microsoft.OSConfig | Select-Object -First 1
Ekle 'Yönetim' 'OSConfig modülü' $osc.Version $null
if (Get-Command Get-WBSummary -ErrorAction SilentlyContinue) {
    $wb = Get-WBSummary
    Ekle 'Kurtarma' 'Son başarılı WSB yedeği' $wb.LastSuccessfulBackupTime ($wb.LastSuccessfulBackupTime -gt (Get-Date).AddDays(-2))
}
if (Get-Command Get-BitLockerVolume -ErrorAction SilentlyContinue) {
    $bl = Get-BitLockerVolume -MountPoint $env:SystemDrive
    Ekle 'Kurtarma' 'BitLocker sistem sürücüsü' $bl.ProtectionStatus $null
}

$sonuc | Sort-Object Durum, Alan | Format-Table -AutoSize -Wrap

Özet tablo

Değişiklik kaydına veya denetim dosyasına kopyalamak için tek sayfalık özet. Komut sütunu doğrulama komutudur.

#MaddeÖncelikDoğrulama komutu
1GüncellemelerYGet-HotFix
2Gereksiz rol ve SpoolerYGet-Service Spooler
3Windows LAPS, RID 500YGet-LapsADPassword
4SMB sunucu imzalamaYGet-SmbServerConfiguration
5SMB şifrelemeOGet-SmbShare
6NTLM denetim ve kısıtlamaY / OGet-WinEvent -LogName Microsoft-Windows-NTLM/Operational
7LDAP imzalama ve CBT (DC)YGet-WinEvent -LogName 'Directory Service'
8Credential GuardYGet-CimInstance Win32_DeviceGuard
9LSA korumasıYWininit olay 12
10RDP NLAYGet-CimInstance Win32_TSGeneralSetting
11RDP kapsamıYGet-NetFirewallAddressFilter
12Güvenlik duvarı profilleriYGet-NetFirewallProfile
13SMBv1 yokYGet-WindowsFeature FS-SMB1
14LLMNR ve NetBIOSOGet-CimInstance Win32_NetworkAdapterConfiguration
15WinRM HTTPSOGet-WSManInstance
16Defender aktif ve güncelYGet-MpComputerStatus
17ASR alt kümesiOGet-MpPreference
18Tamper ProtectionOGet-MpComputerStatus
19Gelişmiş denetim ilkesiYauditpol /get /category:*
20Script Block LoggingYolay 4104
21Günlük boyutlarıOGet-WinEvent -ListLog Security
22OSConfig temel çizgisiOGet-OSConfigDesiredConfiguration
23HotpatchDAzure Update Manager
24Yedek ve sistem durumuYGet-WBSummary
25BitLocker anahtarıOGet-BitLockerVolume
26AD Geri Dönüşüm Kutusu (DC)OGet-ADOptionalFeature
27Geri yükleme testi, WinREYreagentc /info

Sık yapılan hatalar

  • SMB imzalamayı zorlayıp eski NAS'ı unutmak. Yedekleme hedefi veya tarayıcı paylaşımı STATUS_INVALID_SIGNATURE ile düşer. Önce SMBServer/Audit günlüğünü izleyin, cihazları güncelleyin, sonra zorlayın.
  • NTLM'i denetimsiz kapatmak. IP adresiyle bağlanan betikler, SPN'i eksik servis hesapları ve etki alanı dışı cihazlar NTLM'e düşer. NTLM/Operational günlüğü boşalmadan engellemeyin; kalanları istisna listesine yazıp sahiplerine tarih verin.
  • ASR'yi doğrudan Block'a almak. PsExec/WMI kuralı Configuration Manager'ı ve uzaktan yönetim betiklerini durdurabilir. 1122 olaylarını inceleyip dışlamaları kural bazında ekleyin.
  • Aynı ayarı GPO ve OSConfig'le yönetmek. Sapma denetimi GPO'nun yazdığını geri alır, GPO yenilemesi tekrar yazar. Bir kaynak seçin.

Kaynaklar

Sık sorulan sorular

Windows Server 2025'te SMB imzalama varsayılan olarak açık mı?

Yarı yarıya. Microsoft'un belgesine göre Windows Server 2025 giden (istemci) SMB imzalamayı zorunlu tutar, gelen (sunucu) tarafını zorunlu tutmaz. Dosya sunucusu olarak çalışan bir 2025 sunucusunda sunucu tarafı imzalamayı siz açmalısınız; Windows 11 24H2 Enterprise ve Pro ise iki yönü de zorunlu tutar.

OSConfig temel çizgisi ile Microsoft Security Baseline GPO'su aynı şey mi?

Amaç aynı, dağıtım yolu farklı. Security Compliance Toolkit'teki temel çizgi GPO olarak içe aktarılır; OSConfig ise ayarları sunucuda yerel olarak uygular ve sapma denetimiyle (drift control) geri döndürür. Aynı ayarı ikisinden birden yönetirseniz ayarlar sürekli el değiştirir; birini seçin.

Credential Guard'ı etki alanı denetleyicisinde açmalı mıyım?

Hayır. Microsoft'a göre Credential Guard etki alanı denetleyicisine ek güvenlik sağlamaz ve uyumluluk sorunu çıkarabilir; Windows Server 2025 de onu yalnızca etki alanına katılmış, DC olmayan sunucularda varsayılan olarak açar. DC'de LSA koruması ve sıkı yönetim katmanı (tier 0) ayrımı daha anlamlıdır.

Windows LAPS için ayrı bir yazılım kurmam gerekir mi?

Hayır. Windows LAPS, Windows Server 2025'e yerleşik gelir; eski Microsoft LAPS MSI paketine gerek yoktur. Ormanda bir kez `Update-LapsADSchema` çalıştırır, OU'ya izin verir ve GPO ile yedekleme dizinini Active Directory olarak ayarlarsınız.

ASR kurallarını doğrudan Block modunda açabilir miyim?

Sunucuda önermem. Kuralları önce Audit modunda açıp Defender olay günlüğündeki 1122 kayıtlarını birkaç hafta izleyin; yanlış pozitifleri dışlama ile çözdükten sonra Block'a geçin. Özellikle PsExec/WMI kuralı Configuration Manager istemcisiyle çakışır.

TH
Tolga Hatipoğlu

Sistem Yöneticisi. Sanallaştırma ve depolama altyapıları kuruyor, yönetiyor ve burada belgeliyor. Yazıdaki bir bilgi eskidiyse düzeltme önerin.