Sender Rewriting Scheme (SRS) in Exchange Online

Hallo zusammen,

Kürzlich habe ich mich mit dem Sender Rewriting Scheme (SRS) auseinandergesetzt. In diesem Artikel beschreibe ich meine Erkenntnisse.

Bisschen schade ist, dass Microsoft vom "P1 From" spricht. Erklärt dann aber, dass es sich um das Envelope From handelt.

Sender Rewriting Scheme (SRS) in Office 365
https://docs.microsoft.com/en-us/office365/troubleshoot/antispam/sender-rewriting-scheme

Sender Rewriting Scheme (SRS) coming to Office 365 (06-15-2018)
https://techcommunity.microsoft.com/t5/exchange-team-blog/sender-rewriting-scheme-srs-coming-to-office-365/bc-p/2237609#M30033

Sender Rewriting Scheme
https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme

Grundlagen

Emails sind wie bei einem Brief aufgebaut. Es gibt den Umschlag mit Absender und Empfänger. Das ist das, was der Postbote oder eben der Mailserver für die Zustellung benutzt. Gegenüber dieser Absenderadresse wird dann auch der SPF Record (Sender Policy Framework) geprüft.

Dann gibt es noch den Brief oder eben den Header. Das ist der Absender und Empfänger im Briefkopf oder eben das, was der Mailclient (beispielsweise Outlook) darstellt.

Konkret sind die folgenden Attribute für den Umschlag (also für den Mailserver)

mail from:
rcpt to:
Die folgenden Attribute werden vom Mailclient benutzt (beispielsweise Outlook)
From:
To:
Reply-To:

Bildquelle: https://www.proofpoint.com/de/corporate-blog/post/how-does-email-spoofing-work-and-why-it-so-easy

Tests mit Exchange Online

Ich habe das ganze mal mit Exchange Online geprüft und die verschiedenen Arten von Weiterleitungen ausprobiert.

SMTP Forwarding

Als erstes habe ich das SMTP Forwarding gesetzt

Set-Mailbox m.muster@icewolf.ch -ForwardingSMTPAddress "smtp:andres.bohren@isolutions.ch"
Get-Mailbox m.muster@icewolf.ch | fl *Forward*

Authentication-Results: spf=pass (sender IP is 40.107.13.129)
 smtp.mailfrom=icewolf.ch; isolutions.ch; dkim=pass (signature was verified)
 header.d=icewolfch.onmicrosoft.com;isolutions.ch; dmarc=fail action=none
 header.from=isolutions.ch;compauth=pass reason=130
From: Andres Bohren <Andres.Bohren@isolutions.ch>
To: "m.muster@icewolf.ch" <m.muster@icewolf.ch>
Subject: Forward SMTP
Return-Path: Max.Muster@icewolf.ch

Forwarding mit MailContact

Get-Contact -Identity aboIsol | fl Identity, RecipientTypeDetails, WindowsEmailAddress
Set-Mailbox m.muster@icewolf.ch -ForwardingAddress aboIsol -ForwardingSMTPAddress $Null

Authentication-Results: spf=pass (sender IP is 40.107.8.100)
 smtp.mailfrom=icewolf.ch; isolutions.ch; dkim=pass (signature was verified)
 header.d=icewolfch.onmicrosoft.com;isolutions.ch; dmarc=fail action=none
 header.from=isolutions.ch;compauth=pass reason=130
From: Andres Bohren <Andres.Bohren@isolutions.ch>
To: "m.muster@icewolf.ch" <m.muster@icewolf.ch>
Subject: Forward to Mailcontact
Return-Path: Max.Muster@icewolf.ch

Weiterleitung über Exchange Transport Rule

Zuerst müssen natürlich mal die bestehenden Forwardings gelöscht werden.

Set-Mailbox m.muster@icewolf.ch -ForwardingAddress $null -ForwardingSMTPAddress $null
Get-Mailbox m.muster@icewolf.ch | fl *Forward*

Dann habe ich eine Exchange Transport Regel erfasst

Hier wird der SRS Header im Return-Path gesetzt. Allerdings sind maximal 600 Transport Rules möglich.

Authentication-Results: spf=pass (sender IP is 40.107.4.120)
 smtp.mailfrom=icewolfch.onmicrosoft.com; isolutions.ch; dkim=pass (signature
 was verified) header.d=icewolfch.onmicrosoft.com;isolutions.ch; dmarc=fail
 action=none header.from=isolutions.ch;compauth=pass reason=130
From: Andres Bohren <Andres.Bohren@isolutions.ch>
To: "m.muster@icewolf.ch" <m.muster@icewolf.ch>
Subject: Forward Transport Rule
Return-Path: bounces+SRS=DvlLD=JD@icewolfch.onmicrosoft.com

Weiterleitung über eine Verteilerliste mit externen Teilnehmern

Ich habe eine Verteilerliste erstellt mit dem externen Mail User als Mitglied

Damit ich von Extern an die Verteilerliste senden kann, muss man dies noch hier einstellen

Auch hier wird der SRS Header im Return-Path gesetzt.

Authentication-Results: spf=pass (sender IP is 40.107.13.97)
 smtp.mailfrom=icewolfch.onmicrosoft.com; isolutions.ch; dkim=pass (signature
 was verified) header.d=icewolfch.onmicrosoft.com;isolutions.ch; dmarc=fail
 action=none header.from=isolutions.ch;compauth=pass reason=130
From: Andres Bohren <Andres.Bohren@isolutions.ch>
To: "GroupWithExternalMembers@icewolf.ch"
 <GroupWithExternalMembers@icewolf.ch>
Subject: Test Forwarding Group 3
Return-Path: bounces+SRS=DvlLD=JD@icewolfch.onmicrosoft.com

Outlook Regeln

Das Forwarding mit den Outlook Regeln hat nicht geklappt, wie man auf den folgenden Screenshots sehen kann

Fazit

Wie ich in meinen Tests festgestellt habe, wird der SRS Header nur bei den Transport Rules und den Verteilerlisten gesetzt. Bei der SMTP und MailContact/MailUser Weiterleitung wird der Header schon anderweitig umgeschrieben, so dass SRS nicht mehr notwendig ist.

Man kann dazu absolut nichts konfigurieren. Funktioniert einfach so out of the Box. Aber dann doch nicht ganz so, wie in den beiden ersten Links beschrieben.

Liebe Grüsse
Andres Bohren