Active Directory Hesabı Kilitlemelerinin Kaynağını Belirleyin: Sorun Giderme


Bu yazımızda Active Directory etki alanı denetleyicilerinde kullanıcı hesabı kilitleme olaylarını nasıl takip edeceğinizi ve hesabın hangi bilgisayar, cihaz ve programdan sürekli olarak kilitlendiğini öğreneceğiz. AD'de kullanıcı hesabı kilitlenmelerinin kaynağını bulmak için Windows Güvenlik günlüklerini, PowerShell komut dosyalarını veya Hesap Kilitleme ve Yönetim aracını (Lockoutstatus.exe) kullanabilirsiniz.

Başvurulan hesap şu anda kilitli ve oturum açmamış olabilir

Çoğu kuruluştaki Active Directory etki alanı hesabı güvenlik ilkesi, art arda birkaç kez hatalı bir parola girildiğinde bir kullanıcı hesabının kilitlenmesini gerektirir. Genellikle hesap, etki alanı denetleyicisi tarafından birkaç dakika (5-30) süreyle kilitlenir ve bu süre boyunca kullanıcı AD etki alanında oturum açamaz. Bir süre sonra (etki alanı güvenlik politikası tarafından belirlenir), kullanıcı hesabının kilidi otomatik olarak açılır. Geçici AD hesabı kilitleme, AD kullanıcı hesaplarına yönelik kaba kuvvet saldırıları riskini azaltır.

Etki alanındaki kullanıcı hesabı kilitliyse, Windows'ta oturum açmaya çalışırken bir uyarı görünür:

Başvurulan hesap şu anda kilitli ve oturum açılmamış olabilir.

Bir AD Kullanıcı Hesabının Kilitli Olup Olmadığı Nasıl Kontrol Edilir?

ADUC grafik konsolunu kullanarak veya PowerShell için Active Directory modülünden Get-ADUser cmdlet'i kullanarak hesabın kilitli olup olmadığını kontrol edebilirsiniz:

Get-ADUser -Identity jsmith -Properties LockedOut,DisplayName | Select-Object samaccountName, displayName,Lockedout

Veya :

Get-ADUser jsmith -Properties Name,Lockedout, lastLogonTimestamp,lockoutTime,logonCount,pwdLastSet | Select-Object Name, Lockedout,@{n='LastLogon';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},@{n='lockoutTime';e={[DateTime]::FromFileTime($_.lockoutTime)}},@{n='pwdLastSet';e={[DateTime]::FromFileTime($_.pwdLastSet)}},logonCount

Kullanıcı hesabı artık kilitli (

Lockedout = True

) ve etki alanında kimlik doğrulama için kullanılamaz. Ayrıca komutun çıktısında, kullanıcının etki alanındaki parolasının en son ne zaman değiştirildiği ve hesabın ne zaman kilitlendiği hakkında bilgi görebilirsiniz.

Search-ADAccount cmdlet'ini kullanarak bir etki alanındaki şu anda kilitli olan tüm hesapları listeleyebilirsiniz:

Search-ADAccount -UsersOnly -lockedout

Otomatik olarak açılmasını beklemeden ADUC konsolunu kullanarak bir hesabın kilidini manuel olarak açabilirsiniz. AD'de kullanıcı hesabını bulun (AD ek bileşenindeki arama seçeneğini kullanın), sağ tıklayın ve Özellikler'i seçin. Hesap sekmesine gidin ve Hesabın kilidini aç kutusunu işaretleyin. Bu hesap şu anda bu Active Directory Etki Alanı Denetleyicisinde kilitlenmiştir. Tamam'ı tıklayın.

Ayrıca aşağıdaki PowerShell komutuyla bir kullanıcı hesabının kilidini hemen açabilirsiniz:

Get-ADUser -Identity jsmith | Unlock-ADAccount

ADUC konsolunda (Öznitelik Düzenleyici sekmesinde) hesap özelliklerinde veya PowerShell kullanarak hesap kilitleme süresini, başarısız parola oturum açma denemelerinin sayısını ve son başarılı oturum açma zamanını kontrol edebilirsiniz:

Get-ADUser jsmith -Properties Name, lastLogonTimestamp,lockoutTime,logonCount,pwdLastSet | Select-Object Name,@{n='LastLogon';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},@{n='lockoutTime';e={[DateTime]::FromFileTime($_.lockoutTime)}},@{n='pwdLastSet';e={[DateTime]::FromFileTime($_.pwdLastSet)}},logonCount

