Если инфраструктурой домена Active Directory управляет несколько администраторов, бывает трудно отследить кто конкретно внес изменения, добавил или удалил пользователя из группы безопасности. В этой статье мы покажем, как с помощью политика аудита и скрипта PowerShell настроить отправку автоматических оповещений (по email или в мессенджер), когда новые пользователь был добавлен в одну их привилегированных (административных) групп AD (таких как Domain Admins
, Enterprise Admins
, Schema Admins
и т.д.).
Включите для контроллеров доменов политику аудита изменения в группах безопасности AD.
gpmc.msc
); Так, при добавлении пользователя в группу появится событие с EventID 4732
A member was added to a security-enabled global group.
Или EventID 4728 :
A member was added to a security-enabled local group.
В описании события видно:
Group Name: DnsAdmins
Member: Security ID:
Subject: Account Name:
Получить информацию о всех последних событиях 4732 и 4728 из Event Viewer на контроллере домена за последние 24 часа можно с помощью PowerShell командлета Get-WinEvent :
$time = (get-date) - (new-timespan -hour 24)_x000D_$result = Get-WinEvent -FilterHashtable @{logname='Security';id=4732,4728;StartTime=$Time} -ErrorAction SilentlyContinue| ForEach-Object {_x000D_ $eventXml = ([xml]$_.ToXml()).Event_x000D_ [PSCustomObject]@{_x000D_ TimeCreated = $eventXml.System.TimeCreated.SystemTime -replace '.d+.*$'_x000D_ NewUser = $eventXml.EventData.Data[0]."#text"_x000D_ Group = $eventXml.EventData.Data[2]."#text"_x000D_ Admin = $eventXml.EventData.Data[6]."#text"_x000D_ Computer = $eventXml.System.Computer_x000D_ }_x000D_}_x000D_ $result | Format-Table -AutoSize _x000D_
В результатах скрипта будет отображаться имя группы AD, которая изменилась, какая учетная запись была добавлена и кто из администраторов добавил пользователя в группу (скрипт по примеру из статьи Получение списка пользователей AD, созданных за 24 часа ).
Чтобы отфильтровать изменения только в привилегированных группах пользователей, создайте переменную:
$AdminGroups = @('Enterprise Admins', 'Domain Admins', 'DNSAdmins', 'Microsoft Exchange Servers')
Теперь нужно найти только те события, в которых были изменены привилегированные группы:
$filteredevents=$result | Where-Object { $_.Group -in $AdminGroups }
Теперь нужно отправить администраторам уведомление об изменении привилегированных групп в AD. Можно отправить email с помощью командлета Send-MailMessage
If ($filteredevents)_x000D_{_x000D_ $mailbody= $filteredevents|ConvertTo-Html_x000D_ {Send-MailMessage -SmtpServer msg01 -From [email protected] -To [email protected] -Subject "Были внесены изменения в административные группы AD!" -Body $mailbody -Priority High}_x000D_}_x000D_
Или вы можете отправить оповещение в ваш мессенджер:
Если в вашем домена несколько контроллеров домена, такой скрипт нужно запускать на каждом из них. Дело в том, что события изменение членства группы логгируется на контроллере домена, к которому подключена ваша оснастка ADUC или консоль PowerShell с командой Add-ADGroupMember (обычно это текущий Logon Server ). Поэтому нужно проверить каждый DC на наличие указанных событий. Вы можете перебрать в цикле все контроллеры домена:
$DCs = Get-ADDomainController -Filter *
foreach ($DC in $DCs){
Get-WinEvent -ComputerName $DC -FilterHashtable …
…
}
Но удобнее создать на всех DC задание планировщика, которое будет запускать ваш PowerShell скрипт по расписанию.
\remontka.locNETLOGON
); Daily
, Start a program
C:WINDOWSsystem32WindowsPowerShellv1.0powershell.exe
-ExecutionPolicy Bypass -command "& \remontka.locNETLOGONCheckADAdminsGroups.ps1"
В доменных инфраструктурах с большим количеством контроллеров домена и администраторов можно развернуть централизованную система сбора логов со всех DC (ELK, GrayLog, splunk, и т.д)
Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…