Tags: Exchange, Microsoft 365, E-Mail
Hin und wieder müssen Systeme oder Anwendungen E-Mails über Exchange verschicken, die sich aber dafür nicht authentifizieren können. Um ihnen anonymen SMTP-Zugriff zu gewähren, richtet man einen eigenen Empfangsconnector ein und beschränkt diesen auf bestimmte IP-Adressen.
Standardmäßig verfügt Exchange über einen Empfangsconnector, der Nachrichten von anonymen Sendern akzeptiert, solange die Empfänger Mitglieder der Exchange-Organisation sind. Sollen E-Mails jedoch an externe Adressaten gehen, dann schlägt der anonyme Versand fehl.
Kandidaten für ein solches Versenden wären etwa Anwendungen, die automatisiert Reports an externe Empfänger schicken, oder Multifunktionsgeräte mit einem Scan-to-Mail-Feature.
Die Lösung kann natürlich nicht darin bestehen, allen Systemen und Benutzern zu erlauben, E-Mails anonym über einen Empfangsconnector von Exchange zu verschicken. Ein solches offenes SMTP-Relay wäre das ideale Ziel für Spammer, um ihre Junk-Mails in das Internet zu pumpen.
Berechtigungen für Konnektoren vergeben
Vielmehr richtet man für diesen Zweck einen dedizierten Empfangsconnector ein, der den anonymen Versand auf bestimmte IP-Adressen oder auf die Mitglieder in einer AD-Gruppe beschränkt.
Die Gruppenmitgliedschaft macht dann Sinn, wenn der Benutzer beispielsweise E-Mails anonym von einer Terminal-Serverfarm verschicken muss. Hier möchte man normalerweise nicht das komplette IP-Subnetz der Farm freigeben, da dies wieder Schlupflöcher für den Missbrauch öffnen würde.
Connector-Verwaltung für mehrere Exchange-Server
Wenn Sie mehrere Exchange-Server haben, beispielweise in einer DAG, so muss der Connector auf allen angelegt und dort auch gepflegt werden. Es macht keinen Sinn, diesen nur auf einem Server zu erstellen und dann für den Mail-Versand bloß den einen Exchange-Server anzusprechen. Gerade bei einer Wartung oder einem Systemausfall würden dann keine Nachrichten rausgehen.
Weiterhin empfiehlt es sich, einen DNS-Eintrag zu erstellen, über den sich die Exchange-Server gemeinsam ansprechen lassen. Es macht nämlich keinen Sinn, einen bestimmten Exchange-Server direkt zu adressieren, wenn mehrere davon sind, welche die gleiche Aufgabe erfüllen können.
Empfangsconnector konfigurieren
Zu diesem Zweck erstellen wir auf dem Exchange-Server unter Nachrichtenfluss => Empfangsconnectors einen neuen Konnektor mit der Rolle Front-End-Transport-Dienst und vom Typ Benutzerdefiniert.
Da der Exchange-Server in meinem Beispiel nur einen Netzwerkadapter hat, ist es nicht erforderlich, die Einstellung im folgenden Dialog anzupassen. Sollte der interne und externe Datenverkehr über verschiedene NICs und Subnetze laufen, kann man hierüber noch weitere Einstellungen vornehmen.
Im Dialog für die Remotenetzwerkeinstellungen geht es nun darum, welche Systeme diesen Konnektor nutzen dürfen. Per Default wären das alle, aber genau das wollen wir mit der Einrichtung dieses Konnektors verhindern. Daher muss der Eintrag gelöscht werden.
Nachdem das Feld jedoch nicht leer bleiben darf, sollte man hier die IP oder das Subnetz des ersten Systems eintragen, das über den Connector senden darf.
Im Connector selbst sollte man jetzt noch im Abschnitt Sicherheit den Haken bei anonym setzen.
PowerShell
Ein neuer Empfangsconnector lässt sich auch via PowerShell erstellen. Der zur GUI-Prozedur äquivalente Befehl würde so aussehen:
New-ReceiveConnector -Name "anonym" -TransportRole FrontendTransport `
-Custom -Bindings 0.0.0.0:25 -RemoteIpRanges 192.168.200.170
Möchte man die Berechtigung, über den Connector Mails zu versenden, auf Benutzer bzw. Gruppen einschränken, dann geht das nicht in der ECP-Konsole, sondern nur über PowerShell:
Get-ReceiveConnector "anonym" | Add-ADPermission -User "Smartsocke\SMTP-Anonym" `
-ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"
Wer weitere Eigenschaften des Empfangsconnectors verändern möchte, der kann sich mit
Get-ReceiveConnector <Name des Empfangsconnectors> | fl
einen Überblick verschaffen.
Die Berechtigungen auf den Connector können mit
Get-ReceiveConnector <Name des Empfangsconnectors> | Get-ADPermission
ausgelesen werden. Hier ist dann auch uns eben getätigter Eintrag wiederzufinden
IP-Adressen für einen Konnektor pflegen
In größeren Organisationen kann die Pflege des Connectors auf mehreren Servern etwas aufwändiger werden, wenn regelmäßig neue Anwendungen dazukommen.
Ich habe daher für diese Aufgabe folgendes Script entwickelt, welches das Hinzufügen von IP-Adressen zu einem oder mehreren Konnektoren über eine GUI erlaubt.
Nach dem Klick auf OK wird dann erst ein Backup der aktuellen Konfiguration nach in C:\Temp geschrieben, für den Fall, dass etwas schief geht Es können mehrere Connectoren gleichzeitig ausgewählt werden. Sie können das Script hier herunterladen.
Täglich Know-how für IT-Pros mit unserem Newsletter
Roland Eich ist gelernter Fachinformatiker für Systemintegration und in der IT seit über 14 Jahren zu Hause. Roland deckt aufgrund seiner Erfahrungen ein breites Spektrum der Microsoft-Produktpalette ab.Zudem besitzt er verschiedene Zertifizierungen (MCITP, MCSA und MCSE, ITIL, PRINCE2).
// Kontakt: E-Mail //
Verwandte Beiträge
Weitere Links