Active Directory Etki Alanında Hesap Kilitleme İlkeleri

Hesap kilitleme politikaları genellikle tüm alan için Varsayılan Alan Politikası'nda ayarlanır.

gpmc.msc

ek bileşen. İlgilendiğimiz politikalar Bilgisayar Yapılandırması -> Windows Ayarları -> Güvenlik Ayarları -> Hesap Politikası -> Hesap Kilitleme Politikası'nda bulunur. Bunlar aşağıdaki politikalardır:

  • Hesap kilitleme eşiği - kaç tane başarısız parola denemesinden sonra bir hesabın kilitlenmesi gerekir;

  • hesabın ne kadar süreyle kilitli kalacağına ilişkin hesap kilitleme süresi (bu süreden sonra kilit otomatik olarak kaldırılacaktır);

  • Hesap kilitleme sayacını şu saatten sonra sıfırla - başarısız yetkilendirme girişimlerinin sayacını sıfırlama zamanı.

Parola kaba kuvvet saldırılarına karşı koruma sağlamak için AD'de güçlü kullanıcı parolaları kullanılması önerilir (en az 8 karakterlik bir parola kullanın ve karmaşıklık gereksinimlerini etkinleştirin). Bu, Parola Politikası bölümünde, Parola karmaşıklık gereksinimlerini karşılamalıdır ve Minimum parola uzunluğu seçeneklerinde yapılandırılır. Periyodik olarak, kullanıcı parolasının gücünü denetlemeniz gerekir.

Kullanıcının parolayı unuttuğu ve hesabın kilitlenmesine kendisinin neden olduğu durumlar oldukça sık meydana gelir. Kullanıcı yakın zamanda parolayı değiştirmiş ve unutmuşsa, parolayı sıfırlayabilirsiniz. Ancak bazı durumlarda, hesabın kilitlenmesi bariz bir neden olmadan gerçekleşir. yani kullanıcı, şifre girerken hiç hata yapmadığını ancak hesabının herhangi bir nedenle bloke edildiğini beyan eder. Yönetici, kullanıcının isteği üzerine hesabın kilidini manuel olarak açabilir, ancak bir süre sonra durum tekrar edebilir.

Yöneticinin, kullanıcının sorununu çözmek için, Active Directory'deki kullanıcı hesabının hangi bilgisayar ve programdan kilitlendiğini bulması gerekir.

Hesap Kilitleme Olay Kimlikleri 4740 ve 4625

Her şeyden önce, bir yöneticinin hangi bilgisayardan veya cihazdan kötü parola girişimlerinin meydana geldiğini öğrenmesi ve daha fazla hesap kilitlemesine gitmesi gerekir.

Etki alanı denetleyicisi günlüklerinde hesap kilitleme olaylarını etkinleştirmek için DC'leriniz için aşağıdaki denetim ilkelerini etkinleştirmeniz gerekir. Bilgisayar Yapılandırması -> İlkeler -> Windows Ayarları -> Güvenlik Ayarları -> Gelişmiş Denetim Politikası -> Oturum Açma/Kapatma GPO bölümüne gidin ve aşağıdaki ilkeleri etkinleştirin:

  • Denetim Hesabı Kilitleme

  • Denetim Oturumu Açma

  • Denetimden Çıkış

Ardından Hesap Yönetimi bölümüne gidin ve politikayı etkinleştirin:

  • Kullanıcı Hesabı Yönetimini Denetle: Başarı

Bu politikayı etkinleştirmenin en kolay yolu,

gpmc.msc

Varsayılan Etki Alanı Denetleyici Politikası'nı düzenleyerek konsol.

Kullanıcı yanlış bir parola girerse, kullanıcıya en yakın etki alanı denetleyicisi (LogonServer), kimlik doğrulama isteğini PDC emülatörü FSMO rolüyle DC'ye yönlendirir (bu özel DC, hesap kilitlerini işlemekten sorumludur) . Kimlik doğrulama PDC'de de başarısız olursa, kimlik doğrulamanın başarısız olduğu ilk DC'ye yanıt verir. Başarısız kimlik doğrulama girişimlerinin sayısı Hesap kilitleme eşiği politikasında alan için ayarlanan değeri aşarsa, kullanıcı hesabı geçici olarak kilitlenir.

