Hybrid Connector Server

Wenn all ihre Postfächer in Office 365 sind aber sie mit AADConnect einen Verzeichnisabgleich betreiben, dann müssen sind aktuell die Exchange Eigenschaften im lokalen Active Directory mit den Exchange PowerShell-Commandlets zu pflegen. Diese Seite beschreibt, wie Sie so einen "minimal Server" aufbauen.

Achtung
In Verbindung mit einem Office 365 Tenant bekommen sie unter bestimmten Fällen einen kostenfreien Exchange 2016 Produkt-Key zum aufbau dieses Connector Servers. Der Key wird aber nicht für Exchange 2019 gültig sein. Wer also Hybrid mit Exchange 2019 aufbauen will, muss Exchange 2019 lizenzieren.

Aufgaben des Servers

Microsoft beschreibt auf mehreren Stellen (Siehe dazu auch DirSync mit Exchange), dass direkte Modifikationen der LDAP-Felder von Exchange nicht getestet und damit auch nicht supportet sind. Da kann man nun streiten, wie ernst das zu nehmen ist und ob man nicht doch vielleicht per ADSIEDIT und eigenen Skripts das gleiche Ergebnis erreichen kann. Tatsächlich geht das und auf ADSync mit Exchange Online habe ich beschrieben, wie man alleine mit einer "lokalen Exchange PowerShell" arbeiten könnte. Aber es bleibt "nicht supportet".

Auf der anderen Seite finde ich es gar nicht so schlimm einen kleinen lokalen Exchange Server zu betreiben, der mir nicht nur das Provisioning vereinfacht. Die Exchange Commandlets enthalten nämlich ganz viel Code zur Qualitätssicherung, z.B. wird sichergestellt, dass ich nur Mailadressen für Domänen vergeben kann, die ich auch als "Accepted Domains" hinterlegt habe. Zudem werden doppelte Mailadresse u.a. verhindert. Ich müsste also viel Code und Intelligenz in eigene Skripte stecken, die über die Exchange Commandlets schon vorliegen.

Aber der Server kann noch mehr: Er kann einen per "MTLS" gesicherten SMTP-Kanal zwischen meinem lokalen internen LAN und meinem Office 365 Tenant aufbauen, der mir viele Möglichkeiten eröffnet. Ohne einen lokalen Server gibt es nämlich einige Herausforderungen wie:;

  • Scan2Mail
    Wie kann man Scanner im Haus-LAN etwas an die Postfächer senden? Soll ihr Drucker wirklich per NAT und SMTP direkt die Office 365 Server erreichen bei denen Sie dann noch sicherstellen müssen, dass der Spamfilter nicht zuschlägt? Ihre eigene "Public-IP" wollen Sie doch sicher nicht auf eine Whitelist setzen, damit jeder interne (Virus/Malware) Client per SMTP seinen Schadcode ungehindert verbreitet
  • Authentifizierung und Konten
    Wenn Sie auf anonymen Versand verzichten, dann müssen ihre Sender ein Office 365 Postfach und Anmeldedaten bekommen. Können Sie sicher sein, dass all diese Clients auch SMTP mit Verschlüsselung machen oder übertragen Sie gültige Office 365 Anmeldedaten unverschlüsselt?
  • Überlastung/Ausfall
    Welche diese einfachen "Mailserver" kann damit umgehen, dass die Verbindung nicht wenige Millisekunden sondern auch mal 100 und mehr Millisekunden Latenzzeit hat oder temporär nicht vorhanden ist? Versucht es der Client wieder über eine interne Queue oder bricht er einfach ab und die Information geht verloren?
  • Eingehende Dienste
    Sie haben sicher gar kein internes System (ERP, CRM, HelpDesk etc.) In Office 365 können Sie sehr einfach eine Weiterleitung einrichten, indem Sie einen Mailkontakt anlegen, der Mails an support@example.com einfach an support@erp.example.com weiterleitet. Nur müssen Sie Office 365 über einen "Outbound Connector" auch noch beibringen, wohin er Mails mit der Domäne erp.example.com senden soll. Da ist es schon einfacher diese Mails über einen "Tunnel" zu einem Brückenkopf in ihrem LAN zu senden, der die Mails dann weiter intern verteilt.

Es gibt neben dem reinen Provisioning also durchaus einen Grund einen kleinen lokalen Exchange Server zu betreiben, der nicht mal viel Ressourcen benötigt. Er hat ja keine Postfächer und die Lizenz ist in ihrem Office 365 Abonnement mit enthalten.

Hybrid, Min-Hybrid oder weniger ?

