Exchange 2016: Anonymes Relay erlauben (5.7.54 Unable to Relay)

Manche Anwendungen oder Geräte benötigen ein Anonymes Relay um Mails verschicken zu können. Hierbei muss allerdings zwischen internem Relay und externen Relay unterschieden werden. Das interne Relay, also das anonyme Senden von Mails an die von Exchange akzeptierten Domains, funktioniert Out-of-the-Box:

image

Das Externe Relay, also das verschicken von Mails an externe Benutzer, ohne Authentifizierung allerdings nicht:

image

Das anonyme externe Relay, ist auch immer mit Vorsicht zu betrachten, denn bei falscher Konfiguration kann Exchange hier schnell als SPAM-Schleuder missbraucht werden. Es gilt daher die Connectoren entsprechend einzuschränken und nur bestimmte IPs zuzulassen, nicht aber ganze Subnetze oder noch schlimmer „Jeden“.

Wie aber schon eingangs erwähnt, gibt es durchaus Anwendungen, wie Ticketsysteme oder CRMs, die  Mails an externe Empfänger schicken müssen, sich aber nicht authentifizieren können. Um diesen Anwendungen oder Geräten den Mailversand zu erlauben, kann ein neuer Empfangsconnector angelegt werden:

image

Die Einstellungen im nächsten Dialog können übernommen werden

image

In den Einstellungen der „Remotenetzwerkeinstellungen“ müssen jetzt alle IP-Adressen hinzugefügt werden, für die das anonyme externe Relay erlaubt werden soll:

image

Es macht hier Sinn nur einzelne IPs anzugeben, die diese Funktionalität wirklich benötigen, ganze Subnetze sollten hier nicht angegeben werden, es sei denn es ist unbedingt erforderlich (Servernetz, Management Netz oder ähnliches).

Hinweis: Exchange 2016 CU2 enthält derzeit einen Bug, es lässt sich kein neuer Empfangsconnector auf der gleichen IP anlegen via EAC anlegen. Ein entsprechender Connector kann aber nach wie vor via Exchange Shell erstellt werden. Die Schritte wie oben beschrieben, legen den Connector an:

New-Receiveconnector -Server FWEX2016 -Name "Relay" -RemoteIPRange ("172.16.100.102") -TransportRole "FrontendTransport" -Bindings ("0.0.0.0:25") -Usage "Custom"

Nach einem Klick auf „Fertigstellen“ ist der Connector angelegt:

image

Damit der Connector anonyme Mails annimmt, müssen die Sicherheitseinstellungen entsprechend geändert werden:

image

Damit nun aber auch Mails zu externen Empfängern versendet werden können, müssen noch entsprechende Berichtigungen für den neuen Connector vergeben werden. Am schnellsten funktioniert dies per Exchange Management Shell:

Get-ReceiveConnector "Anonymes Relay FWEX2016" | Add-ADPermission -User "NT-Autorität\Anonymous-Anmeldung" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

image

Beim zweiten Befehl gibt es einen kleinen Stolperstein:

  • Bei deutschen Servern heißt es „NT-Autorität\Anonymous-Anmeldung“
  • Bei englischen Servern heißt es „NT AUTHORITY\ANONYMOUS LOGON“

Der Connector ist jetzt aktiv und nimmt von den entsprechend freigeschalteten IPs (siehe Remotenetzwerkeinstellungen) anonym Mails entgegen. Bei Systemen die ein hohes Mailaufkommen produzieren oder sehr große Mails versenden, müssen gegeben falls noch weitere Parameter verändert werden:

Set-ReceiveConnector -identity "Anonymes Relay FWEX2016" -TarpitInterval 00:00:00
Set-ReceiveConnector -identity "Anonymes Relay FWEX2016" -ConnectionTimeout 00:30:00
Set-ReceiveConnector -identity "Anonymes Relay FWEX2016" -ConnectionInactivityTimeout 00:20:00
Set-ReceiveConnector -identity "Anonymes Relay FWEX2016" -MaxAcknowledgementDelay 00:00:00
Set-ReceiveConnector -identity "Anonymes Relay FWEX2016" -MaxInboundConnection 10000
Set-ReceiveConnector -identity "Anonymes Relay FWEX2016" -MaxInboundConnectionPerSource unlimited

Und zu guter Letzt noch ein wichtiger Hinweis:

Wer sich in folgender Umgebung wiederfindet, darf auf keinen Fall die interne IP Adresse des Routers in den Remotenetzwerkeinstellungen des Connectors hinterlegen:

Zeichnung1

MX-Record zeigt auf WAN IP des Routers, Router forwarded Port 25 (SMTP) per NAT an den Exchange Server. In diesem Fall sieht der Exchange Server nur die interne Router IP als Source IP. Wenn nun die interne Router IP zum Connector hinzugefügt wird, ist das ein Open Relay und somit sehr schnell eine SPAM-Schleuder.

