Аудит поштових скриньок в Exchange.
Кожному адміністратору Exchange періодично доводиться стикатися з ситуаціями, коли необхідно визначити, хто і що зробив з елементом в поштовій скриньці. Наприклад, хтось із користувачів видалив лист із загального поштової скриньки і треба з'ясувати, хто саме. Exchange Server (починаючи з версії 2010 SP1) дозволяє реєструвати подібні дії і зберігати їх в журналі аудиту.
Журнал аудиту включається на рівні поштової скриньки. Записи журналу зберігаються в самому ящику, у вкладеній папці Audits, прихованої від користувача.
Всього є три рівня аудиту поштових скриньок:
• AuditAdmin - аудит операцій, вироблених адміністраторами поштової системи;
• AuditDelegate - аудит операцій, вироблених сторонніми користувачами, яким надано (делегований) доступ до поштової скриньки;
• AuditOwner - аудит операцій, вироблених власником ящика.
В журналі аудиту реєструються такі дії.
Copy | Повідомлення скопійовано в іншу папку. | Так | Ні | Ні |
Create | В папці Календар, Контакти, Нотатки або Завдання створений новий елемент (напр.запрошення). Створення повідомлень і папок не реєструється. | да1 | да1 | Так |
FolderBind | Папка поштової скриньки була відкрита. | да1 | да2 | Ні |
HardDelete | Елемент видалений з папки «Елементи для відновлення» (Recoverable Items) без можливості відновлення. | да1 | да1 | Так |
MailboxLogin | Користувач виконав вхід в свою поштову скриньку. | Ні | Ні | Да3 |
MessageBind | повідомлення було відкрито або переглянуто в області перегляду. | Так | Ні | Ні |
Move | Повідомлення переміщено в іншу папку. | да1 | Так | Так |
MoveToDeletedItems | Повідомлення переміщено в папку «Дистанційні». | да1 | Так | Так |
SendAs | повідомлення надіслано з використанням дозволів «Надіслати як». | да1 | да1 | Ні |
SendOnBehalf | Повідомлення надіслано з використанням дозволів «Надіслати від імені». | да1 | Так | Ні |
SoftDelete | Повідомлення видалено з папки «Дистанційні». | да1 | да1 | Так |
Update | Параметри елемента оновлені. | да1 | да1 | Так |
1 - настройка за замовчуванням, при включеному аудиті.
2 - записи дій, що виконуються делегатами, об'єднуються.За 24 години в журналі створюється одна запис для доступу до окремій папці.
3 - аудит для облікових записів власника поштової скриньки працює тільки для імен входу POP3, IMAP4 або OAuth. Він не підтримується для входу в поштову скриньку з використанням NTLM або Kerberos.
Включення і настройка
Управління аудитом поштових скриньок можливо тільки з консолі PowerShell.Для прикладу візьмемо ящик pupkin_va і подивимося його налаштування:
Get-Mailbox pupkin_va | fl audit *
Як бачите, за замовчуванням аудит відключений. Для початку включимо його:
Set-Mailbox pupkin_va -AuditEnabled $ true
Потім додамо аудит для власника ящика. При аудиті дій власника може генеруватися велика кількість подій, що вплине на розмір журналу.Тому за замовчуванням аудит для власника ящика вимкнений. Включимо його для найбільш деструктивних дій, пов'язаних з перенесенням або видаленням повідомлень:
Set-Mailbox pupkin_va -AuditOwner Move, MoveToDeletedItems, SoftDelete, HardDelete
Ну і для того, щоб зменшити розмір журналу , скоротимо термін зберігання записів з 90 до 30 днів:
Set-Mailbox pupkin_va -AuditLogAgeLimit 30 -Force
Потім ще раз перевіримо настройки.
При бажанні можна вивести кожну настройку окремо. Для прикладу виведемо настройки аудиту для власника ящика:
Get-Mailbox pupkin_va | select -ExpandProperty AuditOwner
Цікавий факт - максимальний термін зберігання записів в журналі становить 24 855 днів, т.е. приблизно 68 років. А якщо точніше, то фактичний максимум становить 24 855 днів, 3 години, 14 хвилин і 7 секунд (24855.03: 14: 07). При спробі перевищити це значення буде видана помилка.
Як я вже говорив, журнал аудиту зберігається в самому ящику, в папці Audits, яка розташована в розділі Recoverable Items (Елементи з можливістю відновлення).Папка прихована від користувачів і переглянути її вміст звичайними способами неможливо (та й нема чого). Оцінити розмір папки Audits і кількість записів в ній можна з командного консолі Exchange, приблизно такою командою:
Get-MailboxFolderStatistics -Identity pupkin_va | where {$ _. Name -eq "Audits" -and $ _. FolderType -eq "Audits"} | ft Identity, ItemsInFolder, FolderSize -auto
Як бачите, розміри елементів аудиту не дуже великі і становлять близько 3 Кбайт.Але при активному використанні ящика цих елементів може бути досить багато, це треба враховувати при налаштуванні аудиту. До речі, простір, зайняте елементами аудиту, не входить в квоту, що виділяється поштової скриньки.
Примітка . Розділ Recoverable Items частково доступний за допомогою Microsoft Outlook і Outlook Web App (OWA) через функцію Recover Deleted Items, яка перераховує всі елементи в теці Deletions.За допомогою утиліти MFCMAPI також можна отримати доступ до деяких інших вкладених папок (напр. Purges, Versions), але не до папки Audits. Це логічно, адже інакше можна просто зайти в журнал аудиту і видалити записи, що свідчать про підозрілі дії.
Пошук в журналі аудиту
Для кожної дії в журналі аудиту генерується запис, що складається наступних полів .
Operation | Виконане дію: Copy Create FolderBind HardDelete MailboxLogin MessageBind Move MoveToDeletedItems SendAs SendOnBehalf SoftDelete Update |
OperationResult | Результат дії: Failed PartiallySucceeded Succeeded |
LogonType | Тип облікового запису для входу користувача, який виконав дію: Owner Delegate Admin |
DestFolderId | Ідентифікатор GUID папки призначення для операцій переміщення. |
DestFolderPathName | Шлях до папки призначення при операції переміщення. |
FolderId | Ідентифікатор GUID папки. |
FolderPathName | Шлях до папки. |
ClientInfoString | Відомості для ідентифікації клієнта або компонента Exchange, що виконує операцію. |
ClientIPAddress | IP-адреса комп'ютера клієнта. |
ClientMachineName | Ім'я комп'ютера клієнта. |
ClientProcessName | Ім'я процесу клієнтського додатку. |
ClientVersion | Версія клієнтського додатку. |
InternalLogonType | Тип внутрішнього користувача (співробітника організації), який виконав операцію. Для цього поля допускаються ті ж значення, що і для поля LogonType. |
MailboxOwnerUPN | Ім'я учасника-користувача (User Principal Name, UPN) власника поштової скриньки. |
MailboxOwnerSid | Ідентифікатор безпеки власника поштової скриньки (SID). |
DestMailboxOwnerUPN | Ім'я учасника-користувача власника поштової скриньки призначення, що виконує дії в кількох поштових скриньках. |
DestMailboxOwnerSid | Ідентифікатор безпеки власника поштової скриньки призначення, що виконує дії в кількох поштових скриньках. |
DestMailboxOwnerGuid | Ідентифікатор GUID власника поштової скриньки призначення. |
CrossMailboxOperation | Запис відомостей про операції, виконаної в кількох поштових скриньках (наприклад, копіювання або переміщення повідомлень в інші поштові скриньки). |
LogonUserDisplayName | Коротке ім'я користувача, який виконав вхід. |
DelegateUserDisplayName | Коротке ім'я делегованого користувача. |
LogonUserSid | Ідентифікатор безпеки користувача, який виконав вхід. |
SourceItems | Ідентифікатор ItemID елементів поштової скриньки, в якому виконано записане дію (напр.переміщення або видалення). Для дій, виконаних для декількох елементів, дане поле відображається як сукупність елементів. |
SourceFolders | Ідентифікатор GUID вихідної папки. |
ItemId | Ідентифікатор елемента. |
ItemSubject | Тема елемента (напр. повідомлення). |
MailboxGuid | Ідентифікатор GUID поштової скриньки |
MailboxResolvedOwnerName | Дозволена ( resolved) ім'я користувача поштової скриньки в форматі DOMAIN \ SamAccountName. |
LastAccessed | Час виконання дії. |
Identity | Ідентифікатор запису журналу аудиту. |
Для пошуку потрібного події в журналі аудиту є три способи.
Синхронний пошук
Синхронний пошук здійснюється за допомогою командлета Search-MailboxAuditLog. Пошук стартує відразу, результати виводяться в командній консолі Exchange. Одночасно шукати можна тільки по одному ящику.Для прикладу запустимо в тестовому ящику пошук дій власника за 7 серпня:
Search-MailboxAuditLog -Identity pupkin_va -LogonType Owner -StartDate 8/7/2019 -ShowDetails | fl Operation, OperationResult, LastAccessed, LogonUserDisplayName, * path, * subj *
З записи прекрасно видно, що власник зайшов в ящик і спочатку перемістив повідомлення в папку "Видалені", а потім видалив його остаточно.У випадку спірної ситуації цього буде достатньо, щоб з'ясувати правду. У моєму тестовому прикладі знайдено всього дві події. В реальній ситуації кількість буде набагато більше, тому краще відразу зробити висновок результатів в файл.
Асинхронний пошук
Перевагою синхронного пошуку є швидкість його роботи.Якщо вам потрібно отримати результат негайно, то це єдиний спосіб. Але плата за швидкість - це підвищене навантаження на поштовий сервер, тому на високонавантажених серверах рекомендується використовувати асинхронний пошук. На відміну від синхронного асинхронний пошук може проводитися як по одному, так і з кількох скриньок одночасно.Збір даних здійснюється у фоновому режимі, а результати надсилаються листом на вказаний ящик у вигляді вкладеного XML-файла.
Асинхронний пошук запускається за допомогою командлета New-MailboxAuditLogSearch. Для прикладу запустимо пошук дій власника для тестового ящика pupkin_va, для отримання результату вкажемо свою поштову скриньку:
New-MailboxAuditLogSearch -Name "Pupkin" -Mailboxes pupkin_va -LogonTypes Owner -StartDate 8/6/2019 -EndDate 8/9/2019 -ShowDetails -StatusMailRecipients novikov_kv @ show.ru
Скажу відразу, асинхронний пошук працює дуже нешвидко. Залежно від критеріїв пошуку і завантаженості серверів процес може займати від 30-40 хвилин до декількох годин. Подивитися прогрес і визначити хоча-б приблизний час отримання звіту можна, залишається тільки чекати і сподіватися