Exchange 2013/2016: Externen Zugriff auf Exchange Admin Center (ECP Website) unterbinden

Problem:
Die Exchange-Konfigurations-Website (https://mailserver.domain.tld/ecp) ist ja sowohl extern als auch intern erreichbar, wenn man nicht den Luxus eines Reverse-Proxy besitzt. Ich habe immer ein etwas schlechtes Gefühl, wenn meine Exchange-Konfiguration von extern erreichbar ist. Vor allem, wenn z.B. ein IT-Kollege im Zorne ausscheidet und alle Passwörter hat und mir dadurch theoretisch die Datenbank einfach löschen könnte. Da ich keinen Reverse-Proxy besitze musste ich eine andere Lösung finden.

Überlegungen:
Es gibt ja die Möglichkeit die ECP-Admin-Webseite abzuschalten, was das Ganze zwar sicher macht, aber auch nicht mehr administrierbar! :-)
Zuerst wollte ich einfach auf dem IIS die "Einschränkungen für IP-Adressen und Domänennamen" aktivieren. Das löst das Problem mit dem externen Zugriff, hat aber den Nachteil, dass die Benutzer über OWA auch nicht mehr Ihr Konto verwalten können um z.B. den Abwesenheitsassistenten zu aktivieren (Teil des ECP). Also...nur begrenzt gut.
Microsoft selbst sagt, dass man einen zusätzlichen CAS-Server aufsetzen soll, der nur intern erreichbar ist und auf dem externen den Admin-Zugang deaktivieren soll. Leider fehlen mir hierzu die Ressourcen und in kleinen und mittelständigen Unternehmen ist das "a little bit too much"

Lösung:
Die Lösung liegt darin, dass man eine neue ECP-Webseite anlegt und diese im IIS auf eine zweite Netzwerkkarte im Exchange bindet. Die IP-Adresse der neuen Netzwerkkarte ist nur intern erreichbar, wohingegen die "alte" Netzwerkkarten-IP extern erreichbar ist.

Folgende Vorgehensweise zur Lösung:
1.) Fügen Sie dem Exchange-Server eine zweite Netzwerkkarte hinzu.

2.) Vergeben Sie eine neue IP-Adresse für diese Karte und deaktivieren Sie "Diese Verbindung im DNS registrieren", damit der Exchange nicht über mehrere IP-Adresse im DNS erreichbar ist.

3.) Tragen Sie im DNS-Server den FQDN für die neue Webseite mit der neuen IP ein (z.B. ecp.demo.local) - das wird später Ihre URL für den Aufruf werden.

4.) Erstellen Sie auf dem Exchange-Server eine neues Verzeichnis "c:\inetpub\wwwroot2"

5.) Erstellen Sie im IIS eine neue Website und verweisen Sie auf den zuvor erstellten wwwroot2-Ordner und benennen Sie diese z.B. als "ECPIntern"

6.) Binden Sie die neu erstellte Webseite mit Port 80 (http) und Port 443 (https) an die neue, interne IP-Adresse

7.) Erstellen Sie ein neues ECP Virtual Directory mit dem folgenden Befehl (bitte entsprechend anpassen):
New-EcpVirtualDirectory -Server ServerName -WebSiteName "ECPIntern" -InternalUrl "https://eac.demo.local/ecp"

8.) Jetzt benötigen wir noch ein neues OWA Virtual Directory (bitte entsprechend anpassen):
New-OwaVirtualDirectory -Server ServerName -WebSiteName "ECPIntern" -InternalUrl "https://eac.demo.local/owa"

9.) Jetzt müssen wir noch den Admin-Zugriff auf der "alten" IP-Adresse deaktivieren:
Set-ECPVirtualDirectory -Identity "ServerName\ecp (default web site)" -AdminEnabled $false

10.) Ich habe mir jetzt noch über den Exchange ein neues SSL-Zertifikat ausgestellt, dass den FQDN der neuen ECP-Webseite beinhaltet und dieses im IIS an die neue ECP-Webseite gebunden um SSL-Fehler im Browser zu unterdrücken (Zertifikat per GPO ausstreuen)