Wenn Exchange im lokalen AD installiert ist und AADConnect die Identitäten verwaltet, dann sprechen wir in der Regel von einem Hybrid-Mode. Ein voller Hybrid-Mode ist aber nur notwendig, wenn wirklich Postfächer in beiden Welten sind, die zudem über einen längeren Zeitraum in einer Koexistenz bestehen. Sie benötigen natürlich "Free/Busy"-Informationen und vieles mehr. Das ist hier nicht geplant. Selbst der "Min Hybrid"-Mode, der primär für die Migration in die Cloud aufgebaut wird, ist hier nicht zutreffend. Dennoch müssen wir ein bisschen Hybrid schon machen. Denn Hybrid bedeutet auch einen Abgleich einiger Einstellungen wie der "Accepted Domains" und natürlich das Mailrouting.

Theoretisch könnten Sie das auch alles von Hand manuell einrichten aber der HCW macht das schon besser. Sie müssen ja nicht alle Schritte komplett umsetzen.

Exchange Setup

Die Installation des Exchange Servers im lokalen Netzwerk ist heute nicht mehr schwer. Si können sich quasi auch alle größeren Vorarbeiten zum Sizing sparen, da der Server nie Benutzerpostfächer tragen wird. Damit entfällt auch ein Großteil der weiteren Komponenten wie Backup, Archiv, Provisioning, Monitoring etc. Wenngleich sie natürlich schon die "Light"-Version für Monitoring und einen Recovery-Plan vorhalten müssen. Für das Sizing müssen Sie nur ermitteln, wie viele Mails sie über diesen Server übertragen werden. Selbst da sind sie z.B. mit virtuellen Maschinen flexibel in der Planung. In der Regel reicht eine VM mit

  • 2-4 CPUs
  • 8-16 GB Ram
  • 100-200 GB Disk
    Wobei hier die Queues und deren Vorhaltezeit ein Thema sein könnte.

Die Installation habe ich auf anderen Seiten (siehe Exchange 2016 Installation) schon beschrieben. In einer kleinen Umgebung starten Sie das Setup am besten auf dem vorgesehenen Exchange Server in der in der Root-Domäne Mitglied ist und sie als Enterprise-Administrator angemeldet sind. zudem müssen Sie das Recht zur Schema-Erweiterung haben. Zur Installation sollten Sie einfach das aktuellste Service Pack von Exchange 2016 nutzen. Es ist eine Vollinstallation.

  • Exchange Hybrid Key Assistent
    http://aka.ms/hybridkey
    Hierüber erhalten Office 365 Kunden einen Lizenzkey für den Exchange Hybrid Server

Exchange Konfiguration

Der erste Schritt nach der Installation von Exchange sollte eine Konfigurationsänderung sein. Um Störungen der Clients zu vermeiden sollten sie als allererstes den Service Connection Point entfernen, den das Exchange Setup angelegt hat. Outlook liest per Default im Rahmen seiner "Autodisover"-Ermittlung auch das lokale AD und findet mit der Installation des Servers auch die lokale Frontend-Rolle (CAS) mit dem virtuellen Autodiscover-Verzeichnis.

Natürlich verweist "autodisdover.<maildomain>" weiterhin auf Office 365 aber LDAP kommt nun mal zuerst. Outlook ist zwar mittlerweile auch darauf vorbereitet und springt zu Office 365, wenn die lokale Autodiscover-Vermittlung nicht funktioniert aber darauf würde ich mich nicht verlassen. Zertifikatswarnungen und andere Effekte sind mehr als unschöne. Also entfernen wir den SCP mit der Exchange PowerShell.

# Autodiscover ECP abschalten
get-clientaccesserver `
| set-clientaccesserver `
  AutodiscoverInternalURL $null

Die zweite Einstellung ist sinnvoll, damit ihr Server auf längere Zeit nicht voll läuft. Jeder Exchange 2013+ Server hat nämlich auch immer eine Postfachdatenbank. Die möchte ich entsprechend anpassen, indem ich einmal die Umlaufprotokollierung aktiviere und sie aus dem Provisoining ausnehmen:

# Circular Logging
get-mailboxdatabase `
| set-mailboxdabase `
     -CircularLoggingEnabled $True `
     -IsExcludedFromProvisioning $true `
     -IsExcludedFromInitialProvisioning $true

restart-service msexchangeis

Die Änderung wird erst nach dem Neustart der Datenbank aktiv.

Exchange wird auch ohne Lizenzcode weiter laufen. Aktuell ist es ja eine "Trial-Version" die sie aber über den Code aus ihrem Office 365 Portal zu einer sauberen Vollversion machen können.

