Benachrichtigung bei Quarantäne in Exchange Online
Exchange Online verwendet einen ausgereiften Spamfilter, um unerwünschte Werbung, Phishing, Malware und sonstige Spamnachrichten herauszufiltern. Potenziell gefährliche E-Mails, wie Phishing und Malware werden hierbei nicht in dem Junk-Ordner der Empfängermailbox abgelegt, sondern in die Quarantäne verschoben. Da kein Spamfilter perfekt ist, kann es leider auch vorkommen, dass erwünschte Mails in der Quarantäne landen.
In diesem Fall wäre eine Benachrichtigung, dass eine Mail in der Quarantäne gelandet ist, hilfreich. Dies lässt sich sowohl für einen Endbenutzer als auch einen Administrator umsetzen.
Benachrichtigung der Endnutzer
In den Antispam-Einstellungen des Office 365 Security & Compliance Centers [1] lassen sich die Spambenachrichtigungen für Endbenutzer konfigurieren. Klicken Sie hierzu in der Standard-Spamfilterrichtlinie oder einer eigenen Richtlinie auf „Spambenachrichtigungen für Endbenutzer konfigurieren“. Hier kann definiert werden, in welchem Intervall (in Tagen) die Benachrichtigung an Endnutzer versendet werden soll.
Benachrichtigung der Administratoren
Soll die Benachrichtigung über die Quarantäne lediglich den Administratoren und nicht den Endnutzern zugestellt werden, muss ein Skript verwendet werden, da Microsoft hierfür keine Funktion bereitstellt. Das Skript kann dann auf einem Server als Scheduled Task beispielsweise jeden Morgen um 7 Uhr ausgeführt werden.
Ein Skript, das an die Administratoren die Mails in der Quarantäne zusendet, kann dabei wie folgt aussehen:
$password = "password als secure string"
$username = "absender@domain.com"
$mailrecepient = "admins@domain.com"
$subject = "Quarantine LOG"
$message = "Die folgenden Nachrichten befinden sich in der Quarantaene:"
$header = @"
<style>
TABLE {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;}
TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@
#Script
$password = ConvertTo-SecureString $password
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $password
Connect-ExchangeOnline -Credential $credential
$quarantine = Get-QuarantineMessage
if ($quarantine -eq $null) {
return
}
$html = $quarantine | select SenderAddress,RecipientAddress,Subject,ReceivedTime,Size,Type | ConvertTo-Html -Body $message -Head $header
$html = [string]::Join([string]::Empty,$html)
$sendMailParams = @{
From = $username
To = $mailrecepient
Subject = $subject
Body = $html
BodyAsHtml = $true
SMTPServer = 'smtp.office365.com'
Port = 587
UseSsl = $true
Credential = $credential
}
Send-MailMessage @sendMailParams
Hierzu bietet es sich an, für die Absenderadresse eine Shared Mailbox zu erstellen, die keinem Benutzer zugeordnet ist. Dadurch wird im Azure Active Directory ein Benutzer erstellt, dessen Passwort nun gesetzt werden kann. Es wird keine Exchange Online Lizenz für den Benutzer benötigt. Des Weiteren muss dem Benutzer die Berechtigung „Exchange Administrator“ erteilt werden, damit die Quarantäne ausgelesen werden kann. Das Passwort muss hierzu auf dem Computer und mit dem Benutzer, mit dem der Task ausgeführt werden soll, verschlüsselt werden.
Dies kann mit folgendem Powershell-Befehl erreicht werden - die Ausgabe des Befehls ist das verschlüsselte Passwort:
ConvertTo-SecureString -AsPlainText Passwort -Force | ConvertFrom-SecureString
Das obige Skript meldet sich direkt bei den SMTP-Servern von Office365. Damit dies funktioniert, muss die Funktion „Microsoft Security Defaults“ deaktiviert sein. Ist dies nicht gewünscht, so muss – wie in [2] beschrieben – ein SMTP-Relay verwendet werden. Des Weiteren muss auf dem Computer, auf dem das Skript ausgeführt werden soll, das Exchange Online Powershell v2 Modul [3] installiert sein.
[1] https://protection.office.com/antispam
[3] https://www.powershellgallery.com/packages/ExchangeOnlineManagement/1.0.1
MEHR BLOG-KATEGORIEN
- ASP.NET
- Active Directory
- Administration Tools
- Allgemein
- Backup
- ChatBots
- Configuration Manager
- DNS
- Data Protection Manager
- Deployment
- Endpoint Protection
- Exchange Server
- Gruppenrichtlinien
- Hyper-V
- Intune
- Konferenz
- Künstliche Intelligenz
- Linux
- Microsoft Office
- Microsoft Teams
- Office 365
- Office Web App Server
- Powershell
- Remote Desktop Server
- Remote Server
- SQL Server
- Sharepoint Server
- Sicherheit
- System Center
- Training
- Verschlüsselung
- Virtual Machine Manager
- Visual Studio
- WSUS
- Windows 10
- Windows 8
- Windows Azure
- Windows Client
- Windows Server
- Windows Server 2012
- Windows Server 2012R2
- Windows Server 2016
- Windows Server 2019
- Windows Server 2022
- Zertifikate