E-Mails anonym über Exchange verschicken

    Exchange EmpfangsconnectorHin und wieder müssen Systeme oder Anwen­dungen E-Mails über Exchange ver­schicken, die sich aber dafür nicht authen­tifizieren können. Um ihnen anonymen SMTP-Zugriff zu ge­währen, richtet man einen eigenen Empfangs­connector ein und be­schränkt diesen auf be­stimmte IP-Adressen.

    Standardmäßig verfügt Exchange über einen Empfangs­connector, 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 Multifunktions­gerä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 Empfangs­connector 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 Empfangs­connector ein, der den anonymen Versand auf bestimmte IP-Adressen oder auf die Mitglieder in einer AD-Gruppe beschränkt.

    Die Gruppen­mitgliedschaft macht dann Sinn, wenn der Benutzer beispielsweise E-Mails anonym von einer Terminal-Serverfarm verschicken muss. Hier möchte man normaler­weise 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 => Empfangs­connectors einen neuen Konnektor mit der Rolle Front-End-Transport-Dienst und vom Typ Benutzerdefiniert.

    Neuen Empfangsconnector über das Admin Center erstellen

    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.

    Neuen Empfangsconnector an bestimmte Adapter binden

    Im Dialog für die Remote­netz­werk­ein­stellungen 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.

    Unter den Remotenetzwerkeinstellungen legt man fest, welche Systeme über den Connector senden dürfen.

    Im Connector selbst sollte man jetzt noch im Abschnitt Sicherheit den Haken bei anonym setzen.

    Connector für die anonyme Nutzung freischalten

    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"

    Berechtigungen auf den Konnektor mittels PowerShell setzen

    Wer weitere Eigenschaften des Empfangs­connectors verändern möchte, der kann sich mit

    Get-ReceiveConnector <Name des Empfangsconnectors> | fl

    einen Überblick verschaffen.

    Eigenschaften eines Empfangsconnectors anzeigen mit dem Cmdlet Get-ReceiveConnector

    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

    Berechtigungen auf einen Empfangsconnector abfragen mit PowerShell

    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.

    IP-Adressen zu Konnektoren hinzufügen über ein Script mit GUI

    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

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Keine Kommentare