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/Blocklists 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.
Daten im Postfach
Die Einstellungen in Outlook landen im einem versteckten Bereich des Postfachs beim Benutzer. Diese Einstellungen kann auch ein Administrator per PowerShell ansehen und sogar ändern:
# Anzeigen der aktuellen Einstellungen Get-MailboxJunkEmailConfiguration ` -Identity testsafelink@uclabor.de Enabled : True TrustedListsOnly : False ContactsTrusted : True TrustedSendersAndDomains : {} BlockedSendersAndDomains : {xxxxx}, TrustedRecipientsAndDomains : {} MailboxOwnerId : msxfaq.net/user/testsafelink IsValid : True # Die Anzahl der Einträge kann auch ermittelt werden $temp.BlockedSendersAndDomains.Count: 15 C:\>get-mailbox testsafelink@uclabor.de | fl MaxSafeSenders,MaxBlockedSenders MaxSafeSenders : MaxBlockedSenders :
Standardmäßig können Benutzer bis zu
5.000 sichere Absender und 500 blockierte Absender
konfigurieren
Quelle: Verwenden der Exchange-Verwaltungsshell zum
Konfigurieren von Grenzwerten für die Erfassung von Listen
sicherer Adressen für Postfächer
https://docs.microsoft.com/de-de/Exchange/antispam-and-antimalware/antispam-protection/safelist-aggregation-procedures
In Exchange Online gelten andere Grenzwerte:
Safe sender limit: 1,024 Blocked sender limit: 500
- What is the safe and blocked sender
limits in Exchange Online
https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/safe-sender-and-blocked-sender-lists-faq#what-is-the-safe-and-blocked-sender-limits-in-exchange-online
Über den Weg könnten zentral auch Einträge verwaltet werden.
# zentrale Pflege Set-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>
- Get-MailboxJunkEmailConfiguration
https://docs.microsoft.com/de-de/powershell/module/exchange/antispam-antimalware/get-mailboxjunkemailconfiguration - Set-MailboxJunkEmailConfiguration
https://docs.microsoft.com/de-de/powershell/module/exchange/antispam-antimalware/Set-MailboxJunkEmailConfiguration - What is the safe and blocked sender
limits in Exchange Online
https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/safe-sender-and-blocked-sender-lists-faq#what-is-the-safe-and-blocked-sender-limits-in-exchange-online - Verwenden der Exchange-Verwaltungsshell
zum Konfigurieren von Grenzwerten für die
Erfassung von Listen sicherer Adressen für
Postfächer
https://docs.microsoft.com/de-de/Exchange/antispam-and-antimalware/antispam-protection/safelist-aggregation-procedures
Vom Anwender zum Spamfilter
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 vorliegen, die über den MX-Record von extern angesprochen werden.
In das Postfach kann aber ein Edge Server oder auch ein anderer Spamfilter nicht schauen und es würde auch viel zu lange dauern. Aber auch ein Anwender hat natürlich keinen direkten Zugriff auf diese Systeme. Daher kommt hier eine Replikation zum Einsatz, um die Daten aus den Postfächern bereit zu stellen.
- 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. - 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. - 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. - 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 gefüllt wird.
Safelist collection entries are hashed
(SHA-256) one way before they are stored as array sets
across three user object attributes, msExchSafeSenderHash,
msExchSafeRecipientHash, and msExchBlockedSendersHash, as a
binary large object. When data is hashed, an output of fixed
length is produced, and the output is likely to be unique.
For hashing of safelist collection entries, a 4-byte hash is
produced
Quelle: Safelist aggregation
https://docs.microsoft.com/en-us/exchange/antispam-and-antimalware/antispam-protection/safelist-aggregation
ADFelder
Wer also 1000 Einträge hat, produziert 4000 Byte Binärdaten in dem jeweiligen Feld. In dem Zuge lohnt sich mal ein Blick ins Schema zu den drei LDAP-Feldern, in denen die Hashwerte landen:
Feld | msExchSafeSenderHash | msExchSafeRecipientsHash | msExchBlockedSenderHash |
---|---|---|---|
Type |
Octet String |
Octet String |
Octet String |
Feldgröße in Bytes |
1-32000 |
1-12000 |
1-4000 |
Max Felder mit 4 Bytes Hash |
8000 |
3000 |
1000 |
Schema |
|
|
|
Limits in Exchange Online |
1024 |
? |
500 |
Default in Exchange On Prem |
5000 |
|
500 |
Fragen Sie mich bitte nicht, warum alle drei Felder unterschiedlich groß sind. Vieleicht hat es etwas mit "Datensparsamkeit" zu tun.
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. Auch MIM hat durchaus Probleme mit den drei Feldern, da diese größer sind als die korrespondierenden Metaverse-Felder in der SQL-Datenbank von MIM/FIM
- What is the safe and blocked sender
limits in Exchange Online?
https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/safe-sender-and-blocked-sender-lists-faq#what-is-the-safe-and-blocked-sender-limits-in-exchange-online - Safelist aggregation
https://docs.microsoft.com/en-us/exchange/antispam-and-antimalware/antispam-protection/safelist-aggregation - Safelist aggregation procedures
https://docs.microsoft.com/en-us/exchange/antispam-and-antimalware/antispam-protection/safelist-aggregation-procedures - Configure Content Filtering to Use Safe
Domain Data
https://docs.microsoft.com/en-us/Exchange/configure-content-filtering-to-use-safe-domain-data-exchange-2013-help - Troubleshooting GALSync:
mv-constraint-violation (msExchSafeSenderHash)
https://social.technet.microsoft.com/wiki/contents/articles/10733.troubleshooting-galsync-mv-constraint-violation-msexchsafesenderhash.aspx - Octed String
https://tools.ietf.org/html/rfc4517#section-3.3.25
Deine Mail will ich nicht!
Es ist nicht einfach ein "Allowlisting" 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
- EWSEditor
- Intelligent Message Filter
- Add recipients of my email messages to
the Safe Senders List
https://support.office.com/en-us/article/add-recipients-of-my-email-messages-to-the-safe-senders-list-be1baea0-beab-4a30-b968-9004332336ce - Overview of the Junk Email Filter
https://support.office.com/en-us/article/overview-of-the-junk-email-filter-5ae3ea8e-cf41-4fa0-b02a-3b96e21de089 - Listen sicherer und blockierter Absender
in Exchange Online
https://docs.microsoft.com/de-de/office365/securitycompliance/safe-sender-and-blocked-sender-lists-faq - Sender filtering
https://docs.microsoft.com/en-us/Exchange/antispam-and-antimalware/antispam-protection/sender-filtering?view=exchserver-2019 - Prevent email from being marked as spam
in Office 365 and Exchange Online Protection
https://docs.microsoft.com/en-us/office365/securitycompliance/prevent-email-from-being-marked-as-spam-0 - Office 365 Exchange Hybrid DIRSYNC write-back
attributes and permissions
https://blog.msresource.net/2013/01/27/office-365-exchange-hybrid-dirsync-write-back-attributes-and-permissions/
AADConnect aktualisiert das Feld auch “On-Premises”, z.B. wenn das Postfach in der Cloud liegt und über einen lokalen Edge gefiltert wird (Centralized Mail Routing) - Vorgehensweisen zur Aggregation von
Listen sicherer Adressen
https://docs.microsoft.com/de-de/exchange/antispam-and-antimalware/antispam-protection/safelist-aggregation-procedures?view=exchserver-2019 - „Update-Safelist“
https://docs.microsoft.com/en-us/powershell/module/exchange/antispam-antimalware/update-safelist?view=exchange-ps - Attributes for Exchange Online aren't
written back to the On-Premises Active
Directory directory service in an Exchange
hybrid deployment
https://support.microsoft.com/de-de/help/2406830/attributes-for-exchange-online-aren-t-written-back-to-the-On-Premises