Local Admin Password Management – Lokal Yönetici Şifrelerinin Farklı Olarak Ayarlanması – Local Administrator Password Solution LAPS

Kurumsal şirket organizasyonlarında veri güvenliği son derece önemli bir başlık olduğu için bu alanda pek çok iyileştirme ve alt yapı yatırımı yapılmaktadır. Günün sonunda verilerin erişilebilirliği kadar güvenliği de önemlidir.

Güvenlik denince tabiki gerek fiziksel gerekse verilerin güvenliği söz konusudur ve geniş bir kapsamı vardır. Ben ise bu noktada pek çok sistem yöneticisinin yaşadığı bir soruna çözüm üretecek olan LAPS aracını anlatmak istiyorum.

Öncelikle sorun nedir? Domain ortamındaki bilgisayarların yerel kullanıcı şifreleri ( Local Admnistrator ) aynıdır, bunun en temel sebebi uygulamasının kolay oluşudur. GPO üzerinden, SCCM veya benzeri ürünlerden olsun genellikle tek bir şifre tüm bilgisayarların yerel kullanıcılarına atanmaktadır. Tabiki böyle bir durumda yerel admin şifresinin birinin çalınması durumunda tüm domaindeki bilgisayarlar güvensiz bir duruma düşecektir. Olası bir komut seti ile bu şifre belirli aralıklar ile değiştirilse bile sonuçta blok halinde tüm bilgisayarlar için değiştirilmekte ve güvenlik zafiyeti devam etmektedir. Buna ek olarak sürekli olarak değiştirilen bu şifrelere erişmek isteyen kullanıcı destek personel içinde bu ayrı bir sorundur.

Peki, LAPS ne sağlıyor? Tüm makinelerin lokal admin şifrelerinin rastgele atanması ve ihtiyaç duyan kullanıcı veya gruplara yetki verilmesi durumunda erişilmesini sağlıyor.

Aracı indirmek için aşağıdaki linki kullanabilirsiniz

https://www.microsoft.com/en-us/download/details.aspx?id=46899

Tememl olarak LAPS, domain içerisindeki makinelerdeki yerel yönetici hesaplarının şifrelerini rastgele atar, değiştirir ve bunu merkezi olarak Active Directory üzerinde saklar.

Her makine için şifre bilgisi makinenin bilgisayar hesabı üzerindeki özel bir öz nitelik ( attribute ) içerisinde tutulur ve siz bu öz niteliği kimlerin okuyacağına karar verebilirsiniz.

Bu araç Active Directory alt yapısını kullanır ve ek bir programa ihtiyaç duymaz.

Burada hemen önemli bir bilgi vermek istiyorum LAPS ismi “administrator” olmayan yani ismi değiştirilmiş olan hesaplar içinde destek sunmaktadır.

Şifreler Kerberos version 5 protocol ve Advanced Encryption Standard (AES) sayesinde güvenli bir şekilde saklanır.

LAPS, temel olarak GPO ile çalışır. Aslında bir client-side extension (CSE)’ dır.

İstemci makinede GPO yüklenir veya uygulanırken aşağıdaki işlemler gerçekleştirilir

Administrator şifresinin süresinin dolup dolmadığını kontrol eder

Eğer eski şifre için süre dolmuş ise yeni bir şifre üretir.

Yeni şifrenin şifre politikası ile uyumlu olmasını sağlar.

Yeni şifrenin AD üzerinde bilgisayar hesabının ilgili özniteliğinde saklanmasını sağlar

Bu şifre için bir sonraki şifre değiştirme süresinin de yine AD içerisindeki bilgisayar hesabında özniteliğe yazılmasını sağlar.

Administrator hesabının şifresini değiştirir. ( üretilen şifre atanır )

Peki, ne tür seçeneklerimiz var?

Şifre uzunluğu, yaşı ve kompleks olup olmayacağını ayarlayabilirsiniz.

Makine bazlı şifre resetlemeyi zorlayabilirsiniz.

Şifrenin saklandığı bölümde ACL yardımı ile istediğiniz kişi veya gruplara okuma izni verebilirsiniz.

PowerShell Desteği

Bilgisayar hesabının silinmesine karşı koruma sağlar

Düşük bir efor ile yaygınlaştırma yapabilirsiniz.

Gelelim şimdi ürünün dağıtımına

Bir yönetim makinemiz ve yönetilen istemci bilgisayarlarımız olacaktır. Öncelikle yönetim yapacağımız bilgisayarda kurulumu gerçekleştirelim.

LAPS.x64 veya size uygun olan msi sürümünü çalıştırın.

 Yönetim makinemiz olduğu için CSE dışındaki tüm yüklemeleri yapıyoruz ( özellikle ilk yönetim makinemiz olduğu için)

Basit bir kurulum olduğu için hızlıca işlemi tamamlıyoruz.

Bu yüklemeden sonra aşağıdaki dizinlerde ilgili klasör ve dosyaları göreceksiniz

Fat client UI yüklerseniz eğer aşağıdaki dizinde ilgili dosyaları göreceksiniz.

%ProgramFiles%\LAPS