Bu durumda, EventID 4740 olan bir olay, her iki etki alanı denetleyicisinin Güvenlik günlüğüne kaydedilir. Olay, kullanıcı kimlik doğrulaması için ilk isteğin geldiği bilgisayarın DNS adını (IP adresi) içerir. Günlükleri tüm DC'lerde ayrıştırmamak için kilitleme olaylarını PDC'deki güvenlik günlüğünde aramak en kolay yoldur. Birincil etki alanı denetleyicisini etki alanınızda şu şekilde bulabilirsiniz:

(Get-AdDomain).PDCEmulator

Etki alanı hesabı kilitleme olayları, etki alanı denetleyicisindeki Güvenlik günlüğünde bulunabilir (Olay Görüntüleyici -> Windows Günlükleri). Güvenlik günlüğünü EventID 4740 ile filtreleyin. En son hesap kilitleme olaylarının bir listesini görmelisiniz. En üstten, tüm olaylar arasında gezinin ve aradığınız kullanıcının hesabının kilitli olduğunu gösteren bir olay bulun (kullanıcı adı Hesap Adı değerinde ve olay açıklamasında "< listelenir)Bir kullanıcı hesabı kilitlendi ”).

Not. Büyük bir AD ortamında, etki alanı denetleyicilerindeki güvenlik günlüğüne birçok olay yazılır ve yenileri kademeli olarak üzerine yazılır. Bu nedenle, DC'lerde maksimum günlük boyutunu artırmanız ve mümkün olan en kısa sürede kilitleme kaynağını aramaya başlamanız önerilir.

Bu etkinliği açın. Hesap kilitleme olayının kaydedildiği bilgisayarın (sunucunun) adı Arayan Bilgisayar Adı alanında belirtilir. Bu durumda bilgisayarın adı DACZCZL5-Z'dir.

Bilgisayar Adı alanı, ağınızda DNS aracılığıyla çözümlenmeyen bilinmeyen bir bilgisayar/cihaz adı içeriyorsa (etki alanı olmayan bir bilgisayar veya Kerberos kimlik doğrulamasını destekleyen Windows dışı bir cihaz), bu cihazın IP adresini alabilirsiniz. . Bunu yapmak için, Varsayılan Etki Alanı Denetleyicisi İlkesi'nde aşağıdaki denetim ayarlarını etkinleştirmelisiniz. Bilgisayar Yapılandırması -> İlkeler -> Windows Ayarları -> Güvenlik Ayarları -> Gelişmiş Denetim Yapılandırması'na gidin ve aşağıdaki denetim seçeneklerini etkinleştirin:

Hesap Oturum Açma

  • Kerberos Kimlik Doğrulama Hizmetini Denetleyin: Başarılı, Başarısız

  • Kerberos Hizmet Bilet İşlemlerini Denetleyin: Başarı, Başarısızlık

Oturum Açma/Kapatma

  • Denetim Özel Oturum Açma: Başarı, Başarısızlık

Olay Görüntüleyici -> Güvenlik günlüğünü açın ve 4740 ve 4741 Olay Kimliklerinde filtreyi etkinleştirin. Kullanıcı kilitleme olayı (4740) gerçekleşmeden önce 4771 olayının (

Kerberos Authentication Failed

) Kerberos Kimlik Doğrulama Hizmeti'nden görünür. Kimlik doğrulaması yapmaya çalışan kullanıcının adını ve kimlik doğrulama isteğinin geldiği cihazın IP adresini (alan Ağ Bilgileri -> İstemci Adresi) içerir.

Uzak cihaz NTLM etki alanı kimlik doğrulaması kullanıyorsa, DC'lerde Olay Kimliği 4625'yi (NTLM Kimlik Doğrulaması Başarısız Oldu) aramalısınız (yalnızca NTLM kimlik doğrulamasının denendiği etki alanı denetleyicisinde bulunur).

Kullanıcınız için EventID 4625 ile son etkinliği açın (Hesap adı). Burada, NTLM kimlik doğrulaması gerçekleştirmeye çalışırken bunu görebilirsiniz (Kimlik Doğrulama Paketi:

NTLM

, Oturum Açma İşlemi:

NtLmSsp

), hesap kilitlendi (

Failure Reason: Account locked out

,

Status: 0xC0000234

). Olay açıklaması, hem bilgisayar adını (İş İstasyonu Adı) hem de IP adresini (Kaynak Ağ Adresi) içerir.

Kullanıcı kilitleme kaynağını Olay Görüntüleyici günlüğünde bulamazsanız, etki alanı denetleyicisinde netlogon için hata ayıklama günlüğünü etkinleştirebilirsiniz. Komutu çalıştırın:

nltest /dbflag:2080ffffff

Netlogon hizmetini yeniden başlatın

net stop netlogon && net start netlogon

netlogon.log dosyasında olaylar arayın:

  • 0xc000006a - Aşağıdaki kullanıcı tarafından geçersiz bir oturum açma girişiminde bulunuldu;

  • 0xc0000234 - Çok sayıda geçersiz oturum açma girişimi veya şifre değiştirme girişimi istendiğinden kullanıcı hesabı otomatik olarak kilitlendi.

Kullanıcı için kilitleme olaylarını bulabilirsiniz.

a.baker

içinde

netlogon.log

komutu kullanarak dosya:

type C:\Windows\debug\netlogon.log | findstr a.baker| findstr /i "0xC000006A"

Bu örnekte, a.baker kullanıcısının DESKTOP-12361B cihazına erişiminin engellendiğini görebilirsiniz.

Hata ayıklama tamamlandıktan sonra DC'de gelişmiş netlogon günlüğünü devre dışı bıraktığınızdan emin olun:

nltest /dbflag:0x0

PowerShell ile Hesap Kilitlemelerinin Kaynağını (Bilgisayar) Alın

PDC olay günlüklerinde belirli bir kullanıcının hesap kilitlemesinin kaynağını bulmak için aşağıdaki PowerShell betiğini kullanabilirsiniz. Aşağıdaki komut dosyası, PDC'deki Güvenlik Olay Günlüğünde Olay Kimliği 4740 olan olayları arar ve kilitleme zamanını ve meydana geldiği bilgisayarın adını döndürür:

$Usr = ‘username1’
$Pdc = (Get-AdDomain).PDCEmulator
$ParamsEvn = @{
‘Computername’ = $Pdc
‘LogName’ = ‘Security’
‘FilterXPath’ = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Usr']]"
}
$Evnts = Get-WinEvent @ParamsEvn
$Evnts | foreach {$_.Properties[1].value + ' ' + $_.TimeCreated} 

Benzer şekilde, Active Directory'deki tüm etki alanı denetleyicilerini PowerShell kullanarak sorgulayabilirsiniz:

$Usr = ‘username1’
Get-ADDomainController -fi * | select -exp hostname | % {
$ParamsEvn = @{
‘Computername’ = $Pdc
‘LogName’ = ‘Security’
‘FilterXPath’ = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Usr']]"
}
$Evnts = Get-WinEvent @ParamsEvn
$Evnts | foreach {$_.Computer + " " +$_.Properties[1].value + ' ' + $_.TimeCreated}
}

Hesap Kilitleme ve Yönetim Araçları ile AD Kilitleme Olaylarını İzleyin

Kullanıcı hesabı kilitlenmelerinin kaynağını bulmak için Microsoft Hesap Kilitleme ve Yönetim Araçları paketindeki Lockoutstatus.exe grafik aracını kullanabilirsiniz (buradan indirebilirsiniz). Bu yardımcı program, tüm etki alanı denetleyicilerinde hesap kilitleme durumunu denetler.

çalıştır

Lockoutstatus.exe

aracında, kilitli hesabın adını (Hedef Kullanıcı Adı) ve alan adını (Hedef Alan Adı) belirtin.

Görünen liste, DC'lerin listesini ve hesap durumunu (Kilitli veya Kilitsiz) içerecektir. Ek olarak, kilitlenme süresi ve bu hesabın kilitlendiği bilgisayar görüntülenir (Orig Lock).

badPwdCount ve LastBadPasswordAttempt öznitelikleri, etki alanı denetleyicileri arasında çoğaltılmaz.

Kullanıcı hesabının kilidini açabilir veya doğrudan Kilitleme durumu penceresinden bir parolayı değiştirebilirsiniz.

LockoutStatus aracının ana dezavantajı, tüm etki alanı denetleyicilerini oldukça uzun bir süre sorgulamasıdır (bazıları kullanılamayabilir).

Kullanıcı Domain Hesabını Kilitleyen Program Nasıl Bulunur?

Böylece, hesabın hangi bilgisayar veya cihazdan kilitlendiğini bulduk. Şimdi tam olarak hangi programın veya işlemin başarısız oturum açma denemeleri yaptığını ve hesap kilitleme olaylarının kaynağı olduğunu bilmek harika olurdu.

Çoğu zaman kullanıcılar, parolalarını değiştirdikten sonra etki alanı hesaplarının kilitlenmesinden şikayet etmeye başlar. Çoğu durumda bu, eski (yanlış) parolanın belirli bir programa, komut dosyasına veya kötü eski parolayla bir DC'de periyodik olarak kimlik doğrulaması yapmaya çalışan hizmete kaydedildiği anlamına gelir. Bir kullanıcının eski bir şifreyi kaydetmiş olabileceği en yaygın yerlere bakalım:

  • Eşlenen ağ sürücüleri (üzerinden

    net use

    );

  • Windows Görev Zamanlayıcı işleri;

  • Yapılandırılmış RunAs moduna sahip kısayollar (bir programı başka bir kullanıcı adına çalıştırmak için kullanılır);

  • Bir etki alanı hesabı altında çalışacak şekilde yapılandırılmış Windows hizmetleri;

  • Kimlik Bilgileri Yöneticisinde (Kontrol Panelinde) kayıtlı kimlik bilgileri;

    Bazen kullanıcı parolaları SİSTEM bağlamında saklanabilir. Komut istemini LocalSystem olarak açarsanız (psexec aracını kullanarak) ve komutu çalıştırırsanız bunları listeleyebilirsiniz.

    rundll32 keymgr.dll,KRShowKeyMgr

    NT AUTHORITY\SYSTEM için kaydedilmiş şifreleri göstermek için.

  • Mobil cihazlar (örneğin, kurumsal posta kutusuna erişmek için kullanılanlar);

  • Otomatik oturum açma özelliğine veya yapılandırılmış Windows otomatik oturum açma özelliğine sahip programlarda kayıtlı (önbelleğe alınmış) parolalar;

  • Diğer bilgisayarlarda veya RDS çiftliklerinde/ana makinelerde bağlantısı kesilmiş/boşta olan RDP oturumları (RDP oturumları için her zaman zaman aşımlarını ayarlayın);

  • Windows Wi-Fi ağ profillerinde kayıtlı parolalar (bir kablosuz ağda WPA2-Enterprise 802.1x kimlik doğrulaması kullanıyorsanız).

DC günlüklerinde bulduğunuz bir bilgisayarda ayrıntılı bir hesap kilitleme denetimi gerçekleştirmek için bir dizi yerel Windows denetim ilkesini etkinleştirmeniz gerekir. Bunu yapmak için yerel bir Grup İlkesi Düzenleyicisi açın (

gpedit.msc

) bir bilgisayarda (kilitleme kaynağını bulmak istediğiniz) ve Bilgisayar Yapılandırmaları -> Windows Ayarları -> Güvenlik Ayarları -> Yerel İlkeler -> Denetim İlkesi: bölümünde aşağıdaki ilkeleri etkinleştirin.

  • Denetim süreci takibi: Başarılı, Başarısız

  • Oturum açma olaylarını denetle: Başarılı, Başarısız

Ardından, istemcideki Grup İlkesi ayarlarını güncelleyin:

gpupdate /force

Bir sonraki hesap kilitlenmesini bekleyin ve Güvenlik günlüğünde Olay Kimliği 4625 olan olayları bulun. Bizim durumumuzda, bu olay şöyle görünür:

An account failed to log on.
Failure Reason: Account locked out.

Olay açıklamasından da görebileceğiniz gibi, hesap kilitlemenin kaynağı mssdmn.exe işlemidir (Sharepoint bileşeni). Bu durumda, kullanıcının Sharepoint web portalındaki parolayı güncellemesi gerekir.

Sorun giderme bittikten ve kilitleme nedeni tespit edilip ortadan kaldırıldıktan sonra, yerel denetim politikalarını devre dışı bırakmayı unutmayın.

Belirli bir bilgisayarda hesap kilitleme kaynağını hala bulamadıysanız, Active Directory'de kullanıcı hesabını yeniden adlandırmayı deneyin, AD'de kullanıcının SAMaccountName ve UPN'sini değiştirin). Kilitleme kaynağını belirleyemediyseniz, bu genellikle belirli bir kullanıcının ani kilitlenmelerine karşı en etkili koruma yöntemidir.

İlgili makaleler