# Lizenz einspielen
Set-ExchangeServer `
   -ProductKey XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Provisioning

Mit der Installation des lokalen Exchange Servers haben Sie nun auch eine Exchange PowerShell, die Sie für die zukünftige Konfiguration der Exchange Benutzer in der Cloud nutzen können. Wobei "können" schon zu schwach ist, denn sie können in Exchange Online diverse Einstellungen gar nicht einstellen, sobald AADConnect eingerichtet ist.

Sie konnten mit der Installation von AADConnect schon früher Exchange Postfächer in der Cloud haben, weil Office 365 mit der Zuweisung einer Exchange Online Lizenz dem Benutzer in der Cloud auch ein Postfach gibt, selbst es im lokalen AD keine entsprechenden Felder gab. Nun können Sie aber mit der lokalen Exchange PowerShell die dazugehörigen lokalen Benutzer verwalten

Achtung: Exchange Online
Es gibt Firmen, die mit Exchange Online Only starten und die Identitäten in der Cloud ohne AzureADConnect verwalten oder die Benutzer mit AzureAD Verwalten aber die Exchange Einstellungen einfach nur "default" gelassen haben. Diese Firmen müssen vorab eine Liste der Exchange Empfänger in der Cloud extrahieren und die passenden lokalen Objekte entsprechend für Exchange zu provisionieren. Dies werde ich hier nicht weiter beschreiben.

AADConnect

Ich habe schon Umgebungen mit installiertem AADConnect gesehen, bei dem lokal keine Exchange Konfiguration vorhanden war. Die Installation von AADConnect prüft das vorhandene Schema und aktiviert nur die Regeln, die erforderlich sind. Wenn Sie bei der Installation also noch keine Exchange Schema Erweiterung installiert hatten, dann hat AADConnect auch keine Exchange Regeln aktiviert.

Sie müssen bei einem bereits installierten AADConnect also einmal in das Setup gehen und das Schema neu einlesen.

Zudem müssen Sie auch AADConnect sagen, dass es einen Exchange Hybrid-Mode gibt:

Danach gibt es in AzureADConnect auch die Regeln zum Abgleich von Exchange:

Achtung
OnPremise überstimmt Cloud, d.h. wenn Sie Felder wie "mail" oder "ProxyAddresses" schon verwendet haben, die es auch ohne Exchange Schema Erweiterungen gibt. Diese überschreiben dann die Werte in der Cloud

Mailrouting

Der lokale Exchange Server kann und sollte auch als Brückenkopf für das Mailrouting mit lokalen Diensten genutzt werden. Technisch besteht die Konfiguration aus einem Zertifikat auf dem lokalen Server, damit er die Verbindung verschlüsseln und sich gegen Office 365 identifizieren kann.

Achtung
Achten Sie bei allen Konfigurationseinstellungen darauf, dass ihr Exchange Server keine Mails von "fremden" Adressen oder anonym annimmt. Dieser Server sollte nur von Office 365 Servern per Port 25 SMTP erreichbar sein. Das kann eine Firewall absichern.

Und dann gilt es wieder die vier Connectoren einzurichten, damit die beiden Partner miteinander kommunizieren können.

  • On-Premises -> Office 365
    Ein SendConnector lokal sendet alle Mails an die Office 365 Instanz und nutzt dazu zwingend TLS. Auf der Office 365 Seite wird eingerichtet, dass Mails von diesem Server, der sich mit dem Zertifikat ausweist, als vertrauenswürdig angesehen werden
  • Office 365 -> On Premises
    In der Gegenrichtung legen Sie im lokalen Exchange Server einen Empfangs Connector an, damit Mails von den den IP-Adressen von Office 365 angenommen werden, damit der in Office 365 anzulegende "Outbound Connector"

Der Prozess ist bei mir und Microsoft umfangreich beschrieben. Die Einrichtung übernimmt der Hybrid Configuration Wizard, der auch diverse andere Dinge überprüft.

Nachdem die Verbindung zwischen dem lokalen Server und dem Office 365 Tenant eingerichtet ist, sollten Sie nun auch die internen Systeme eintragen, für die das Setup relevant ist. Hierbei gibt es zwei Gruppen:

  • Einliefernde Systeme
    Alle Systeme, die intern an diesen Server Mails einliefern sollen, müssen über einen lokalen "Receive Connector" bedient werden. Hier können Sie umfangreiche Einstellungen vorschreiben wie z.B. MaxMailSize, MaxRecipients und ob eine Source-IP als Authentifizierung reicht oder der Sender sich anmelden muss.
  • Auslieferung von Mails
    Wenn Sie den Weg auch nutzen, um Mails von Office 365 über den Connector Server zu einem anderen lokalen Server zu senden, dann erfolgt dies mit einem Send-Connector, de Mails an eine Routingdomäne zu der internen IP-Adresse weiter leitet.

Über diese Konfiguration kann nun der komplette Mailfluss innerhalb ihrer Firma auch über interne oder zumindest per TLS gesicherte Verbindungen laufen.

Weitere Links