我们曾遇到过 Exchange 帐户被盗用而发送大量未经请求的电子邮件的问题。我们通过使用云电子邮件网关缓解了这个问题,该网关在检测这些外发邮件方面做得更好,不会损害我们的电子邮件声誉。
然而,我们仍然希望检测任何异常的电子邮件活动。一个想法是报告发送邮件最多的 Exchange 帐户。
有办法做到这一点吗?或者是否有类似的统计数据表明帐户已被盗用?
答案1
我今天想出了这个 PS 脚本,它可以完成以下工作:
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
$output = Get-TransportServer | Get-MessageTrackingLog -Start (get-date).AddDays(-1) -EventID "SEND" -ResultSize Unlimited | Group-Object -Property Sender | %{ New-Object psobject -Property @{Sender=$_.Name;Recipients=($_.Group | Measure-Object RecipientCount -Sum).Sum}} | Where-Object {$_.Recipients -gt 100} | Sort-Object -Descending Recipients | Format-Table -AutoSize Sender,Recipients | Out-String
Send-MailMessage -From [email protected] -Subject "Exchange senders report: $(Get-Date -UFormat '%a, %D')" -To [email protected] -Body $output -SMTP mail.example.com
基本上,它会向我们发送一份报告,其中包含过去 24 小时内向超过 100 名用户发送过电子邮件的所有人。
然后我将其设为每日计划任务。这似乎很有效。