Неудачные попытки входа в Windows настраиваем уведомления.

Описание: В этом руководстве мы рассмотрим, как настроить автоматическую отправку уведомлений на электронную почту при неудачной попытке входа в систему Windows. Это поможет повысить безопасность ваших компьютеров и серверов, оперативно реагируя на возможные попытки взлома.

Привет! В сегодняшней статье вы узнаете, как включить уведомления по электронной почте о неудачных попытках входа в Windows. Это особенно полезно для администраторов и владельцев серверов, которые хотят отслеживать потенциальные угрозы и своевременно реагировать на подозрительные действия.

Мы покажем простой и эффективный способ настройки оповещений на пользовательских ПК и серверных системах Windows, используя встроенные средства, такие как журнал событий (Event Viewer), планировщик заданий (Task Scheduler) и скрипт для отправки e-mail.

Настройка занимает всего несколько минут, но значительно повышает уровень безопасности вашей инфраструктуры Windows.

  1. Заходим в планировщик заданий, и создаем правило со следующими параметрами.

Первая вкладка Общие

2. В разделе Триггеры, создаем новый триггер, как ниже.

В данном случаи мы будем отслеживать событие 4625, которое возникает при не удачном входе в систему.

3. Во вкладке Действия, создаём новое действия со следующими параметрами.

Программа которая будет использоваться это powershell.exe А в аргументах вводим команду -noprofile и путь до скрипта, который мы позже создадим.

4. В следующей вкладке это Условия, в ней оставляем все без изменений как на скрине ниже.

5. В пятой вкладке и в шестой, делам также как и на скрине.

6. В заключительной части, создадим скрипт который и будет запускать тогда как произойдет событие 4625.

$EmailFrom = "С_какой_почты_будут_приходить_письма"
$EmailTo = "куда_будут_приходить_письма"
$Subject = "Alert"
$Body=Get-WinEvent -FilterHashtable @{LogName="Security";ID=4625} | Select TimeCreated,@{n="User";e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq "TargetUserName"} | %{$_.'#text'}}},@{n="ComputerName";e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq "WorkstationName"}| %{$_.'#text'}}},@{n="IPAddress";e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq "IPAddress"}| %{$_.'#text'}}} | select-object -first 1
$BodyL = "`n"+$Body.TimeCreated +"`t"+ $Body.User +"`t"+ $Body.ComputerName +"`t"+ $Body.IPAddress
$Body = "`nВремя: "+$Body.TimeCreated +"`nИмя пользователя: "+ $Body.User +"`nКомпьютер-источник: "+ $Body.ComputerName +"`nIP источника: "+ $Body.IPAddress
$SMTPServer = "smtp.mail.ru"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("С_какой_почты_будут_приходить_письма", "пароль_от_этой_почты");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

Я пробовал с яндекса не отправляется письма, но с mail.ru все в порядке.

Данный скрипт можно написать в обычном блокноте с расширением .ps1 , сохранив его в любом месте на диске и указав его в планировщике задач.

Также его тестовое можно вставить в терминал powershell.exe и запустить что бы убедиться в том что он отрабатывает как надо. Имейте ввиду что у вас должна быть событие 4625.

Если вы ранее не запускали какие либо скрипты в powershell и у вас при выполнение в терминале возникает ошибка.

Вам нужно запустить команду, для разрешения выполнения скриптов powershell

Set-ExecutionPolicy Unrestricted

После запуска команды вам будет предложено подтвердить изменение политики выполнения. Нажав на Y

На этом все, когда кто либо попытается войти на компьютер введя не верный пароль или логин, к вам на почту придет сообщение. Особенно это удобно использовать на сервере. Где можно определить с какого ip адреса была сделана попытка входа.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.