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
