Hogyan oldja fel az Active Directory-fiókok zárolását a PowerShell segítségével

Hogyan követheti nyomon és oldhatja fel a zárolt Active Directory-fiókot? Tudja meg, mi történik, hogyan keresse meg a konkrét eseményeket, és hogyan elemezze az eseményeket.

Active Directory (AD) egy csodálatos szolgáltatás. A hálózaton belül bárhonnan bejelentkezhet ugyanazzal a felhasználónévvel és jelszóval. Nem is lehetne egyszerűbb — egészen addig, amíg el nem felejtünk bezárni egy távoli asztali munkamenetet, vagy egy féreg nem terjed szét a hálózaton, vagy el nem felejtjük, hogy egy ütemezett feladatot a felhasználói fiókunkként futtatunk, vagy… Nos, érti a lényeget. Az AD rendkívül hasznos termék; ezért olyan magas az elfogadottsága. A probléma akkor jelentkezik, amikor egy fiók minden ok nélkül elkezd zárolódni. Vagy legalábbis ezt gondolja.

AD-fióklezárási irányelvek

Sok szervezet rendelkezik (vagy kellene rendelkeznie) fióklezárási irányelvekkel. Ez a szabályzat egy olyan biztonsági intézkedés, amely megakadályozza, hogy illetéktelenek folyamatosan próbálják kitalálni a jelszót, vagy brute force módszerrel próbáljanak jelszót kitalálni. A fióklezárási házirendek általánosak az Active Directoryban, és egy egyszerű megközelítésből állnak egy jelentős biztonsági probléma leküzdésére. Ha bizonyos számú alkalommal rossz jelszót próbál megadni, a fiók mindaddig használhatatlanná válik, amíg a rendszergazda manuálisan újra nem engedélyezi azt. A szándék igaz, de néhány esetben a végrehajtás nem.

Egy fiókot bizonyos helyzetekben, különösen jelszóváltoztatáskor, hirtelen, minden látható ok nélkül következetesen zárolni lehet. A felhasználó felhívja a helpdesket, a helpdesk újra engedélyezi a fiókot, és nem sokkal később a fiók ismét zárolásra kerül. Ez mind a felhasználó, mind a help desk számára frusztráló élmény. Néha a problémát súlyosbítja a kizárások ismeretlen eredete. Valahol, valahogyan van egy személy, egy szkript vagy egy folyamat, amely folyamatosan újra és újra megpróbálja ugyanazt a rossz jelszót, de senki sem tudja, hogy hol.

Hogyan lehet tehát lenyomozni ezeket a bosszantó zárolásokat? Az egyik módja egy PowerShell szkript használata. De előbb nézzük át, mi történik egy fiók zárolásakor.

Lezárt AD-fiók feloldása

A Windows Server 2008 vagy újabb környezetben rövid ide-oda ingázás zajlik az ügyfélrendszer, az ügyfélrendszer tartományvezérlője és az elsődleges tartományvezérlő (PDC) emulátor szerepét betöltő tartományvezérlő között. Ez a következőképpen történik:

  1. Ahányszor megkísérlik a felhasználói fiók hitelesítését, a hitelesítő adatok felküldésre kerülnek az ügyfélrendszer alhálózatának megfelelő tartományvezérlőhöz.
  2. Ha a jelszó rossz, az ügyfélrendszer tartományvezérlője továbbítja a kérést a PDC emulátor szerepkörrel rendelkező tartományvezérlőnek. Ennek oka, hogy az ügyfélrendszer tartományvezérlője esetleg nem rendelkezik a legfrissebb jelszóval, és az Active Directory tervezési jellemzőjeként a PDC emulátor szerepkörrel rendelkező tartományvezérlő mindig rendelkezik.
  3. A PDC emulátor újra megpróbálja a jelszót, és ha még mindig rossznak találja, a PDC emulátor növeli a felhasználói fiók badPwdCount attribútumát.
  4. A PDC emulátoron 4740-es eseményazonosító generálódik az eredeti kérést kezdeményező ügyfélrendszer IP-címével és a felhasználói fiókkal.
  5. A PDC emulátor ezután tájékoztatja az ügyfélrendszer tartományvezérlőjét, hogy a jelszó valójában rossz.
  6. Az ügyfélrendszer tartományvezérlője ezután értesíti az ügyfélrendszert, hogy a jelszó rossz volt.

Hol lenne a legjobb megtalálni a forrást? A válasz a PDC emulátorban van. Ennek oka, hogy minden fiókzárlat ott kerül rögzítésre a biztonsági eseménynaplóban. A PDC emulátor egy központi hely, ahonnan lekérdezhető az összes fióklezárási esemény.

A PowerShell használata az AD-fióklezárások forrásának felkutatásához

A PDC emulátor lekérdezéséhez a PowerShell Get-WinEvent cmdletjét használjuk. Ez egy rendkívül hasznos cmdlet egy vagy több eseménynapló gyors elemzésére egy kiszolgálón. A 4740-es eseményazonosítót keressük. Először meg kell keresnünk a PDC emulátor szerepkörrel rendelkező tartományvezérlőt. Ennek egyik módja a Get-AdDomain cmdlet használata.

Ha már tudjuk a PDC emulátorát, akkor már csak le kell kérdeznünk a biztonsági eseménynaplóját a 4740-es eseményazonosítóra.

Létezik egy abertram nevű fiók, amely ki van zárva. Lássuk, hogyan találjuk meg a tettest.

Máris megvan a PDC emulátor, kérdezzük le a biztonsági naplóját egy PowerShell szkript segítségével.

## Határozzuk meg a kirekesztett felhasználónevet
$Username = ‘abertram’
## Keressük meg a tartományvezérlő PDCe szerepét
$Pdce = (Get-AdDomain).PDCEmulator
## A Get-WinEventnek átadandó paraméterek összeállítása
$GweParams = @{
‘Computername’ = $Pdce
‘LogName’ = ‘Security’
‘FilterXPath’ = “* and EventData=’$Username’]]”
}
## A biztonsági eseménynapló lekérdezése
$Events = Get-WinEvent @GweParams

Ez adja ki a lockout eseményt.

De még nincs meg a kiinduló kliensrendszer. Ahhoz, hogy azt megszerezzük, kicsit mélyebbre kell ásnunk. A tényleges felhasználónév az egyes események tulajdonságainak értékében van elásva. Ahhoz, hogy megtaláljuk a felhasználónevet az egyes eseményekben, egyszerűen használhatjuk ezt a sort.

$Events.Properties.Value

Ez megtalálja a felhasználónevet az első eseményben és a Properties érték első példányában. Szerencsére az ügyfélrendszer éppen a Properties második példányában van.

$Events.Properties.Value

Ha már tudjuk, hogy hol található az ügyfélrendszer neve, csak be kell illeszteni egy ciklusba, és máris megtaláltuk a bűnöst.

Most már fel van fegyverezve, és készen áll a következő alkalomra, amikor a help desk felhív a folyton zárolt AD felhasználói fiók miatt.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.