Windows Server 2008 ile Active Directory yapısında gelen, yine benim tahminen severek kullanacağım bir özelliği tanıtacağım. Windows 2000 Server ve Windows Server 2003 Active Directory domainler inde sadece tek Password Policy belirleyebiliyorduk. Bu Password Policy de tüm organizational unit’lere etki ediyordu. Bu durumda güvenliğimizi sağlamak için oluşturduğumuz genellikle en az 8 karakterli ve complex password’leri ezberlemek hele hele yine default ayar değiştirilmezse 42 günde bir yeni password bulmak bizim gibi teknik tarafla pek ilgilisi olmayan, bilgisayarı sırf işlerini halletmek için kullanan personel için zor olabilmektedir. Genelde bu arkadaşlarımız ( ben de pek çok kez şahit oldum 🙂 ) passwordlerini post-it ile monitörlerine ya da mantar panolarına yapıştırmaktadır ve güvenlik için yaptığımız bütün uğraşları çöpe atmaktadır. İşte Windows Server 2008 ile Active Directory’si ile birlikte gelen, değişik password policy’ler uygulayabilme yeteneği bizi bu dertten kurtarıyor. Bu işlemi nasıl yapacağımıza birlikte bakalım. Hatırlatmak isterim ki bu uygulama için Domain Functional Level’inizin en az Windows Server 2008 olması gerekmektedir. Hatırlamayanlar için Functional Level yükseltme işlemini Active Directory Users & Computers snap-in’inden domain adımıza sağ tuşla tıklayıp Raise Domain Functional Level ‘e tıklayarak yapıyoruz. Windows’tan önce ben sizi uyarmak isterim ki bu işlem; geri dönüşü olmayan bir işlemdir ve ortamdaki Windows Server 2003 Domain Controller’larınız ile Windows Server 2008 Domain Controller’larınız bundan sonra replikasyona giremeyecektir.
Öncelikle Group Policy Management Console ile varolan default domain policy’imiz üzerindeki password policy’imize bakalım.
Test için sanal olarak kurduğum Windows Server 2008 ‘de Admins ve Teachers isimli iki Organizational Unit (OU) var ve ben bunlardan Teachers OU’sundaki Test User’a daha farklı bir password policy uygulamak istiyorum. Bunun için yeni bir Password Settings Objesi oluşturmam gerekiyor. Bunu yapmak için Run satırına “adsiedit. msc” yazıp Adsiedit konsolumu açıyorum. Konsolu açınca Sol üst köşede bulunan ADSI Edit yazısına sağ tuşla tıklayıp “Connect to” seçeneğini seçiyorum. İlgili düzenlemeleri şu anda oturum açtığım Domain Controller üzerinden yapacağım için default ayarların hiçbirine dokunmadan OK’e tıklıyorum ve aşağıdaki gibi bir ekranla karşılaşıyorum.
3) CN=System altından CN=Password Settings Container ‘a sağ tuşla tıklayıp; New – Object’i seçiyoruz. Ardından gelen ekranda hangi tip obje oluşturmak istediğimizi sormaktadır. Zaten tek seçenek olan msDS-PasswordSettings’e tıklayıp next diyoruz. Fazla yer kaplamamak için bu ekranın snapshot’ını almıyorum.
4) Bu ekranda tanımlamak istediğim attribute için değer girmeliyim. 4 karakterli bir password policy tanımlamak istiyorum ve bunun için 4CharPass diye bir değer girdim. Hatırlatıcı herhangi bir değer de olabilir bu satır.
5) Sanal bir öncelik değeri belirlememiz gerekiyor. Ben bunun için 10 yazıyorum. Kullanıcıya birden çok Password Setting Objesi (PSO) etki ettiği zaman hangisinin öncelikli olarak kullanılacağına AD bu sayıya göre karar vermektedir. Sayılar arasında uygun boşluklar bırakmak yerinde olacaktır.
6) Geri Dönüştürülebilir bir encyription kullanmayacağımız için (ki genelde kullanılması pek tavsiye edilmez) “ReversibleEncryptionEnabled” attribute’u için değer olarak “False” yazıyorum.
7) Password history uzunluğunu bu adımda belirliyorum ve 5 yazıyorum. Bu sayede user son kullandığı 5 password’ü kullanamayacak.(bu değeri örnek olarak verdim, daha yüksek bir sayı olması önerilir.)
8) Şifre yapısının complex olmasını istiyorsak bu değere True; complex olmamasını istiyorsak False yazacağız. Yine genel uygulama olarak complex olması önerilir. Ben complex password uygulamamak için False yazıyorum.
9) Minimum 4 karakterli şifreler kullanılmasını istediğim için Minimum Password Length değerine 4 veriyorum.
10) Sıradaki adımda minimum password age değerini belirleyeceğiz. Hatırlarsınız buradaki default değer 1 gündür. Ben de default değeri kullanacağım fakat işler bu noktada birazcık karışıyor. Çünkü buradaki değere gün bazında 1 yazıp geçemiyorum. Öncelikle 1 günün saniye cinsinden değerini buluyorum. ( 24 x 60 x 60 = 86400 saniye ) ardından bunu 107 ile çarpıyorum yani sonuna 7 tane daha sıfır ekliyorum. Bu arada değeri yazarken başına bir de eksi işareti koymayı unutmuyorum. Yazmam gereken değer “ -864000000000” (toplamda 9 tane sıfır var, saymakla yorulmayın 🙂 ) Bu noktadaki attribute’e değer verme ile ilgili biraz daha ayrıntılı bilgi için Technet’teki http://technet2.microsoft.com/windowsserver2008/en/library/4855d7f6-0e70-4de3-a892-052c81c50f7d1033.mspx?mfr=true adresine bakabilirsiniz. Yine genel olarak PSO oluştururken attribute’lere verilecek kabul edilebilir değerler için http://technet2.microsoft.com/windowsserver2008/en/library/2199dcf7-68fd-4315-87cc-ade35f8978ea1033.mspx?mfr=true adresini kullanabilirsiniz. Bu noktadaki attribute’e değer vermek için farklı önerileri de var Technet’in ama bu yöntem benim kolayıma gittiği için ben bunu kullanıyorum. 🙂
11) Maximum password yaşını 42 gün olarak belirlemek istiyorum bu durumda işlemim şöyle olacak. 42x24x60x60 = 3628800 saniye. Bunu yine 107 ile çarpıp başına eksi koyduğumda yazmam gereken değer şu şekli alıyor. “-36288000000000” (yine toplam 9 tane sıfır)
12) x kez yanlış şifre girildiğide hesabın kilitleneceğini belirten Lockout Threshold’a 3 değerini giriyorum. Bu sayede şifresini 3 kez yanlış giren kişinin hesabı kilitlenecek.
13) Yanlış girilen şifre adedini tutan sayacın 30 dakikada bir sıfırlanmasını istiyorum bu yüzden buraya 30×60 = 1800 saniyeden dolayı “-18000000000” (yine 9 adet sıfır)
14) Şifre 3 kez hatalı girildikten sonra hesabın 30 dakika kilitli kalmasını istiyorum. Bu nedenle yine değer olarak “-18000000000” kullanıyorum ve next dedikten sonra Finish’e tıklıyorum.
15) Bu sayede kendi password objemizi oluşturduk. Ama henüz işimiz bitmedi çünkü bu password policy’nin nereye uygulanacağını seçmedik. Oluşturduğumuz objeye sağ tuşla tıklayıp properties’i seçiyorum.
16) Açılan pencerede msDS-PSOAppliesTo değerini buluyorum. Ardından sol alttan edit’e tıklıyorum.
17) Yine açılan pencerede sol alttan “Add Windows Account” butonuna tıklayıp password policy’i uygulamak istediğim user’ı search edip buluyorum. Ben burda Teachers isimli OU içindeki test user için bu policy’i uygulayacağım. İşlemi tamamladıktan sonra OK butonlarına basaraktan çıkıyorum ve ADSIedit’i kapatıyorum. Active Directory Users and Computers’a dönüp test user’ın şifresini Reset Password seçeneği ile artık 4 haneli complex olmayan bir şifre ile değiştirebilirim.