Решил оформить в виде заметки на будущее, а то вроде как помню, а вроде забываю, ситуация в следующем, сейчас в компании все еще почтовый сервер на базе 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.