Windows LAPS ile Yerel Admin Parolalarını Yönetmek
Windows'a yerleşik gelen Windows LAPS ile her bilgisayara benzersiz ve otomatik değişen yerel admin parolası veriyoruz. Şema güncellemesi, OU izinleri, GPO ayarları ve parola okuma adımları.
Birçok şirkette tüm bilgisayarlar aynı imajdan kurulur ve yerel Administrator parolası her makinede aynıdır. Saldırgan bu parolayı tek bir bilgisayardan ele geçirdiğinde, aynı hash ile ağdaki tüm bilgisayarlara yayılabilir. Windows LAPS (Local Administrator Password Solution) her bilgisayara benzersiz, rastgele ve düzenli değişen bir yerel admin parolası verir ve bu parolayı Active Directory'de güvenle saklar. Bu yazıda firma.local domain'inde Windows LAPS'ı baştan sona yapılandıracağız.
Windows LAPS ve Eski LAPS
Eskiden LAPS ayrı bir MSI paketi olarak her bilgisayara kurulurdu. Nisan 2023 güncellemeleriyle birlikte Windows LAPS işletim sistemine yerleşik geldi:
- Desteklenen sürümler: Windows 10, Windows 11, Windows Server 2019 ve sonrası (güncel yamalarla). Windows Server 2025'te kutudan çıkar.
- Ek kurulum yoktur: İstemcilere MSI veya client-side extension dağıtmanız gerekmez.
- Yeni özellikler: Parola şifreleme, parola geçmişi, DSRM parolası yedekleme ve kullanım sonrası otomatik parola yenileme gelir.
- PowerShell modülü: Tüm yönetim
LAPSmodülündeki cmdlet'lerle yapılır.
Ortamınızda eski LAPS hâlâ kuruluysa, ikisinin aynı yerel hesabı yönetmesine izin vermeyin. Windows LAPS'ı yeni GPO ile yapılandırdığınızda eski LAPS ayarlarını kaldırıp MSI'ı aşamalı olarak sökün.
AD Şemasını Güncellemek
Windows LAPS, parolaları saklamak için bilgisayar nesnelerine yeni öznitelikler ekler (msLAPS-Password, msLAPS-EncryptedPassword, msLAPS-PasswordExpirationTime gibi). Şemayı güncellemek için Schema Admins grubundaki bir hesapla DC01 üzerinde:
Import-Module LAPS
Update-LapsADSchema -Verbose
Komut eklenen her özniteliği listeler. Şema değişikliği forest genelinde geri alınamaz, ancak mevcut hiçbir şeyi bozmaz. Replikasyonun tamamlandığını doğrulayın:
repadmin /syncall DC01 /AdeP
OU İzinlerini Vermek
Bilgisayarların kendi parolalarını AD'ye yazabilmesi için bilgisayarların bulunduğu OU'ya izin vermeniz gerekir:
Set-LapsADComputerSelfPermission -Identity "OU=Bilgisayarlar,OU=Firma,DC=firma,DC=local"
Set-LapsADComputerSelfPermission -Identity "OU=Sunucular,OU=Firma,DC=firma,DC=local"
Varsayılan olarak parolayı yalnızca Domain Admins okuyabilir. Yardım masası ekibinin istemci parolalarını okuyabilmesi ve süresini sıfırlayabilmesi için:
Set-LapsADReadPasswordPermission -Identity "OU=Bilgisayarlar,OU=Firma,DC=firma,DC=local" `
-AllowedPrincipals "FIRMA\GG-Helpdesk"
Set-LapsADResetPasswordPermission -Identity "OU=Bilgisayarlar,OU=Firma,DC=firma,DC=local" `
-AllowedPrincipals "FIRMA\GG-Helpdesk"
Sunucular OU'sunda bu izni Helpdesk'e vermeyin; sunucu parolalarını yalnızca sunucu yöneticileri görmelidir. Bir OU üzerinde parolayı kimlerin okuyabildiğini denetlemek için:
Find-LapsADExtendedRights -Identity "OU=Bilgisayarlar,OU=Firma,DC=firma,DC=local"
Central Store'u Güncellemek
GPO yazısında PolicyDefinitions klasörünü SYSVOL'e kopyalayarak Central Store oluşturmuştuk. Bu klasör LAPS öncesine aitse GPMC'de LAPS ayarlarını göremezsiniz. Güncel bir sunucudan LAPS.admx ve dil dosyasını kopyalayın:
$store = "\\firma.local\SYSVOL\firma.local\Policies\PolicyDefinitions"
Copy-Item "C:\Windows\PolicyDefinitions\LAPS.admx" -Destination $store
Copy-Item "C:\Windows\PolicyDefinitions\en-US\LAPS.adml" -Destination "$store\en-US"
GPO ile LAPS'ı Yapılandırmak
Yeni bir GPO oluşturup Bilgisayarlar OU'suna bağlayalım:
New-GPO -Name "BLG-LAPS" -Comment "Windows LAPS ayarlari"
New-GPLink -Name "BLG-LAPS" -Target "OU=Bilgisayarlar,OU=Firma,DC=firma,DC=local" -LinkEnabled Yes
GPO'yu düzenleyip şu yola gidin:
Computer Configuration > Policies > Administrative Templates > System > LAPS
Önerilen başlangıç ayarları:
- Configure password backup directory: Enabled, Active Directory seçin. Bu ayar olmadan LAPS hiçbir şey yapmaz.
- Password Settings: Complexity için büyük/küçük harf, rakam ve özel karakter; uzunluk 15; yaş 30 gün.
- Name of administrator account to manage: Yerleşik
Administratoryerine özel bir hesap kullanıyorsanız adını yazın. Yerleşik hesap için boş bırakın; LAPS hesabı SID üzerinden bulur. - Enable password encryption: Enabled. Parola AD'de şifreli saklanır ve yalnızca yetkili gruplar çözebilir. Domain functional level en az Windows Server 2016 olmalıdır.
- Configure size of encrypted password history: 6 gibi bir değer verin; eski parolalara da ihtiyaç duyabilirsiniz.
- Post-authentication actions: Grace period 8 saat, eylem olarak Reset the password and logoff the managed account. Parola biri tarafından kullanıldıktan sonra otomatik yenilenir.
Şifreleme açıkken parolayı çözebilecek grubu Configure authorized password decryptors ayarıyla belirleyebilirsiniz. Boş bırakırsanız yalnızca Domain Admins çözebilir; Helpdesk'in okuyabilmesi için bu ayara FIRMA\GG-Helpdesk yazın. Buraya yazdığınız grup gerçekten var olmalıdır; çözümlenemeyen bir ad girerseniz politika işlenemez ve parolalar AD'ye yedeklenmez.
İstemcide Test
PC01 üzerinde politikayı alıp LAPS işlemini hemen tetikleyin:
gpupdate /force
Invoke-LapsPolicyProcessing
Get-WinEvent -LogName "Microsoft-Windows-LAPS/Operational" -MaxEvents 10 |
Select-Object TimeCreated, Id, Message
Günlükte parolanın başarıyla güncellendiğini ve AD'ye yazıldığını gösteren olaylar görmelisiniz.
Parolayı Okumak ve Yenilemek
Yönetim sunucusunda parolayı okumak için:
Get-LapsADPassword -Identity "PC01" -AsPlainText
Çıktıda Account, Password, PasswordUpdateTime ve ExpirationTimestamp alanlarını görürsünüz. Parola geçmişini de listelemek için -IncludeHistory ekleyin. Aynı bilgiye Active Directory Users and Computers içinde bilgisayarın özelliklerindeki LAPS sekmesinden de ulaşabilirsiniz.
Parolayı bir teknisyenle paylaştıysanız, süresini hemen dolmuş olarak işaretleyin. Bilgisayar bir sonraki politika işlemesinde yeni parola üretir:
Set-LapsADPasswordExpirationTime -Identity "PC01"
Bilgisayarın başındaysanız parolayı anında yenileyebilirsiniz:
Reset-LapsPassword
Tüm Bilgisayarlar OU'sunda parolası henüz AD'ye yazılmamış makineleri bulmak için:
Get-ADComputer -SearchBase "OU=Bilgisayarlar,OU=Firma,DC=firma,DC=local" -Filter * `
-Properties msLAPS-PasswordExpirationTime |
Where-Object { -not $_."msLAPS-PasswordExpirationTime" } |
Select-Object Name
Sık Karşılaşılan Hatalar
- Backup directory ayarını unutmak: Varsayılan değer "Disabled"dır ve LAPS hiçbir şey yapmaz. Configure password backup directory ayarını mutlaka Active Directory yapın.
- Self permission vermemek: Bilgisayar parolayı AD'ye yazamaz ve LAPS günlüğünde erişim hatası görünür.
Set-LapsADComputerSelfPermissionkomutunu doğru OU için çalıştırın. - GPMC'de LAPS klasörünü görememek: Central Store eski ADMX dosyalarını içerir.
LAPS.admxveLAPS.admldosyalarını kopyalayın. - Helpdesk'in parolayı görememesi: Şifreleme açıkken okuma izni yetmez; grubu authorized password decryptors ayarına da ekleyin.
- Eski LAPS ile çakışma: İki çözüm aynı hesabı yönetirse parolalar birbirini ezer. Geçiş sırasında farklı OU'lar veya farklı hesaplar kullanın.
- Domain Controller'larda yerel hesap beklemek: DC'lerde yerel hesap yoktur; LAPS DC'lerde yalnızca DSRM parolasını yedekleyebilir. Bu ayar ayrı bir GPO ile yapılmalıdır.
Bir sonraki yazıda Fine-Grained Password Policy ile farklı gruplara farklı parola kuralları uygulayacağız.