Аудит действий пользователей в почтовых ящиках Exchange и Microsoft 365

С помощью механизма аудита on-prem Exchange Server и облачном Exchange Online (Microsoft 365) вы можете отслеживать все действия пользователей с любыми элементами в почтовом ящике. Аудит действий пользователей в ящике поможет администратору Exchange ответить на популярный вопрос – “как найти пользователя, который удалил письмо в общем почтовом ящике”?

В этой статье мы покажем, как настроить аудит действий в ящиках Exchange Server и Microsoft 365, и выполнять поиск по событиям аудита.

Настройка аудита в ящиках Office 365 (Microsoft 365)

Сначала рассмотрим, особенности аудита в ящиках облачного тенанта Microsoft 365. Этот функционал доступен только для подписок уровня E3 и E5.

Откройте консоль PowerShell и подключитесь к своему Exchange Online с помощью модуля EXOv2:

Connect-ExchangeOnline -UserPrincipalName kbuldogov@winitpro.onmicrosoft.com -ShowProgress $true

В Exchange Online (Office 365) аудит событий по-умолчанию включен для всех тенантов с конца 2018.

Get-OrganizationConfig | Format-List AuditDisabled

Аудит можно включить/отключить в настройках каждого ящика. Выведем текущие настройки для всех ящиков:

Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq "UserMailbox"} | Select UserPrincipalName,AuditEnabled

включить аудит событий действий пользователей в ящике exchange

Как вы видите, аудит включен. Можно отключить аудит для определенного ящика:

Set-Mailbox kbuldogov -AuditEnabled $false

В Exchange есть несколько уровней аудита в ящике:

  • AuditOwner – аудит действия владельца ящика
  • AuditAdmin – аудит действий администратора
  • AuditDelegate – аудит действия сторонних пользователей, которым предоставлен доступ к почтовому ящику

В журнал аудита можно записывать следующие события:

  • Copy
  • Create
  • FolderBind
  • HardDelete
  • MailboxLogin
  • MessageBind
  • Move
  • MoveToDeletedItems
  • SendAs
  • SendOnBehalf
  • SoftDelete
  • Update
  • UpdateCalendarDelegation
  • UpdateFolderPermissions

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

Get-Mailbox kbuldogov| Select-Object -ExpandProperty AuditOwner
Get-Mailbox kbuldogov| Select-Object -ExpandProperty AuditDelegate
Get-Mailbox kbuldogov| Select-Object -ExpandProperty AuditAdmin

powershell настроить события аудита, которые нужно фиксировать в лог

Вы можете настроить, что в журнал аудита сохранялись только определенные действия, например удаление:

Set-Mailbox kbuldogov -AuditOwner HardDelete,SoftDelete

Если нужно только добавить некоторые события аудита к текущим:

Set-Mailbox kbuldogov -AuditOwner @{Add=”MailboxLogin”,”HardDelete”}

Журналы аудита хранятся непосредственно в ящике в папке Audits. Эта папка недоступна из почтового клиента Outlook или OWA.

Текущий размер журнала аудита в ящике можно получить с помощью команды:

Get-MailboxFolderStatistics -Identity AlinaV@winitpro.onmicrosoft.com | where {$_.FolderType -eq 'Audits'} | ft Identity, ItemsInFolder, FolderSize –auto

папка Audits в ящике Exchange

Аудит в почтовых ящиках Exchange Server

В on-prem Exchange Server аудит почтовых ящиков доступен с версии 2010 SP1. По умолчанию аудит ящиков отключен.

Подключитесь к своему on-prem серверу Exchange с помощью PowerShell:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://msk-exch1.winitpro.ru/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session

Вы можете включить аудит для одного почтового ящика:

Set-Mailbox kbuldogov -AuditEnabled $true

Или для всех почтовых ящиков в организации:

Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq “UserMailbox”} | Set-Mailbox -AuditEnabled $true

