Bir sistem uzmani olarak günlük yapmamız gereken rutin işlerin arasında backup almak, kullanicilara kaynaklar üzerinde haklar tanımak, print serverlarla uğraşmak, passwordlerini unutan kullaniciların passwordlerini resetlemek, lockout olmuş accountları unlock hale getirmek, yada geri kalan zamanda oturup gazete okumak olacaktır. Bu makalemde ise bahsedeceğim konu OU lerin içerisindeki lockout olmuş accountların otomatik olarak bulunup kilitlerinin açılması olacaktır.
Bir domain içerisinde OU ları aynı departmanı yada aynı istekleri paylaşan user accountlarını ve computer accountlarını bir araya toplamak amacıyla oluştururuz. Ve bu ou ların üzerine kullanicilar ve bilgisayarlara haklar tanımak yada sahip oldukları hakları kısıtlamak için ?group policy? ler atarız ki bunların içerisinde aklımıza gelebilecek tüm imkanlar sunulmuştur. Bunlara bir örnek vermek gerekirse bir computer accountunun üzerine bir kişi oturduğunda password unun kaç karakterli olması gerektiği yada kaç yanlış denemede accountun kitleneceği belirtilebilir. Bu örnekten yola çıkarak konumuzu biraz daha irdelersek, şirketimiz içerisinde var olan user lar kendilerine ait passwordleri kullanarak domainde authendicate ve authorize olurlar. Ki bu kaynaklara erişmek için kullandıkları passwordlerdir. Fakat şirket içerisinde çok güvenli ortamlarda çalışmayabilir örneğin bilgisayarlar yanyana konumlandırıldığında bir user ın password ünü başka bir user hergün takip ederek ezberleyip şirkete saldırılarda bulunabilir. Ayrıca Cain gibi çok ufak programları kullanarak kişilerin passwordlerine brute-force attack (deneme yanılma) yapılabilir ki bu programları google da search ettiğinizde rahatlıkla bulabilirsiniz. Bu tarz brute-force attacklardan korunmak amacıyla group policy içersinde account lockout threshold adında bir ayar vardır.
(mmc>group policy object editor>computer settings>windows settings>security settings>account policies>account lockout policy altında ?account lockout threshold?)
Bu policy değerini değiştirerek userlara belirli bir zaman içerisinde yanlış password girebilme toleransı tanınmaktadır. Ki varsayılan olarak bu değer ?0? dır yani istenildiği kadar yanlış girelebilir ve account kitlenmez bu değeri arttırarak kullanıcılar yanlış password girdiğinde accountun kitleneceği anlamına gelir. Örneğin bu değeri ?3? yapmamız halinde kullanıcı 30 dakika içerisinde passwordunu 3 kez yanlış girdiğinde account kitlenecektir. Bu ayarın üzerine herhangi bir kişi password üzerinde deneysel çalışmalar yapmaya kalkarsa mesela deneme yanılma yöntemiyle password ü tahmin etmeye çalışsada başarısız olacaktır ki zaten 3 kez deneme hakkına sahiptir. Yani 4. defada passwordu doğru tahmin etse dahi account logon gerçekleşmeyecektir. Bu bize doğrudan güvenlik sağlar. Ve accountun açılabilmesi için bir ?domain admins? grubunun üyesinin accountu bularak bu accountu unlock etmesi gerekmektedir ki bu kişi biz oluyoruz. Böyle bir olay olduğunda user bize telefon açar ve biz gerekli işlemleri Active Directory üzerinden yaparız. Fakat lock olmuş bir account ?Active Directory? de gözle görülür bir şekilde değişim yaşamaz, örneğin Disable olmuş bir accountun üzerinde çarpı işareti çıkar ve rahatlıkla accountu diğerlerinden ayırt edebiliriz. Yalnız lock olmuş bir account üzerinde buna benzer bir şey çıkmaz, belkide bu Active Directory nin hesaplanmamış yanlışlardan biridir. Bu durum karşısında bizim öncelikle lock olmuş accountları AD içersinde bulup daha sonra bunları unlock etmemiz gereklidir ki bu gerçekten Tembel Admin için yorucu bir iştir. Bunu otomatiğe bağlamak için OU ler üzerinde ekleyeceğimiz attribute lerle daha fazla gazete okumaya zamanımız olacak.
Öncelikle konfigurasyonu yapmadan önceki halimize bir bakalım, lock edilmiş bir user ı bulmak için;
Start >Administrative Tools> Acitve Directory Users and Computers lock olmuş bir userımızın üzerinde sağ tıklayıp properties ine giriyoruz
Açılan menüden Account tabına girelim burada user ımızın accountu eğer kilitlenmişse ?account is locked out? checkbox ı active gelecektir. Bu checkbox ı kaldırarak accountumuzu eski haline getirebiliriz...
Eğer ki Active Directory içerisinde Lock-out policy tanımlanmamışsa doğal olarak user accountları lock olmayacaktır. Bu opsiyonu kullanılabilir bir konuma getirmek için Active Directory Users and Computers (ADUC) konsolunu açtıktan sonra domain adı üzerinde örneğin gucci.com üzerinde sağ click yapıp properties deriz açılan pencereden group policy tabına ulaşıp aşağıda hazırda bulunan Default Domain Policy üzerine tıklayıp aşağıdaki Edit butonuna basarız. Karşımıza Group Policy Object Editor konsolu gelecektir (aşağıdaki şekil) buradan resimdeki yolu izleyerek ?account lockout threshold? a çift tıklayarak properties ekranında 2 değerini yazarak kilitleme toleransını belirleyelim.
Bu işlemler bittikten sonra asıl isteğimiz olan attribute ekleme olayına gelelim ki bunu yapabilmek için ADSIedit tool unu kullanacağız. Fakat windows ilk kurulduğunda bu konsol yüklü olarak gelmez. Bu aracı enable etmek için windows cd sinin içersindeki support>tools klasörünün altından suptools.msi dosyasını yükleyelim.
Active Directory e attribute u eklemek için bu işi yapacak bir komut sistemine ihityacımız var ki bunun için en uygunu VBS (visual basic script) tir. Aşağıdaki hazır script e ki yazılanları bir kelime editoru açarak (örneğin notepad) içerisine kopyalıyalım. Ve kapatım save ederken ismini kilitli_kullanici_bul.vbs yapalım. Bu bizim istediğimiz tüm komutları içeriyor fakat bunu DC mizin bir shared folder ına konumlandırmak gerekir ki bunun için en uygun yer NET LOGON share ıdır. Çünkü net logon AD replikasyonuyla beraber diğer dc lerede replike olur. Netlogon share ına doğrudan ulaşmak için run a gelip \localhost
etlogon yazmalıyız.
-----------------------------------------------------------------------------------------------------------------------------------------------------------
summary=""
Set wshArguments = WScript.Arguments
Set ou = GetObject(wshArguments(0))
for each User in ou
rec = split(user.adspath,"=")
rec1 = split(rec(0),"/")
if rec1(3)="CN" then
if (user.badPwdCount>"0") then
user.put "lockouttime","0"
user.setinfo
summary=summary & user.userPrincipalName & vbnewline
end if
end if
next
if summary="" then
msgbox "kilitli kullanici yok!"
else
msgbox "bu kullaniciler kilitli bulundu:" & vbnewline _
& "-------------------------------------------------" & vbnewline & summary
end if
----------------------------------------------------------------------------------------------------------------------------------
Konsolumuzu yükledikten sonra bu konsol MMC içerisine düşecektir. Konsolo ulaşmak için Start>Run a gelip mmc yazalım açılan pencerede Files dan Add/remove Snap-in e tıklayalım buradan add butonuna tıkladıktan sonra ADSI Edit i seçip add deyip tüm pencereleri kapatalım.
.
Açılan pencereden ADSI Edit üzerinde sağ tıklayıp bağlanmak istediğimiz yeri seçelim.
Açılan menüden naming context e gelip configuration ı seçelim.
Açılan pencereden configuration> CN=configuration...> CN= Display Specifiers> 409> CN=organizatinal unit üzerinde properties diyoruz.
Açılan pencereden adminContextMenu u seçip edit butonuna tıklıyoruz.
Buradan açılan pencereye gelip 4,&Kilitli Bul Ac,\seminer
etlogonkilitli_kullanici_bul.vbs yazıp add deyip ekliyoruz.
Bu işlemi bitirdikten sonra konfigurasyonumuz son buluyor. Şimdi AD içerisindeki muhasebe OU su üzerinde bunun testini yapalım. Görüldüğü gibi Kilitli Bul Ac attribute u OU larımız üzerinde sağ tık yaptığımızda geliyor.
Eğer ki tıklarsak içerideki tüm lock edilmiş tüm kullanıcıları bulup bize haber verecek ve bunları unlock edecektir.
Eğer ki kilitli kullanıcı bulamazsa;
Uyarısı karşımıza gelecektir
|