Отново си заключи акаунта! Кой? Защо? Как?
|Често заключващите се акаунти са един от най-големите бичове на нашето време за хората, които се занимават с IT support на крайните потребители. Това е един от най-дразнещите и тривиални проблеми, които ежедневно се случват в работата ни и за които обикновено обвиняваме потребителите – виновни или не.
Случвало ли ви се е, както си седите удобно и си мислите, че сте закърпили всички дупки на работа, изведнъж да ви позвъни телефонът и да чуете: „Пак не мога да се логна.“? Стандартното решение е да попитате потребителя за неговото потребителско име, да го намерите в Active Directory Users and Computers (или Administrative Center ако ползвате Server 2008 R2) и да сложите отметка на полето „Unlock„. Тривиално, нали? А сега си представете, че след 5 минути същият човек се обади отново и твърди, че не е объркал паролата си?
Нека да разгледаме етимологията на проблема и да отговорим на въпросите в заглавието. Първо, как се е заключил акаунтът? Факт е, че причината не винаги е неколкократно въвеждане на грешна парола от потребителя. Друга често срещана причина за заключване на акаунт са запаметени пароли, например за достъп до споделени папки, пощенски клиент или пък вътрешен web сайт. Също така не е за подценяване и възможността за саботаж, например някой се опитва да познае паролата на колегата си върху заключения му компютър.
За да разберем къде и кога се е заключил даден акаунт, на помощ ще ни се притече… разбира се, лог файлът на Windows и по-специално Security частта от него. Но преди това трябва да разберем къде се е записало събитието, което ни интересува. Записи, които се отнасят до заключени акаунти, се появяват там, където се автентикираме с този акаунт, а това обикновено са домейн контролерите на нашия фирмен домейн. За да разберем на кой от всички домейн контролери се намира търсеният от нас лог запис, може да използваме безплатното инструментче от Microsoft – Lockoutstatus.msi. Инструментът е изключително лесен за използване. Просто от менюто „File“ изберете „Select Target“ и въведете потребителското име на акаунта, който ви интересува. По-долу може да видите как изглежда един заключен (на първата картинка) и един незаключен акаунт (на втората картинка). Последната колонка показва на кой домейн контролер се е генерирало събитието, което ни интересува.
След като знаем къде да търсим, следващата стъпка е да отворим EventViewer на въпросния домейн контролер и в Windows Logs –>Security да се огледаме за събитие с ID 4740. Това събитие се генерира в домейн контролерите под Windows Server 2008/R2, когато потребителски акаунт се заключи. Например, както се вижда от картинката по-долу, акаунтът „dummy“ се е заключил в 6:15:32 на 10-ти февруари 2012 от хост в мрежата с име SC-SQL-VMM.
За да намирате тези събития по-лесно, препоръчвам да си направите CustomView, в което да филтрирате по EventID 4740, а още по-добре да използвате новата опция за Event Forewarding на Windows Server 2008/R2 и по този начин да съберете на едно място всички записи, които ви интересуват.
И последно искам да ви задам един въпрос. Как може да разберете кои акаунти в домейна са заключени в текущия момент? Помислете! Ако отговорът е „не знам“, по-долу може да откриете не един, а два отговора.
Първият начин е постижим само с конзолата Administrative Center на Windows Server 2008 R2. Отворете си конзолата, изберете “Global Search” от левия панел, след което през бутона „Add Criteria“ селектирайте и добавете филтъра „Users with enabled but locked account“. Това, което ви остава, е просто да натиснете бутона “Search” и да видите кой от вашите потребители ще ви позвъни скоро.
Вторият начин да визуализирате всички заключени акаунти е чрез използването на “Saved Query“, налични в базата на Administrative Center, а именно добре познатата ни Active Directory Users and Computers конзола. За създаването на подобна, запаметена заявка, кликнете с десния бутон върху Saved Queries секцията и изберете “New->Query”, именувайте го подходящо (например All lock out user accounts), изберете като Query root: вашия домейн или пък организационна единица, за която отговаряте, и натиснете бутона „Define Query“. В новопоявилия се прозорец “Find custom search”, изберете Custom Search в падащото меню “Find” и от там таба Advenced. Накрая в текстовото поле “Enter LDAP query:” копирайте следния текст и натиснете OK два пъти:
(&(&(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(lockoutTime>=129732784060840000))))
По-лесният начин е да свалите това файлче и да го импортирате като готово Saved Query в Active Directory Users and Computers.
Оттук нататък, когато кликнете върху новосъздадената, запазена заявка пред вас ще се визуализират всички заключени акаунти в домейна (или конкретно OU), а вие сте си спестили време за търсене в организационната структура на вашия домейн.
Дарин Йончев, старши инструктор в New Horizons
Сертифициран CHFI, CEH, MCT, MCITP, MCSE Security, CompTIA Security+. Гост-лектор в „Дни на Майкрософт” през 2007, 2008, 2011 и 2012 година.
Личен блог
$Event=get-eventlog -log security | where {$_.eventID -eq 4740} | Sort-Object index -Descending | select -first 1
$MailBody= $Event.message
$MailSubject= „User Account locked out“
$SmtpClient = New-Object system.net.mail.smtpClient
$SmtpClient.host = „smtp.domain.com“
$MailMessage = New-Object system.net.mail.mailmessage
$MailMessage.from = „AcctLockNotify@domain.com“
$MailMessage.To.add(„helpdesk@domain.com“)
$MailMessage.IsBodyHtml = 1
$MailMessage.Subject = $MailSubject
$MailMessage.Body = $MailBody
$SmtpClient.Send($MailMessage)
Интересен и определено полезен скрипт. Чудесно би се комбинирал с възможността за прикрепяне на задача към събитие ( десен клик върху събитието и Attach Task To This Event). Същото нещо без PowerShell може да се реализира и така – >. http://blogs.technet.com/b/jhoward/archive/2010/06/16/getting-event-log-contents-by-email-on-an-event-log-trigger.aspx
Полезно!
Също така, възможна причина за account lock е malicious software в мрежата, който прави brute force.
Друг подход към проблема е, да се изключи този механизъм чрез GPO или пък да се променят стойностите на броячите и таймерите, така че да се „отсеят“ потребителите, които си грешат паролата, но да се запази ефективностп при brute force атаки или саботаж.
Като при изключване на механизма за заключване, задължително се повишава нивото на сложност на паролите.
Току що тествах конзолата….открих странен ефект. избрах филтър за users with enabled but locked account и резултата бяха 4 потребителя. след това ползвах генерираната LDAP query и резултата беше 13 потребителя. Каква е разликата ли ? ами 4-те акаунта са заключени на домейн контролера на който пуснах конзолата. т.е. конзолата не дава много вярна представа