Решил оформить в виде заметки на будущее, а то вроде как помню, а вроде забываю, ситуация в следующем, сейчас в компании все еще почтовый сервер на базе Exchange 2010 (Version: 14.03.0509.000) и порой с учетом заметки: "И снова User account was locked out"

стали приходить на почту сообщения вида:

Subject: Account on Domain lockout notification

Message: A user account was locked out.

Account name: <учетная запись>

Caller Computer Name: srv-mail01-cas

в этом сообщение меня насторожило, что компьютер, на котором идет блокировка учетной записи — это DNS-имя системы на которой развернут почтовый сервер.

Сперва я проверил у сотрудника, что у него действующий пароль на смартфоне при настроенном почтовом ящике, и нет просроченного, через net user <account> на домен контроллер — пароль еще действующий.

Ладно, когда такие сообщения для системных учетных записей, это по всей видимости перебирают данные авторизации, а вот когда тебе звонит начальник IT-отдела на тему, что по всей видимости перебирают пароль для генерального директора уже особо-то не отмажешься.

Ранее я оформил на этот счет заметку: "A User account was locked out через почтовый сервер", но в этот раз за текущий день более 1000 адресов, вносить их всех ну как-то неправильно. Пока ее отложим…

И тут у меня щелкнуло, я же прорабатывал, как включить логирование IMAP подключений, может что из этого выйдет.

Руководствуюсь заметкой — включаю логирование всех IMAP подключений: "Логи протокола IMAP на Exchange 2010"

и открыв через текстовый редактор лог посредством поиска по словосочетанию "LogonFailed" выхожу на строки с какими пытаются авторизоваться — это строки вида: <учетная_запись>@<domain>, но у меня не так настроена авторизация по IMAP (вид: polygon\alektest — как пример), а значит это и есть те кто пытается несанционированно подключиться. Копирую IP адреса и заношу на шлюзе в Block List.

2025-04-14T06:04:54.912Z,00000000000005E6,2,10.90.90.5:993,31.173.84.244:4505,,2,29,20,login,polygon\pantipov *****,"R=""2 NO LOGIN failed."";RpcL=-1;LdapL=-1;Msg=LogonFailed:LoginDenied"

пользователя уже нет, он уволился

2025-04-09T06:41:36.611Z,000000000000005E,2, 10.90.90.5:993,176.59.56.163:25219,,3,31,20,login,polygon\bserafimov *****,"R=""2 NO LOGIN failed."";RpcL=-1;LdapL=-1;Msg=LogonFailed:LoginDenied"

пользователя уже нет, он уволился

2025-04-21T06:54:38.414Z,00000000000000CB,2, 10.90.90.5:993,146.70.151.93:54804,,15,33,20,login,polygon\<ген_директор> *****,"R=""2 NO LOGIN failed."";RpcL=-1;LdapL=-1;Msg=LogonFailed:LoginDenied"

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

Решил, что нужен скрипт посредством которого буду включать логирование imap когда опять будут жалобы или уведомления на почту, что кто-то перебирает пароль на почту:

on srv-mail01-cas

C:\Script\exchange2010_imap_enable.ps1

#Текущая дата

$CurrentDate = get-date -format dd-MM-yyyy

#Каталог расположения бекапов

$Letter_Drive = "C:"

$BackupFolder = "Logs"

$BackupFolder2 = "Imap"

$BackupPath = $Letter_Drive + "\" + $BackupFolder + "\" + $BackupFolder2 + "\" + $CurrentDate

#Функция для создания структуры каталогов

Function CheckPath ($Path) {

$Path_Exists = Test-Path -Path $Path

If ($Path_Exists -eq $False) {

New-Item $Path -Type directory

}

}

#Создаем каталог для бекапов

CheckPath $BackupPath | Out-Null

#Импортируем модуль работы с коммандлетами Exchange 2010

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010

Set-ImapSettings -Server "srv-mail01-cas" -ProtocolLogEnabled $true -LogFileLocation $BackupPath

Restart-Service MSExchangeImap4

Get-ImapSettings -Server "srv-mail01-cas" | fl ProtocolLogEnabled, LogFileLocation

Чтобы запустить скрипт:

On srv-mail01-cas

Start - All Programs - Microsoft Exchange Server 2010 — и через правый клик мышью на "Exchange Management Shell" выбираю "Run as administrator"

и далее запускаю скрипт, как:

[PS] C:\Windows\system32>powershell -file C:\Script\exchange2010_imap_enable.ps1

WARNING: Waiting for service 'Microsoft Exchange IMAP4 (MSExchangeImap4)' to finish starting...

ProtocolLogEnabled : True

LogFileLocation    : C:\Logs\Imap\21-04-2025

Итого, выделил время и задокумментировал момент как выявить того, кто блокирует учетные записи через попытку подбора авторизации на почтовом сервере с учетом выявленных ящиков.

На этом текущая заметка завершена, с уважением автор блока ekzorchik.

От ekzorchik