Windows Server 2008 ile birlikte gelen farklı kullanıcı gruplarına farklı Password Policy’lerin yaratılabilmesi ile ilgili daha öncesinde birçok makale yazıldı çizildi fakat password policy template’larinin Ldifde.exe kullanarak nasıl yaratılabileceği ile ilgili bilgiye ulaşmak zor olabilir. Bu makalemde password policy’lerin Ldifde.exe kullanarak nasıl oluşturulacağına değineceğiz.
1. Bu işlem için bir metin dosyası oluşturup uzantısı ldf olacak şekilde düzenleyelim. ( Örnek olarak MuhPSO.ldf ) içeriğine ADSI Edit Tool ile yapılandırmada anlattığım değerleri aşağıdaki formatta girelim.
Şekil-1
Bu dosyanın içindeki değerlerin açıklaması aşağıdaki gibidir.
- msDS-PasswordSettingsPrecedence
Bu değer sıfırdan büyük olmak zorundadır. Eğer birden fazla PSOs iniz var ise en düşük priority değeri olan PSO’nun önceliği olmaktadır.
- msDS-PasswordReversibleEncryptionEnabled
Bu değer Kullanıcı Hesapları için dönüştürülebilir encryption şifresi durumunu bknz. İçerir.Genelde uygulanması önerilmeyen bir uygulamadır.Bu değer kullanılacaksa TRUE kullanılmayacak ise FALSE değeri kullanılmalıdır.
- msDS-PasswordHistoryLength
Bu değer kullanıcının daha önce kullanmış olduğu passwordlerden kaçıncıya kadar olanları kullanamayacağını belirtir.Örnek olarak 3 yazarsanız en son kullanılan 3 şifre kullanılamayacaktır.Bu değer için 0-1024 arası bir değer girilebilir.
- msDS-PasswordComplexityEnabled
Bu değer Password Complexity kullanılıp kullanılmayacağını belirtir.Eğer Password Complexity kullanılacak ise TRUE kullanılmayacak ise FALSE değeri girilmelidir.
Password Complexity için şifrenin;
- Password en az 8 karakter uzunluğunda olmalıdır.
- Password izleyen beş karakter kategorisinden en az üçünü içermelidir.
a- İngilizce büyük harf karakterleri (A – Z)
b- İngilizce küçük harf karakterleri (a – z)
c- (0 – 9) arası temel rakamlar
d- Alfa-numerik olmayan karakterler (örneğin: !, $, #, or %)
e- Unicode karakterler bknz. ( http://en.wikipedia.org/wiki/List_of_Unicode_characters )
- Password, kullanıcı hesabının üç ya da daha fazla karakterini içermemelidir.
- msDS-MinimumPasswordLength
Bu değer Password’un en az kaç karakter olabileceğini belirtir 0 – 255 karakter arası girilebilir.
- msDS-MinimumPasswordAge
Bu güvenlik ayarı Passwordun değiştirilmeden önce kullanıcı tarafından ne kadar zaman periyodunda ( Gün olarak ) kullanılması gerekliliğini belirtir.Bu değeri 1 ile 998 arasında belirleyebilirsiniz ya da hemen değişimin sağlanabilmesi için 0 olarak verebilirsiniz. minimum password age, Maximum password age’den daha az olmak zorundadır. Bknz.
Tabi attribute’da bu günlük değeri arayüze göre uygulamak biraz daha zahmetli bir uygulama. Bir gündeki saniye süresi hesaplanarak girilmelidir. Bknz. Bu hesabı -24*60*60*(10^7) = -864000000000 olarak hesaplayabilirsiniz. Bu da -24*60*60 = -86400 yapar *(10^7) içinde 7 sıfır koymak gerekir ve bu da -864000000000 yapar.
- msDS-MaximumPasswordAge
Bu güvenlik ayarı; kullanıcının Password’unun ne zaman süresinin dolacağını bir zaman periyodunda ( Gün Olarak ) belirtir.Bu değer 1 ile 999 arasında kullanılabilir.Eğer değer verisi 0 olarak ayarlanır ise bu Password’un süresiz olacağını yani expire olmayacağını belirtir. Bknz. Buradaki süreyi hesaplama aynı “msDS-MinimumPasswordAge” değerinde olduğu gibidir.
- msDS-LockoutThreshold
Bu değer kaç kez yanlış password girişinde kullanıcı hesabının kilitleneceğini belirtir.Bu değer 0 ile 65535 arasında verilebilir.
- msDS-LockoutObservationWindow
Bu değer arayüzdeki “Reset account lockout counter after” değeri ile aynıdır.Bu değer başarısız bir logon denemesi olduğuktan sonra başarısız logon denemeleri sayan sayacın sıfırlanması için geçecek süreyi belirtir. 1 ila 99,999 dakika belirtilebilir fakat bu değer tanımlanmış ise “msDS-LockoutDuration” değeri ile aynı ya da ondan daha az olmalıdır. Örnek olarak bu değerin 20 dakikada sıfırlanmasını istiyorsanız bu durumda -20*60*(10^7)=-12000000000 olarak girmelisiniz.
- msDS-LockoutDuration
“msDS-LockoutThreshold” değerinde belirtilen adet kadar yanlış şifre girildiğinde hesabın ne kadar süre ile kilitli kalacağını belirtir. Örnek olarak bu değerin 20 dakikada sıfırlanmasını istiyorsanız bu durumda -20*60*(10^7)=-12000000000 olarak girmelisiniz.
- msDS-PSOAppliesTo
Bu attribute’de hazırlanılan objenin hangi kullanıcı ya da Global Security Gruba linkleneceği diğer bir deyişle hangi kullanıcı ya da Global Security Gruba uygulanacağını belirtir. Örnek olarak orkuntest.local domaininde ,Management Organizational Unitinde olan Deniz isimli kullanıcımıza bu değeri atamak ister isek o zaman şu şekilde belirtmemiz gerekecektir.
“CN=Muh1,OU=Muhasebe,DC=orkuntest,DC=local”
Dosyanızı hazırladıktan sonra c:\ altına yada kendi belirlediğiniz lokasyona kayıt edin.
Aşağıda gördüğünüz gibi şu an için sadece 2 PSO var ve benim uygulayacağım ldifde komutu sonrası burada MuhasebeTestPSO adında bir PSO daha oluşacak.
Şekil-2
PSOs oluşturmak için Ldifde aracını kullandığımızda, zaman ile ilgili PSO değerleri ( msDS-MaximumPasswordAge, msDS-MinimumPasswordAge, msDS-LockoutObservationWindow, ve msDS-LockoutDuration ) I8 formatında girmeliyiz.I8 formatı ile ilgili ayrıntılı bilgiyi PSO Attribute Constraints linkinden edinebilirsiniz. Ben bu bilgiyi msDS-MinimumPasswordAge değerinin ne olduğunu aktarırken açıkladım.
2. Komut satırını açın ve komut satırından dosyanın bulunduğu lokasyona ulaşıp aşağıdaki komutu çalıştırın.
ldifde –i –f MuhPSO.ldf
Komut sonrası başarılı olduğuna dair bir uyarı almalısınız.
Şekil-3
Bu komutun parametrelerini aşağıdaki çizelgeden görebiliriz.
Parametre | Açıklama |
ldifde | LDIF dosya standardı tabanında Batch dosyası çalışmasını destekleyen utility’i belirtir. |
-f | Import Mod’unun açık olduğunu belirler. |
-i | Oluşturulan dosya ismini belirler. |
Artık oluşturulmuş PSO (Örneğimizde MuhasebeTestPSO )ADSI Edit ya da Active Directory Users and Computers’dan görüntülenebilir.
Şekil-4
Şekil-5
Şekil-6
3. Eğer ldifde aracı ile oluşturulmuş PSO üzerinde değişiklik yapmak istersek;
Şekil-7
4. Değişiklikleri içeren komutların yeraldığı bir dosya hazırlayalım. Ben MuhasebeTestPSO sunu Yukarıda bulunan şekilde gördüğünüz Muh2 ve Muh3 kullanıcılarına uygulanacak şekilde düzenlemek istiyorum. Bu işlem için aşağıdaki komutları içeren ldf uzantılı bir dosya oluşturun. (Örneğimde MuhPSO-2.ldf olarak belirttim )
Şekil-8
Son satırda bulunan tire işareti gereklidir dikkat edelim.
Bu PSO şu an kimlere uygulanıyor bir kontrol edelim. Bunun için, MuhasebeTestPSO’su üzerinde sağ tıklayın veaçılan menüde Properties’ı seçin. Karşınıza gelecek pencerede msDS-PSOApplies To satırını seçin ve alt taraftaki Edit’e tıklayın.
Şekil-9
Şu an bu PSO sadece Muh1 kullanıcısına uygulanıyor.
5. Komut satırını açalım. Bu işlem için ( Run ) çalıştır’a gelip Cmd yazıp enter’a basalım.
6. Sonra komut satırından dosyanın bulunduğu lokasyona ulaşıp aşağıda ki komutu yazıp Enter tuşuna basalım.
ldifde –i –f MuhPSO2.ldf
Şekil-10
Artık PSO nun kimlere uygulandığı ADSI edit ya da Active Directory Users and Computers’dan görüntülenebilir. Bunun için,
MuhasebeTestPSO’su üzerinde sağ tıklayın veaçılan menüde Properties’ı seçin. Karşınıza gelecek pencerede msDS-PSOApplies To satırını seçin ve alt taraftaki Edit’e tıklayın.
Şekil-11
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
Windows Server 2008 Password Policies
How to set appropriate I8 values for PSO time attributes on a Windows Server 2008-based computer