AdmPwd.UI.exe
AdmPwd.Utils.config
AdmPwd.Utils.dll

PowerShell module yüklerseniz aşağıdaki dizinde ilgili dosyaları göreceksiniz

%WINDIR%\System32\WindowsPowerShell\v1.0\Modules\AdmPwd.PS

AdmPwd.PS.dll
AdmPwd.PS.format.ps1xml
AdmPwd.PS.psd1
AdmPwd.Utils.config
AdmPwd.Utils.dll

%WINDIR%\System32\WindowsPowerShell\v1.0\Modules\AdmPwd.PS\en-us

AdmPwd.PS.dll-Help.xml

Group Policy files yüklemesini yaparsanız ki DC üzerinde bunu yapıyoruz aşağıdaki dizinde ilgili doyaları görebilirsiniz

%WINDIR%\PolicyDefinitions

AdmPwd.admx

%WINDIR%\PolicyDefinitions\en-US

AdmPwd.adml

Bu adımlar ile yönetim tarafındaki yüklemeleri tamamlamış olduk.

İstemci tarafında da yani yöneteceğiniz makinelere yükleme yapıyoruz.

Yüklemeler aynı msi dosyası ile aşağıdaki gibi yapılabilir

msiexec /i <file location>\LAPS.x64.msi /quiet

veya 

msiexec /i <file location>\LAPS.x86.msi /quiet

Örneğin

msiexec /i \\server\share\LAPS.x64.msi /quiet

Tabiki SCCM ile de yükleme yapabilirsiniz.

Yükleme sonrasında aşağıdaki gibi yüklenmiş programların arasında görebilirsiniz

Eğer msi yüklemesi yapmak istemiyorsanız tek yapmanız gereken AdmPwd.dll dosyasını istemci makinelere kopyalamak ve sonra register etmek

Ancak bu işlem ile yaptığınız yüklemede program ekle kaldır menüsünde görünmemesi normaldir.

Yukarıdaki komut ile yapılan temel yüklemede gördüğünüz gibi sadece cse yüklenir

Bunu da aşağıdaki dizinden kontrol edebiliriz

%ProgramFiles%\LAPS\CSE

AdmPwd.dll

Temel kurulumlar hazırlandı, şimdi AD Schema tarafında yeni iki öz nitelik için ekleme yapalım

ms-Mcs-AdmPwd – Şifreleri saklamak için kullanılan attribute

ms-Mcs-AdmPwdExpirationTime – Şifrelerin resetlenmesi gereken zamanı tutan attribute

Bu iki öz niteliği eklemek için PS kullanıyoruz.

Import-module AdmPwd.PS

Update-AdmPwdADSchema

Eğer ortamınızda RODC var ise bu durumda bu ilgili değişikliklerin de RODC ye replike edilmesi gerekli. Bunun için aşağıdaki makaleyi inceleyebilirsiniz

https://technet.microsoft.com/en-us/library/cc754794(v=WS.10).aspx

Bu değişiklikten sonra ise sıra ilgili öz niteliklerin herkes tarafından görüntülenmesini engellemek olacaktır.

Bunun için öncelikle bu çözümü uygulamak adına bir OU oluşturuyoruz ve bilgisayar hesaplarını bu OU ya atıyoruz. Daha sonra ise bu OU için adsiedit.msc arası ile ACL değişikliği yapıyoruz.

Benim açtığım OU ismi PCs ve onu adsiedit üzerinden bulup özelliklerden güvenlik sekmesine geliyorum

Daha sonra Advanced bölümüne giriyorum

 

Bu bölümde şifreleri “görmesini istemediğiniz” kullanıcı veya grup’ u seçiyoruz sonra ise Edit butonuna tıklıyoruz.

Not: Böyle bir grup yok ise seçmenize gerek yoktur, ancak elle bir takım izinler bazı yapılarda domain seviyesinden verildiği için bu yeni açtığınız OU veya mevcut OU’ lar için bu şifrelerin tutulduğu bölüm istemediğiniz kullanıcı veya gruplar tarafından görünebilir.

Karşımıza çıkan yukarıdaki menüden “All extend Rights” kutucuğunu siliyoruz.

Bu kısımda aslında çok kafa yormanıza gerek yok, ilgili OU için kimlerin bu hakka sahip olduğunu aşağıdaki gibi power Shell ile görebilirsiniz

Find-AdmPwdExtendedRights –Identity “PCs” | Format-Table

Gördüğünüz gibi Domain Admins dışında zaten bu yetkiye sahip kimse yok, yani ek bir ayara gerek yok, ama olması durumunda bu ayarları biliyor olmanız gerekli.

Şimdi ise bu OU için bilgisayarların ilgili öz niteliklere yazma yetkisi vermemiz lazım (ms-Mcs-AdmPwdExpirationTime ve ms-Mcs-AdmPwd)

Import-module AdmPwd.PS

Set-AdmPwdComputerSelfPermission -OrgUnit <name of the OU to delegate permissions>

Örnek

Set-AdmPwdComputerSelfPermission -OrgUnit PCs

Not: Eğer aynı isimli OU’ lar var ise bu durumda DN kullanmanız gerekli. DN yazarken mutlaka tırnak içerisine almayı unutmayın.

