The estimated reading time 3 minutes
Ein Kunde rief mich vor zwei Wochen an, dass er von Kunden das Feedback bekommen hatte, er würde komische Mails versenden. Also habe ich einen Blick in das O365 Center geworfen und im Sicherheitscenter einige interessante Entdeckungen gemacht. Einige Benutzer hatten eine Weiterleitung über eine Posteingangsregel eingerichtet, welche alle Mails zu einer Gmail Adresse weiterleiteten (die Benutzer hatten dies natürlich nicht eingerichtet). Hier mal noch ein paar Screenshots des Sicherheitscenters.
Mit diesem Wissen habe ich mich dann etwas tiefer begeben und versucht die Regeln ausfindig zu machen. Um dies zu erreichen habe ich das folgende kleine Skript geschrieben, welches alle Posteingangsregeln aller Benutzer in der Organisation auf die Weiterleitungsadresse durchsucht. Das Ergebnis wird in eine Textdatei umgeleitet.
Zunächst muss natürlich zur Exchange Online PowerShell verbunden werden siehe hierzu mein Artikel O365 Connector oder diesen LINK
Get-InboxRule -Mailbox benutzermitfalscherweiterleitungsadresse@domain.com | Where-Object {$_.ForwardTo -like "*@gmail*"} | fl
Ich wusste also dass es sich um Posteingangsregeln handelte, deshalb schrieb ich kurzer Hand die folgenden Zeilen um alle Benutzer auszulesen.
$txt = "C:\temp\inboxrules.txt" $emails = (Get-Mailbox).PrimarySMTPAddress foreach($email in $emails){ "## Mailbbox: $email" |Out-File -FilePath $txt -Encoding utf8 -Append Get-InboxRule -Mailbox $email | Where-Object {$_.ForwardTo -like "*@gmail*"} | select Name,ForwardTo,StopProcessingRules |Out-File -FilePath $txt -Encoding utf8 -Append }
In dieser Textdatei finden sich alle Posteingangsregeln von allen Benutzern welche extern etwas zur Domäne GMAIL.com weiterleiten. Wenn bei einem Postfach nichts geschrieben steht, besitzt der Benutzer auch keine Regel. Das sieht dann ungefähr so aus.
In meinem Fall hatten die Weiterleitungsregeln einen speziellen Namen „..“ also habe ich nochmals nach diesen Regeln gesucht und die beiden Textdateien miteinander verglichen.
$txt = "C:\temp\inboxrulesname.txt" $emails = (Get-Mailbox).PrimarySMTPAddress foreach($email in $emails){ "## Mailbbox: $email" |Out-File -FilePath $txt -Encoding utf8 -Append Get-InboxRule -Mailbox $email | Where-Object {$_.name -like "*..*"} | select Name,ForwardTo,StopProcessingRules |Out-File -FilePath $txt -Encoding utf8 -Append }
WICHTIG: sollte es in der O365 zu diesem genannten Problem kommen, ist es zwingend erforderlich, dass die Benutzer das Kennwort ändern. Um nun die bösartigen Weiterleitungsregeln zu löschen kann folgendes Skript verwendet werden.
$emails = (Get-Mailbox).PrimarySMTPAddress foreach($email in $emails){ Get-InboxRule -Mailbox $email | Where-Object {$_.ForwardTo -like "*@gmail*"} | Remove-InboxRule -Force }
Nach der Bereinigung habe ich nochmals das oben genannte Skript ausgeführt und diesmal keine Weiterleitungsregeln gefunden.
Nun gibt es noch die Möglichkeit im Postfach eine Weiterleitungsadresse anzulegen. Diese kann ebenfalls per PowerShell ausgelesen werden.
Get-Mailbox -ResultSize unlimited | fl Name,*forwarding*
Um dies etwas besser zu filtern können die folgenden Zeilen verwendet werden.
$searchdomain = "gmail.com" Get-Mailbox -ResultSize unlimited | Where-Object {($_.ForwardingSMTPAddress -like "*$searchdomain*") -or ($_.ForwardingAddress -like "*$searchdomain*")} | fl Name,*forward*
Sollten hier ebenfalls GMAIL Weiterleitung zu finden sein, bereinigt man diese am Besten mit folgendem Skript.
$searchdomain = "gmail.com" Get-Mailbox -ResultSize unlimited | Where-Object {($_.ForwardingSMTPAddress -like "*$searchdomain*") -or ($_.ForwardingAddress -like "*$searchdomain*")} | Set-Mailbox -ForwardingSmtpAddress $null -ForwardingAddress $null
Es kann auch vorkommen, dass einzelne O365 Postfächer für das Versenden gesperrt sind. Dies sollte aber nach der Prüfung und Bereingung innerhalb 1h wieder funktionieren. Wenn euch der Artikel gefallen hat, dann drückt auf „helpful“. Falls noch weitere Fragen und Anregungen sind, lasst mir einfach einen Kommentar da. Viel Spaß beim Entfernen.
Ich weiß der Artikel ist 3 Jahre alt und die Kommentare auch und es dient hier der Sicherheit, aber manchmal ist diese Art von Weiterleitung ja doch gewünscht nur halt von der Organisation nicht gewollt. „Händisch diese weiterleiten“, war die Antwort des Systemadmins, der keine Ausnahme für die Regel haben will. Hat einer eine Idee, wie ich das automatisch händisch mache? Wir müssen dutzende E-Mail-Postfächer „überwachen“ auf verschiedenen Organisationen, daher die Notwendigkeit. Das oben genannte Postfach wird ständig vergessen!
Hallo Hovig,
leider werde ich aus deinen Ausführung nicht ganz schlau. Willst du jetzt nun Weiterleitungen automatisiert einrichten? Verstehe auch nicht ganz welches Postfach du gemeint hast.
Bitte nochmals näher ausführen.
Danke.
Alexander
Über die O365 Powershell lässt sich auch ganz allgemein das Weiterleiten an externe Domains verbieten. Ich habe das Kommando nicht zur Hand, aber das ist vielleicht sogar die bessere Lösung.
ja das stimmt hier mal ein interessanter Link: https://blogs.technet.microsoft.com/exovoice/2017/12/07/disable-automatic-forwarding-in-office-365-and-exchange-server-to-prevent-information-leakage/
Aber die Bereinigung muss ja trotzdem gemacht werden.
Danke für den Hinweis.
Viele Grüße