Safe Sender List

Schon Exchange 2003 hat mit dem Intelligent Message Filter einen eingebauten Spamfilter, der auch in den nachfolgenden Versionen vorhanden ist und mit der Cloud-Strategie als "Exchange Online Protection" sogar in der Cloud vorhanden ist. On-Premises hat Microsoft als Relay in der DMZ die Exchange Edge-Server vorgesehen. Mit der Safe Sender List gibt es einen Weg, mit der ein Anwender bestimmte Absender-Adressen oder Absender-Domänen explizit erlauben oder verbieten kann. Es gibt also immer unerwünschte Mails, die durchkommen.

Ich halte natürlich nicht so viel von durch Anwender gepflegte White/Blacklists aber die Funktion ist da und kann genutzt werden.

Das sehen sie in Outlook

Wenn Sie auf eine Mail im Posteingang das Kontext-Menü öffnen, dann finden Sie folgenden Eintrag:

Die Junk-E-Mail-Optionen erlauben dann neben der generelle Filterung auf dem Client auch Verwaltung der sicheren und blockierten Absendern.

Diese Einstellungen kann übrigens auch ein Administrator per PowerShell ansehen und ändern

# Anzeigen der aktuellen Einstellungen
Get-MailboxJunkEmailConfiguration `
   -Identity user1@uclabor.de

# zentrale PflegeSet-MailboxJunkEmailConfiguration `
   -Identity user1@uclabor.de `
   -BlockedSendersAndDomains @{Add=" @example1.com"} `
   -TrustedSendersAndDomains @{Add="msxfaq.de","newsletter@uclabor.de"} 

#Anpassen der Obergrenzen
Set-Mailbox `
   -Identity user1@uclabor.de `
   -MaxSafeSenders <Integer> 
   -MaxBlockedSenders <Integer>

Über den Weg könnten zentral auch Einträge verwaltet werden.

Vom Anwender zum Edge

Interessant ist nun die Funktionsweise zu verstehen. Wenn Anwender diese Funktion nutzen, dann sollte Sie ja auch funktionieren. Wenn ein Anwender eine Mail von einem bestimmten Absender nicht empfangen möchte, dann sollte der Einlieferungsversuch möglichst früh unterbunden werden. Die Information muss daher auf den Servern ankommen, die über den MX-Record von extern angesprochen werden.

Da der Anwender natürlich keinen direkten Zugriff auf diese Systeme hat, muss es eine Technik geben, diese Information vom Anwender zum Postfach zu bekommen. Exchange nutzt dazu das Postfach, da Active Directory und eine Replikation zu den TransportServern oder Edge-Servern

  1. Benutzer verwaltet Daten im Postfach
    Dazu gibt es im Postfach einen versteckten Ordner, den der Anwender selbst in Outlook aber nicht sieht. Im Postfach selbst stehen die Mailadresse und Domänen noch in lesbarer Form für den Anwender. Hier sind bis zu 1024 Einträge möglich.
  2. Exchange überträgt ins AD-Feld
    Die Daten aus dem Postfach werden durch den Exchange Prozess "Junk Email Options mailbox assistant" asynchron in das AD-Feld beim Benutzer übertragen. Dabei werden Hash-Werte ((SHA-256) mit 4 Byte Länge pro Adresse gebildet und in den Feldern msExchSafeSenderHash, msExchSafeRecipientHash, und msExchBlockedSendersHash ablegt.
  3. Edge-Sync
    Die Werte im AD werden durch den Transport-Server direkt genutzt. In Verbindung mit einem Edge-Server werden Sie durch den Edge-Sync-Prozess in die DMZ übertragen.
  4. AADConnect
    Wenn Sie Office 365 oder Exchange Online Protection nutzen, dann überträgt AADConnector auch diese Felder in beide Richtungen.

In dem Bild haben ich alle drei Exchange Transport-Services parallel eingezeichnet. In den Firmen gibt es natürlich meist nur einen eingehende Weg. Die normale Exchange Hub/Transport-Rolle nutzt direkt das Active Directory während ein Exchange Edge-Server natürlich die lokale ADAM-Instanz nutzt, die durch EdgeSync befüllt wird.

Die Information wird aber auch über AzureAD-Connect in die Cloud repliziert. Es gibt ja auch Firmen, die "Exchange Online Protection" als vorgelagerten Spamfilter nutzen.

Deine Mail will ich nicht!

Es ist nicht einfach ein "Whitelisting" zu prüfen, wenn Sie nicht selbst gerade eine Mail einliefern, die von Exchange üblicherweise geblockt würde. Aber es ist möglich einen Absender zu blocken und dann vorzugeben, dieser Absender zu sein. Bei dem Versuch eine Mail an Exchange zuzustellen, bekommt der Absender dann z.B. diese Meldung.

5.7.107 Recpient not on bypass list, your IP has been found on a block list (in reply to RCPT TO command)

Die Meldung ist eine permanente Meldung, d.h. der einliefernde Mailserver wird keine weitere Zustellung versuchen. Zudem sehen Sie hier natürlich auch, dass deine White-List sogar einen RBL-Eintrag überstimmen könnte.

3rd Party

Mit Exchange und Outlook stellt Microsoft schon eine robuste Plattform bereit, über die Informationen zu White/Block-Lists letztlich auf jedem DomainController vorliegen. Es ist technisch überhaupt kein Problem, dass auch Drittprodukte diese Felder auswerten oder in ihre eigene Datenbank übertragen. Sie Müssen einfach nur nach allen Objekten mit diesen Feldern suchen und diese Informationen samt der SMTP-Adressen des Empfänger exportieren.

Aktuell kenne ich aber noch kein 3rd Party Produkt, welches diese Information weiter verwendet. Wir haben mit NoSpamProxy aber einen Kunden, der sich einfach ein eigenes PowerShell-Script entwickelt, hat, um die Daten aus dem lokalen Active Directory auszulesen und über die NoSpamProxy-API in den  Level-of-Trust-Filter zu integrieren. Der Export ist ja relativ einfach

Get-Mailbox | Get-MailboxJunkEmailConfiguration | select -ExpandProperty TrustedSendersAndDomains)

Allerdings sollten sie hier zur Sicherheit natürlich die Verbindung zur Mailbox herstellen, nicht dass die Sperre einer Adresse oder Domäne durch einen Benutzer gleich auf die gesamte Firma angewendet wird. Auch sollten Sie beim ersten Durchlauf die Daten kontrollieren. Anwender können hier ja "Freitext" eingeben und Sie sollten daher schon sicherstellen, dass Sie gültige Werte an ihren Spamfilter weiterreichen.

Weitere Links