Eğer başka OU larınız var ise diğerleri içinde bu komutu çalıştırmanız gereklidir.

Şimdi ise mevcut şifreleri sadece Domain Admisn grubu üyesi kullanıcılar gördüğü için buna ek olarak örneğin HelpDesk gibi bir gruba bu yetkiyi vermeliyiz.

Import-module AdmPwd

Set-AdmPwdReadPasswordPermission -OrgUnit <name of the OU to delegate permissions> -AllowedPrincipals <users or groups>

Örneğin

Set-AdmPwdReadPasswordPermission -OrgUnit PCs -AllowedPrincipals HelpDesks

Eğer birden çok gruba veya kullanıcıya izin vermek istiyorsanız aşağıdaki gibi bir formatta komutu yazabilirsiniz

Set-AdmPwdReadPasswordPermission -OrgUnit PCs -AllowedPrincipals cozumpark\Administrator,cozumpatk\HelpDesk,cozumpark\PwdAdmins

İlgili kullanıcılara şifreyi görme yetkisi yanında birde şifreyi resetleme yetkisi vermek istiyorsanız aşağıdaki komutu kullanabilirsiniz

Set-AdmPwdResetPasswordPermission -OrgUnit <name of the OU to delegate permissions> -AllowedPrincipals <users or groups>

Örnek

Set-AdmPwdResetPasswordPermission -OrgUnit PCs -AllowedPrincipals cozumpark\Administrator,cozumpark\HelpDesks

Sıra geldi ayarları yapmaya, bunun için GPO üzerinde çalışacağız.

Yeni bir GPO oluşturup ilgili OU ya bağlıyorum ve aşağıdaki dizine gidiyorum

Computer Configuration\Administrative Templates\LAPS

Öncelikle Local Admin şifre yönetimin açıyoruz

Bu sayede varsayılan olarak kompleks, 14 karakter ve 30 günlük şifre ataması yapılır. Ama isterseniz bu ayarları aşağıdaki gibi değiştirebilirsiniz.

Eğer farklı lokal admin hesaplarını da yönetmek istiyorsanız buraya ismini yazabilirsiniz. Varsayılan olarak gelen admin hesabı bilinen SID numaralarından otomatik olarak tespit edildiği için onu düşünmenize gerek yoktur ( hatta ismini değiştirmiş olasınıza bile )

Son olarak,

Eğer Password Policy de tanımlı olan şifrelerden daha uzun şifre tanımlanmasına izin vermeyecekseniz bu ayarı “Enable” konumuna getirmeniz gerekli.

Peki bu kadar zahmetten sonra sistemi kontrol edelim.

GPO dağıttık makineleri restart ettik şimdi lokal admin şifrelerini ve expire zamanını nasıl göreceğiz, aslında kolay bir yolu var ama önce zor olan yöntemi paylaşalım J

Gördüğünüz gibi dsa.msc üzerinden ilgili makineyi bulup öz niteliklere bakabiliriz. Şifre açık olarak görülmektedir, zaman ise aşağıdaki gibi net görülebilir

Ya da grafik ara yüzü kullanabiliriz

C:\Program Files\LAPS\AdmPwd.UI.exe

Makine ismini yazmanız veya aramanız yeterli olacaktır.

Veya bir diğer yöntem ise PS

Get-AdmPwdPassword -ComputerName <computername>

Eğer yetkisiz bir kullanıcı bu aracı çalıştırır ise aşağıdaki gibi şifre bölümü gelmez

Bu araç ile istediğimiz tarihi bir sonraki expire tarihi olarak seçip Set düğmesine basarsak şifreyi de resetlemiş oluruz. Client makine GPO yu ilk tazelediğinde şifre resetlenir.

Yada yine klasör PS J

Reset-AdmPwdPassword -ComputerName <computername> -WhenEffective <date time>

Sorun Çözümü

Peki böyle bir aracı büyük bir organizasyonda kullanıyorsanız bir takım istemciler için sorun çözme adımlarına da hakim olmanız gerekli. İlk olarak GPO tarafında CSE’ ları takip etmek için olay günlüklerinden “Application” başlığını kontrol etmeniz gerekli. Ancak burada her zaman anlaşılır şeyler bulamayabilirsiniz. Bu durumda loglarin detay seviyesini değiştirmek için aşağıdaki değişikliği yapabilirsiniz.

Kayıt defterinde

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\{D76B9641-3288-4f75-942D-087DE603E3EA}}\ExtensionDebugLevel

Varsayılan olarak yoktur, DWORD 32Bit olarak eklemeniz gerekli. Değerleri ise

0 – Hata olmadıkça log üretmez

1 – Sadece hata logları üretir

2 – Herşeyi loglar

Ben 2 yaptım ve DC üzerinden ara yüz yardımı ile şifre resetledim, loglar aşağıdaki gibidir

Evet, bu makalemin de sonuna geldim, umarım faydalı bir makale olmuştur. Bir sonraki makalemde görüşmek üzere esen kalın.

Kaynak: LAPS OperationsGuide Dokumanı

Exit mobile version