Direkt zum Inhalt
15.01.2015 - Fachbeitrag

Exchange 2013: Dynamische Empfängerprüfung für Postfix

Ab Microsoft Exchange Version 2013 ist es nicht mehr möglich am Client Access Server in der Standardkonfiguration die Existenz eines Empfängers zu verifizieren. Stattdessen akzeptiert der Exchange-Server zunächst jeden Receipient und bounct die Mail ggf. später. Für das dynamische Verifzieren von Adressen in Postfix ist es jedoch unabdingbar, daß nicht-existente Empfänger auch direkt abgelehnt werden. Um diese Funktion für einen Postfix-Mailserver wieder nutzbar zu machen, sind ein paar Konfigurationen am Exchange-Server notwendig. Unser Postfix-Kurs-Teilnehmer Arne Tiedemann von IT works! Consulting GmbH & Co. KG (http://www.hamburg-cloud.de) aus Hamburg war so freundlich, das folgende Howto herauszufinden und uns für den Blog zur Verfügung zu stellen. Vielen herzlichen Dank!

Die Receive Connectoren bei Exchange

Standardmäßig verfügt ein Client Access Server über folgende Receive Connectoren:

$Server = "<MailboxServerName>"
Get-ReceiveConnector | ft -AutoSize Name,TransportRole,Bindings
Name TransportRole Bindings
---- ------------- --------
Default Frontend EX01 FrontendTransport {[::]:25, 0.0.0.0:25}
Outbound Proxy Frontend EX01 FrontendTransport {[::]:717, 0.0.0.0:717}
Client Frontend EX01 FrontendTransport {[::]:587, 0.0.0.0:587}

Auf dem Client Access Server sind ausschließlich Receive Connectoren vom Typ "Frontend" angelegt, wir benötigen für die Verifizierung aber einen Connector vom Typ "HubTransport". Receive Connectoren von diesem Typ können nur auf einem Exchange Server angelegt werden, der auch die Exchange-Server-Rolle "HubTransport" beherbergt.

Anlegen neuer Receive Connectoren

In Microsoft Exchange 2013 ist jeder Mailbox Server auch ein "HubTransport"- Server. Legen Sie darum auf einem der Mailbox Server einen neuen Receive Connector an, um diesen für die Verifizierung der Recipients nutzen zu können. Die Standard Connectoren sind:

Name TransportRole Bindings
---- ------------- --------
Default EX01 HubTransport {[::]:25, 0.0.0.0:25}
Client Proxy EX01 HubTransport {[::]:465, 0.0.0.0:465}

Öffnen Sie die Powershell auf dem Mailbox- oder auf einem Admin-Server, der die Exchange 2013 Management Tools installiert hat. Stellen Sie nun als Port für den neuen Receive Connector den Port 2525 ein, dieser muss dann ggf. ebenfalls in der Firewall geöffnet werden. Die Wahl der Portnummer bleibt Ihnen überlassen. Dieses Code-Beispiel von einem Admin Server mit installierten Exchange remote  das Management Tools ausgeführt. Wenn Sie direkt auf dem Mailbox Server sind, dann können Sie das CmdLet in der Variable $Command direkt ausführen:

Add-PSSnapIn -Name Microsoft.Exchange*

$Port = 2525
$Server = "<MailboxServerName>"

New-ReceiveConnector -Name RCPT_Verify -Bindings "0.0.0.0:$($Port)" -TransportRole HubTransport -RemoteIPRanges 0.0.0.0-255.255.255.255 -AuthMechanism None -PermissionGroups Anonymous -Server $Server
$Command = { New-NetFirewallRule -DisplayName "MSExchange Recipient verify" -Direction inbound -LocalPort $Port -Protocol TCP -Action ALLOW }
Invoke-Command -ComputerName $Server -ScriptBlock $Command

Bitte stellen Sie sicher, dass die Firewall auf diesem Port auf dem Exchange Server und ggf. den Firewalls dazwischen geöffnet ist.

AntiSpam-Agent aktivieren

Damit man beim Exchange Server eine Recipient Verifizierung durchführen kann, müssen die AntiSpam Agents auf dem HubTransport Server installiert werden. Hinweis: Dieses CmdLet muss lokal auf dem Exchange Server ausgeführt werden. Da wir die AntiSpam Agents ja eigentlich gar nicht nutzen wollen, schalten wir anschließend alle bis auf den "Recipient Filter Agent" wieder ab. :-)

cd 'C:\Program Files\Microsoft\Exchange Server\V15\Scripts'
.\install-AntispamAgents.ps1
"Content Filter Agent","Sender Id Agent","Sender Filter Agent","Protocol Analysis Agent" | Disable-TransportAgent
Restart-Service MSExchangeTransport

Jetzt ist der HubTransport Server in der Lage die internen Email Recipients zu verifizieren. Wenn vor dem Exchange Servern ein oder mehrere Mail-Proxies stehen, sollten Sie diese in der Transport Konfiguration als interne Mailserver einstellen.

Set-TransportConfig -InternalSMTPServers @{Add="Address1","Address2"}

Links zur Dokumentation

Manage recipient filtering on Edge Transport servers: http://technet.microsoft.com/en-us/library/bb125187(v=exchg.150).aspx Enable anti-spam functionality on Mailbox servers http://technet.microsoft.com/en-us/library/bb201691(v=exchg.150).aspx

Kommentare

2 Antworten zu Exchange 2013: Dynamische Empfängerprüfung für Postfix

a-Icon
Andreas G.
15. January 2015 um 14:51

Wie bitte ? Exchange 2013 verhält sich wie Qmail Anno 1998 ?
Anscheinend haben die Entwickler von Exchange noch nie was von Backscatter gehört.

r-Icon
Roland Eichel
29. January 2016 um 11:14

Funktioniert gut bei mir. Nur ein Hinweis Port 2525. Wird vom Exchange 2013 bereits verwendet: für die interne SMTP Verbindung zwischen CAS und MBX.