11 Kommentare zu “Exchange 2016: Anonymes Relay erlauben (5.7.54 Unable to Relay)”

  1. Wäre schön, wenn Microsoft das „alles um jeden Preis übersetzen“-Prinzip mal fallen lassen würde. :)

    Kleine Korrektur: bei einem normalen Port Forwarding wird die Source-IP nicht geändert, der Exchange sieht also, woher die Verbindung kommt. (Ausser auf der Firewall läuft ein SMTP-Proxy, dann muss man tatsächlich aufpassen.)

  2. Hallo Frank,
    besten Dank für Deine auführlichen Anleitungen.
    Eine Frage zum neuen Empfangsconnector:
    – es besteht doch bereits ein Connector auf Port 25 mit der Bindung an die gleiche Netzwerkkarte
    Ich kann daher keinen Connector zusätzlich einrichten. Ausserdem kann ich die Rolle nicht auswählen (FrontEnd-Transport). Bei mir ist ‚HubTransport‘ vorbelegt und ausgegraut.
    (Exchange 2016 mit CU2)

    Danke und Gruß

    Frank

  3. Servus Frank,
    habe das selbe Problem wie Frank im Post davor.

    Auf dem Server gehen die Mails per POP3 Konnektor ein, dieser ist auf dem Exchange selber installiert und der Empfangskonnektor hört auf seine eigene Adresse. Das funktioniert soweit.

    Ich habe nun Drucker die direkt nach außen aber über den Exchange gehen sollen. Wen ich nun den vorhandenen Konnektor ändere und auf Anonymes Relaying und die Adressen der Drucker hinzufüge habe ich die Befürchtung das damit auch die per POP3 kommenden Mails die Erlaubnis dazu hätten.

    Wie schon erwähnt kann kein neuer Konnektor erstellt werden mit der gleichen Port Nr. und als als Front-End konfiguriert sein.

    Ich könnte einen neuen Konnektor erstellen als Hub mit einer anderen Port Nr. (ich kann das an den Druckern ebenfalls ändern). Aber es ist ja nur ein Hub-Transport.

    Danke für deine Mühe
    Chris

    1. Hi Chris, Hi Frank,

      bei Exchange 2016 CU2 kann man leider keinen Relay Connector über die GUI anlegen. Der Hintergrund ist einfach: Es ist ein Bug. Der Weg über die Shell funktioniert allerdings weiterhin. Das Anlegen funktioniert über folgenden Befehl:

      New-Receiveconnector -server EX1 -Name „Relay“ -RemoteIPRange („192.168.100.99“) -TransportRole „FrontendTransport“ -Bindings („0.0.0.0:25“) -usage „Custom“

      Der Rest (Berechtigungen, etc) bleibt gleich.

      Gruß, Frank

      PS: Habe den Artikel aktualisiert.

  4. Hi Frank,

    erst einmal ein großes Lob an dich. Mich begleitet/hilft deine Webseite schon seit meiner Ausbildung :-) Nun habe ich deine oben stehende Anleitung befolgt, jedoch bekomme ich beim Versenden der Test Nachricht via Shell folgende Fehlermeldung

    Send-MailMessage : Dienst nicht verfügbar. Übertragungskanal wird geschlossen. Die Serverantwort war: 4.3.2 Service
    not available
    In Zeile:1 Zeichen:1
    + Send-MailMessage -SmtpServer localhost -From XXXXXXx.l …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpExcept
    ion
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMes

    Kannst du etwas mit dieser Meldung anfangen?

    Beste Grüße

    Gregor

  5. Hallo Frank,

    das anonmye Relay funktioniert wunderbar! Danke für deine Anleitung.
    Nun hätte ich hierzu noch eine Frage, kann man das Relay auch auf einzelne Benutzer beschränken, so dass nur dieser Benutzer über den Connector senden kann?

    Vielen Dank und viele Grüße!

  6. Hallo Frank,
    Deine Artikel sind immer wieder schön zu lesen. :-) Dank dafür.

    Was mich jedoch seit einer Weile beschäftigt, ist die Frage inwiefern man „internal Relays“ überhaupt einsetzen soll.
    Ich persönlich vertrete die Auffassung, dass ein „Sender“ sich ggü. dem Exchange Server authentifizieren muss.
    Mich würde Deine Meinung zu folgendem Konstrukt interessieren:

    Auth. Benutzer = Standard Mailbox
    Auth. System/Software = Funktions Mailbox
    Non Auth System/Software -> interne Empfänger = InternalRelay
    Non Auth System/Software -> interne + externe Empfänger die bekannt sind = Exchange Contacts
    Non Auth System/Software -> interne + externe Empfänger die nicht bekannt sind= External Relay

    Vorteil wäre ein Maximum an Sicherheit, da so das Versenden von Emails über nicht authentifizierte Sender auf ein Minimum reduziert wird.

    Nachteil bei den Funktions Postfächern ist, dass jemand regelmäßig die Postfächer leeren muss um ein überlaufen zu verhindern. Anderenfalls wäre eine PremiumCal fällig und man müsste das über Richtlinien regeln.

    Wie siehst du das oder hast du hier eine noch tollere Lösung in petto? :-)

    Grüße

  7. Funtioniert es für itern genau so? Wenn man nur Bestimmten Server(IP’s) an intern über Port 25 Senden erlauben möchte, und nicht automatisch allen?

  8. Benötigt das anonyme Relay weiterhin ein angelegtes Postfach oder einen angelegten Kontakt, oder ist das eine Wildcard-Freigabe für alle möglichen Mailadressen der Domain, nur eben begrenzt auf eine IP die SMTP anfragt?

  9. Hallo Frank,
    nach dem ich deine Anleitung angewendet habe, keine Frage funktioniert wie immer :-) empfängt mein Exchange keine Email von Außen / Firewall Sophos.
    Wo habe ich Fehler gemacht?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.