HINWEIS AM RANDE: Die neue Konfiguration kann bis zu 30 Minuten dauern, bevor der Admin-Zugriff auf die alte ECP-Webseite nicht mehr funktioniert. Also bitte Geduld haben oder Server neu starten!

Quellen für die Lösung:
anexinet: Disable External Access of the Exchange Admin Center

Migration Exchange 2007 auf 2013: Benutzer mit Outlook-Anywhere bekommt keine Öffentlichen Ordner angezeigt

Problem:
Nachdem ich einen externen Benutzer von Exchange 2007 auf Exchange 2013 umgezogen hatte, hat dieser die Öffentlichen Ordner nicht mehr angezeigt bekommen. Der Zugriff erfolgt in der Migrations-Phase über die Discovery-Mailbox-Methode auf den Exchange 2007 (Erklärung siehe TechNet-Quelle unten). Von den intern Outlook-Clients funktioniert der Zugriff problemlos.
Nach einiger Recherche mittels Fiddler habe ich herausgefunden, dass bei dem Client ein zweiter Autodiscover läuft und hier auf die interne Domäen abgefragt wird (https:\\autodiscover.domäne.intern/autodiscover/autodiscover.xml).
Warum der zweite Autodiscover?

Lösung:
Des Rätsels Lösung ist ganz einfach. Dadurch, dass der Client auf die alten Öffentlichen Ordner auf dem Exchange 2007 über das Discovery-Postfach zugreift, läuft für dieses Postfach ebenfalls noch ein Autodiscover. Da ich dem Discovery-Postfach keine öffentliche Mail-Adresse zugewiesen habe (warum auch??), versucht der Client mittels Domäne der primärer Mail-Adresse (die ja intern ist) auf die Autodiscover-URL zuzugreifen (Erklärung wie der Client die Autodiscover-URL ermittelt finden Sie unten in den Quellen).

Die Lösung ist simpel:
Vergeben Sie der Public-Folder-Discovery-Mailbox eine öffentliche Mail-Adresse als Primäre Mail-Adresse und das Autodiscover wird vom externen Client erfolgreich sein.

Quellen/Hilfen:
Hope-This-Helps: Exchange Autodiscover: Wie wird die Autodiscover-URL ermittelt?

https://technet.microsoft.com/de-de/library/dn690134(v=exchg.150).aspx

Exchange Autodiscover: Wie wird die Autodiscover-URL ermittelt?

Problem:
Für mich hat sich die Frage gestellt, wie der Outlook-Client (gerade außerhalb der Organisation über Outlook Anywhere) den Autodiscover FQDN bekommt, die er anfragt um seine Autodiscover-Informationen zu bekommen.

Lösung:
Der Outlook-Client geht hier nach einem fest definierten Schema vor, dass man wissen sollte, da man sonst nicht versteht, warum der Client keine Autodiscover-Informationen erhält.

WICHTIG VORWEG: Als Mail-Domäne nimmt der Client nicht die Windows-Domäne sondern die Mail-Domäne der PRIMÄREN Mail-Adresse des Benutzers
Das kann Probleme machen, wenn man einem Benutzer nur eine interne Mailadresse gibt oder dieser verschiedene externe Mail-Adresse zugewiesen bekommen hat. Vor allem, wenn der Benutzer per Outlook Anywhere zugreift und keinen SCP erreichen kann und somit die Autodiscover-URLS abklappert.

Folgenden Ablauf durchläuft der Client für das Autodiscover-Ermittlung:
1.) Abfrage SCP (Service Connection Point) aus dem AD (ClientAccessServer AutodiscoverServiceInternalURI)
2.) Anfrage auf https://mail-domäne/autodiscover/autodiscover.xml
3.) Anfrage auf https://autodiscover.mail-domäne/autodiscover/autodiscover.xml
4.) Anfrage auf http://autodiscover.mail-domäne/autodiscover/autodiscover.xml
5.) Abfrage eines SRV-Records
6.) Verwendung der lokalen autodiscover.xml, soweit bereits vorhanden

Quelle: SebastianHetzel.net: Exchange Autodiscover

Exchange 2013: Rückmigration von Postfach Exchange 2013 auf 2007 schlägt fehl/funktioniert nicht

Problem:
Ich musste ein bereits migriertes Postfach vom Exchange 2013 auf den Exchange 2007 zurück verschieben.
Die Migrationsbatch wurde erzeugt, lief aber niemals los.

Lösung:
Aus mir leider nicht ganz verständlichen Gründen, muss man die erste Migration des Postfaches ZUM Exchange 2013 in der Migrationsübersicht löschen und danach ist eine Rückmigration problemlos möglich.
Sie können diese Löschen in der ECP-Website unter "Postfach" -> "Migration".
Hier die entsprechenden Batches des Postfaches suchen und alle löschen.
Nach der Löschung (kann etwas dauern - immer wieder aktualisieren) kann das Postfach auf den alten Exchange verschoben werden!

Exchange 2007 - 2013 Migration: Outlook verlangt ständig Anmeldedaten (Credential Popup) für Öffentliche Ordner

Problem:
Ich bin gerade bei einer Migration von Exchange 2007 auf Exchange 2013.
Da die Migration im laufenden Betrieb durchgeführt wird und Exchange 2013 nicht direkt auf die Öffentlichen Ordner von Exchange 2007 zugreifen kann, musste ich die Discovery-Mailbox-Variante wählen um den Zugriff der umgezogenen Clients zu ermöglichen (siehe Quelle unten).
Dabei ist aufgefallen, dass alle umgezogenen Benutzer auf Exchange 2013 mehrmals am Tag die Verbindung zum Öffentlichen Ordner auf Exchange 2007 verloren haben und sich ein Anmeldefenster dazu öffnet. Das war sehr lästig und ich habe viel an den IIS-Einstellungen vom alten und neuen Exchange versucht - alles erfolglos!
Daraufhin habe ich herausgefunden, dass ich Outlook über die Exchange-Proxy-Einstellungen zu einem TCP-Connect "zwingen" kann, indem ich dort den Haken "Bei schneller Verbindung zuerst über HTTP verbinden" entferne. Damit versucht Outlook erst eine TCP-Verbindung und dann eine HTTP-Verbindung. Das klappt super gut und die Verbindung zum alten Server geht über RPC/TCP und zum neuen über RPC/HTTP.
Das nächste Problem: Das Autodiscover überschreibt meine Einstellungen und setzt mir den Haken immer wieder neu!!!

Lösung:
Man kann mittels Registry eine Policy setzen, wodurch man die Einstellung dauerhaft festsetzen kann.
Hier die Policy, wie ich Sie aktuell für Outlook 2007 - 2013 erfolgreich einsetze:

Key : HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\office\xx.0\Outlook\RPC
Value Name : proxyserverflags
Value Type : REG_DWORD
Value : 39 (27h)


Wobei xx für die jeweilige Office-Version steht (12 = Office 2007, 14 = Office 2010, 15 = Office 2013, 16 = Office 2016)

Das ist zwar nicht die sauberste Lösung, da ich eigentlich das Problem am Exchange 2007 nicht gelöst habe doch will ich gerade nicht die Konfiguration des alten Servers so extrem abändern, dass mir etwas anderes "um die Ohren fliegt". Außerdem wird der alte Exchange-Server nach der Migration sowieso abgeschaltet und damit erledigt sich dann auch das Problem.

Quelle für Flags: getadmx.com: RPC/HTTP-Verbindungs-Flags

Quelle Discover Public Folder 2013: Technet: Konfigurieren älterer öffentlicher Ordner, wenn sich die Postfächer der Benutzer auf Exchange 2013-Servern befinden


“Wenn du dir die Anwender deiner Programme als Idioten vorstellst, werden auch nur Idioten deine Programme verwenden.”
Linus Torvalds