В ящике Exchange Server включен аудит доступа администраторов и делегатов (здесь настройки по-умолчанию другие, чем в Exchange Online). Аудит действий владельца отключен. Включение аудита всех событий для владельца ящика может сильно увеличить размер журнала. Лучше всего включить выборочный аудит некоторых действий (например, удаления, перемещения):

Set-Mailbox kbuldogov -AuditOwner SoftDelete,HardDelete,MoveToDeletedItems,Move

События аудита хранятся 90 дней, после чего они удаляются. Вы можете управлять глубиной журнала аудита (и его размером). Например, уменьшите срок хранения событий для ящика с 90 до 30 дней:

Get-Mailbox kbuldogov |select AuditLogAgeLimit
Set-Mailbox kbuldogov -AuditLogAgeLimit 30 -Force

глубина аудита в Exchange Online

Кто удалил письмо из общего ящика Exchange?

Допустим в вашей организации/тенанте Exchange, есть некий общий или персональный почтовый ящик, к которому дан доступ другим пользователям. Кто-то из пользователей удалил важное письмо из ящика и вам нужно найти кто это сделал.

Для поиска в логах аудита почтового ящика используется командлет Search-MailboxAuditLog. Командлет доступен как в наземном Exchange Server, так и в облачном Exchange Online (некоторые параметры и опции могут отличаться).

Следующая команда выведет все операции аудита, которые выполнялись с элементами в указанном общем ящике с 5 сентября:

Search-MailboxAuditLog -Identity AlinaV@winitpro.onmicrosoft.com -StartDate 9/5/2021 -ShowDetails| ft MailboxOwnerUPN, LogonType, LogonUserDisplayName, Operation,OperationResult, SourceItemSubjectsList,FolderPathName, DestFolderPathName,LastAccessed|ft

powershell командлет Search-MailboxAuditLog

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

Для поиска писем по всем ящикам Exchange используется командлет Search-Mailbox.

Вы можете более тонко отфильтровать журналы аудита. Например, мы хотим выбрать только события удаления (HardDelete, SoftDelete, MoveToDeletedItems), которые выполнялись не-владельцем ящика:

Search-MailboxAuditLog -Identity AlinaV@winitpro.onmicrosoft.com -StartDate 9/1/2021 -EndDate 9/7/2021 –LogonTypes Delegate,Admin -ShowDetails| Where-Object {$_.Operation -like "*Delete*"}|ft MailboxOwnerUPN, LogonType,LogonUserDisplayName,Operation, OperationResult,SourceItemSubjectsList,FolderPathName, DestFolderPathName,LastAccessed|ft

кто удалил письмо в общем ящике Exchange

Для асинхронного поиска по событиям аудита используется командлет New-MailboxAuditLogSearch. Он вызывает меньшую нагрузку на почтовый сервер, выполняется в фоне, позволяет более эффективно искать среди тысяч событий и отправляет результаты на указанный почтовый ящик.

Вы также можете выполнять поиск по логам аудита через Exchange Admin Center в разделе Compliance Management -> Auditing. Можно использовать отчет Run a non-owner mailbox access report или Export mailbox audit logs.

поиск по журналам аудита в Exchange Admin Center

В Exchange Online для поиска в логах можно использовать EAC (legacy способ) или новый Microsoft 365 Complicate Center (https://compliance.microsoft.com/homepage). Для поиска событий перейдите в Solutions -> Audit -> Search. Выберите даты, пользователя и тип событий которые нужно найти в разделе Exchange Mailbox Activities. В этом примере это Moved messages to Deleted Items folder, Deleted messages from Deleted Items folder)

Microsoft 365 Complicate Center поиск по событиям аудита

Вы можете выполнять поиск логов через Compliance Center с помощью командлета Search-UnifiedAuditLog.

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


Предыдущая статья Следующая статья


Комментариев: 2 Оставить комментарий

Оставить комментарий

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

Я не робот( Обязательно отметьте)