Der letzte Artikel zu Kemp und Exchange ist nun schon wieder etwas länger her, daher folgt hier mal wieder eine aktualisierte Version. Für diesen Test habe ich einen Kemp Loadmaster VLM-5000 (den gibt es mit Leute mit MCP ID für das HomeLab kostenlos) und Exchange 2019 verwendet. Die eingesetzte Loadmaster Firmware ist 7.2.48. Der Loadmaster wird klassisch in der 2-Arm Konfiguration betrieben, soll heißen: Die Server (inkl. Exchange) befinden sich in einem anderen VLAN als die Clients. In meiner Testumgebung befindet sich Exchange im Subnetz 172.16.14.0/24 und die Clients im Netz 192.168.100.0/24. Der Loadmaster hat je ein Interface in beiden Netzen und fungiert als L7-Loadbalancer.
Grundkonfiguration Kemp Loadmaster für Exchange
Es gibt drei kleine Einstellungen die Kemp für den Einsatz von Exchange empfiehlt. Zum einen sollte “Subnet Originating Requests” unter “System Configuration > Miscellaneous Options > Network Options” aktiviert werden. Diese Einstellung macht eh in den meisten Konfigurationen Sinn. Hiermit leitet der Loadmaster den Traffic über das jeweilige Interface im Subnet des Real Servers und nicht über das Default Gateway, wenn sich die Server in unterschiedlichen Netzen befinden:
Um Probleme mit den den Exchange Webservices bzw. Outlook for Mac zu vermeiden, sind die Einstellungen “Additional L7 Header” und “100-Continue Handling” wichtig. Beide Einstellungen finden sich unter dem Punkt “System Configuration > Miscellaneous Options > L7 Configuration”:
Das war es auch schon mit den Grundeinstellungen und es kann mit der AD Konfiguration begonnen werden.
Konfiguration SSO / Active Directory
Damit später ESP funktioniert, muss die Verbindung vom Loadmaster zum Active Directory hergestellt werden. Auf dem Loadmaster wird dazu eine neue “Client Side Sigle Sign On Configuration” hinzugefügt:
Unter dem Punkt “Manage LDAP Configuration” können die Domain Controller zu einem LDAP Endpoint hinzugefügt werden:
Damit die Domian Controller hinzugefügt werden können, muss ein LDAP Enpoint angelegt werden:
Als LDAP Server werden die Domain Controller mit Port angegeben. Domain Controller verwenden den Port 636 für das Protokoll LDAPS. Zusätzlich muss ein Benutzer angegeben werden, welcher Leserechte auf das Active Directory hat. Ein normales Domain Benutzerkonto reicht hier aus:
Der neue LDAP Endpoint kann nun in der SSO Konfiguration ausgewählt werden. Das Logon Format sollte auf “Principalname” eingestellt werden:
Die neue Client Side SSO Configuration wird nun in der Übersicht angezeigt:
Jetzt kann das Exchange Template importiert werden.
Exchange Template
Für Exchange 2019 bietet Kemp Templates an, welche die Konfiguration erleichtern. Das Template für Exchange 2019 kann hier runtergeladen werden:
Nachdem das Template runtergeladen wurde, kann es im Loadmaster importiert werden:
Nach dem Import werden in der Übersicht drei Vorlagen angezeigt. Für dieses HowTo wird die Vorlage “Exchange 2019 HTTPS Reencrypted with ESP” verwendet, da es in der Regel keine Anpassung der Exchange Konfiguration erforderlich macht:
Für die Konfiguration werden noch ein paar Daten benötigt, diese werden im nächsten Abschnitt gesammelt.
Benötigte Daten
Für die Konfiguration von ESP in Verbindung mit Exchange 2019 in den folgenden Abschnitten des Artikels, sind drei URLs für die Exchange Umgebung wichtig:
- Allowed Virtual Hosts
- Pre-Authorization Excluded Directories
User Password Form
Beide URLs müssen zunächst ermittelt werden. Damit man alle nötigen Daten zur Hand hat, wenn es an die Konfiguration geht, kann man sich die URLs und Hostnamen ja schon einmal zusammen und in Notepad kopieren, so hat man alle Daten für die Konfiguration griffbereit.
Bei den “Allowed Virtual Hosts” handelt es sich um die Hostnamen unter den Exchange veröffentlicht werden soll. Die Hostnamen für “Allowed Virtual Hosts” ergeben sich aus den Exchange Einstellungen für die virtuellen Verzeichnisse. Hier mal ein Beispiel, wenn die konfigurierte MAPI URL “https://mail.frankysweb.de/mapi” entspricht, ist der “Allowed Virtual Host” für den Virtual Service “mail.frankysweb.de”:
Die “Allowed Virtual Hosts” werden für jedes Protokoll benötigt (Autodiscover nicht vergessen). Der Wert für “Pre-Authorization Excluded Directories” setzt sich aus der GUID des Arbitration Postfachs und der SMTP Domain zusammen. Die URL für “User Password Form” setzt sich aus der Externen URL für das OWA Verzeichnis und dem String “auth/expiredpassword.aspx?url=/owa/auth.owa” zusammen.
Ich hab ein kleines Script erstellt, welches die Daten automatisch zusammen sammelt. Das Script liefert die nötigen Daten, welche für die Konfiguration im nächsten Abschnitt benötigt werden. Die Ausgabe des Scripts sieht dann etwa wie folgt aus:
Kurz zur Erklärung: In der Farbe Grün ist der SubVS dargestellt, in gelb ist der Name der jeweiligen Einstellung für den SubVS dargestellt und in weiß der entsprechende Wert für die Einstellung des SubVS.
Das Script kann hier runtergeladen werden:
Zertifikat
Damit später keine Zertifikatswarnung im Browser oder Outlook auftreten, benötigt der Loadmaster ein SSL Zertifikat. Hier lässt sich ein Zertifikat einer internen PKI verwenden oder ein Zertifikat einer öffentlichen CA. Auch kostenlose Zertifikat von Let’s Encrypt lassen sich hier einspielen.
Für dieses HowTo verwende ich in Zertifikat von Let’s Encrypt. Der Einfachheit halber, habe ich das Let’s Encrypt Zertifikat über die Website SSLForFree bezogen. Für das Zertifikat ist es wichtig, dass alle DNS Namen auf dem Zertifikat vorhanden sind, welche auf den Exchange Servern konfiguriert wurden. Hier können die Daten aus dem oben genannten Script weiterverwendet werden.Alle Hostnamen die unter dem ersten Punkt “Exchange 2019 HTTPS Rencrypted with ESP – Authentication Proxy” als “Allowed Virtual Hosts” aufgeführt werden, müssen auf dem Zertifikat vorhanden sein. Hier lässt sich natürlich auch ein Wildcard Zertifikat verwenden.
Ein bereits vorhandenes Zertifikat lässt sich unter “Certificates & Security” unter dem Punkt “Import Certificate” hinzufügen:
Beim Import muss das Zertifikat im PEM oder PFX Format vorliegen:
Nachdem das Zertifikat importiert wurde, wird es in der Übersicht angezeigt:
Alle Vorbereitungen für die Konfiguration sind nun abgeschlossen und es kann mit der Konfiguration gestartet werden.
Konfiguration Loadmaster für Exchange
Da das Template für Exchange 2019 bereits importiert wurde, kann nun ein neues Virtual Service anhand des Templates erstellt werden. Neben einer IP für den Virtual Service muss auch das entsprechende Template angegeben werden, in diesem Fall “Exchange 2019 HTTPS Reencrypted with ESP”:
Nachdem der neue Virtual Service erstellt wurde, erscheinen direkt die Einstellungen. Unter den Einstellungen der SubVSs (SubVirtualServices“), wird nun der erste SubVS angepasst:
In den Einstellungen des SubVS werden nun zunächst die oder der Exchange Server als Real Server hinzugefügt:
Die IP-Adressen der Exchange Server werden nun als Real Server hinzugefügt. Damit die Exchange Server direkt zu allen SubVSs hinzugefügt werden, kann das Häkchen bei “Add to all SubVSs” aktiviert werden:
Nachdem die Exchange Server als Real Server hinzugefügt wurden, sollten die einzelnen SubVSs in der Übersicht mit einem grünen Häkchen dargestellt werden.Jetzt kann das zuvor importierte Zertifikat dem Virtual Service zugewiesen werden:
Das Zertifikat wird in der Liste “Available Certificates” angezeigt und kann dem Virtual Service zugewiesen werden:
Jetzt kann mit der Konfiguration von ESP begonnen werden. Um ESP zu konfigurieren, wird der Virtual Service mittels “Modify” angepasst:
Jeder einzelne SubVS muss nun die entsprechende ESP Konfiguration erhalten. Die erforderlichen Werte hat das Script geliefert, diese Einstellungen werden nun benötigt. Bis auf den SubVS “Exchange 2019 HTTPS Reencrypted with ESP – OWA” ist die Konfiguration für alle SubVSs gleich, daher hier einmal die Konfiguration für alle SubVSs (bis auf OWA):
In den ESP Einstellungen der SubVSs wird nun die zuvor angelegte “SSO Domain” ausgewählt und die “Allowed Virtual Hosts” konfiguriert:
Die Daten zu den Allowes Virtual Hosts liefert das Script, hier als Beispiel:
Manche SubVSs haben als “Client Authentication Mode” den Wert “Delegate to Server” konfiguriert. Diese Einstellung kann so belassen werden und es muss nur “Allowed Virtual Hosts” konfiguriert werden:
Für alle SubVS mit Ausnahme von “Exchange 2019 HTTPS Reencrypted with ESP – OWA” werden nun die “Allowed Virtual Hosts” und die “SSO Domain” konfiguriert. Dazu muss jeder einzelne SubVS angepasst werden.
Der SubVS “Exchange 2019 HTTPS Reencrypted with ESP – OWA” erfordert etwas mehr Konfiguration, daher hier einmal die Einstellungen, welche das Script liefert:
Die Daten aus dem Script werden nun in die ESP Konfiguration von OWA eingetragen:
Wenn alle SubVSs angepasst wurden, kann mit den Tests begonnen werden.
Tests
Um die Konfiguration zunächst zu testen, kann nun die HOSTS Datei auf einem Client angepasst werden. In meiner Testumgebung habe ich dazu “mail.frankysweb.de” und “autodiscover.frankysweb.de” umgeleitet:
Jetzt lässt sich Outlook und insbesondere OWA testen. Für den OWA-Test bietet es sich an, den Inkognito-Modus des Browsers zu verwenden um gespeicherte Anmeldungen zu umgehen. Der Kemp Loadmaster bietet nun für die OWA Seite eine Anmeldemaske an (nicht gerade hübsch):
Der Browser sowie Outlook sollten keine Zertifikatswarnungen liefern und normales Arbeiten sollte möglich sein. Wenn soweit alles funktioniert, kann die Anpassung am DNS und Router vorgenommen werden.
Anpassung DNS und Router / Firewall
Wenn die Tests erfolgreich waren, kann die Anpassung der HOSTS-Datei wieder rückgängig gemacht werden. Damit alle Clients nun den Weg über den Loadbalancer nutzen, wird die DNS Konfiguration angepasst. Die IP-Adressen für “mail.frankysweb.de” und “autodiscover.frankysweb.de” werden nun auf die IP-Adresse des Virtual Service des Loadmasters geändert:
Sobald die Clients den DNS-Cache aktualisieren, wird der Loadbalancer für den Zugriff auf Exchange verwendet. Zusätzlich zur Änderung im DNS, muss meistens der NDAT Eintrag auf Router oder Firewall geändert werden, hier wird nun ebenfalls für die NAT Einträger der Ports 443 und 80 die IP auf die IP des Virtual Service geändert. Somit nutzen auch externe Clients den Weg über den Loadbalancer.
Anpassung (optional)
Wenn das Kemp Login Form nicht gefällt, kann es ausgetauscht werden. Hier gibt es eine Vorlage mit der sich ein eigenes Login Form erstellt werden kann:
Somit lässt sich das Design an die Corporate Identity anpassen. Alternativ gibt es hier auch ein hübscheres Login Form zum Download bzw. einen Artikel wie dieses erstellt wird: