Reverse Proxy; Outlook Anywhere (Exchange) Zugriff mapi over https + ActiveSync

Allgemeine Fragen zu Problemen. Keine Fehlerberichte oder Feature-Anfragen

Moderator: Securepoint

Antworten
horschd
Beiträge: 25
Registriert: Mo 28.06.2021, 11:39

Reverse Proxy; Outlook Anywhere (Exchange) Zugriff mapi over https + ActiveSync

Beitrag von horschd »

Hallo Forum,

ich möchte gerne den Reverse Proxy für Outlook Anywhere nutzen (Exchange 2019) - hierbei ist darauf zu achten, dass hier mittlerweile MAPI over HTTPS benutzt wird.
Outlook Anywhere tut jedoch leider bisher nicht via RevProxy von extern mit den URL-ACLs, genauso wenig scheint ActiveSync zu tun ( Mobil-Geräte )...
Darüber hinaus müssen einige virtuelle Verzeichnisse vom Exchange erreichbar gemacht werden.
Basiend von Eurem Wiki-Artikel "OWA über den Reverse Proxy", habe ich natürlich einige ACLs verwendet, damit u.a nicht auf die ECP (Exchange Control Panel) zugegriffen werden kann.

Leider scheinen die ACLs vom Typ "urlpath_regex" nicht sauber zu greifen oder ich mache was in der Syntax falsch, da Outlook Anywhere nicht sauber tut (Outlook 2019/365-Client) verbindet sich nicht, wenn ich von extern komme.
(OWA tut soweit)

1. Scheinbar arbeitet der Squid case-sensitiv - kann man das irgendwie auf case-insensitiv stellen? -> Da MS-Clients ja nicht case-sensitiv sind, bedeutet das viel Arbeit, was die URL-whitelist betrifft.
2. Wisst Ihr zufällig, welche URLs in der Whitelist mir noch fehlen?

Siehe anbei meine aktuellen ACLs (habe ich je auch als Grossgeschrieben)
^/owa

^/ews
^/eas
^/oab
^/autodiscover
^/microsoft-server-activesync
^/mapi
^/rpc
^/exchange

3. Anbei mal die Cache/Access-Logs vom squid-Reverse, interessant ist wohl hier je der Eintrag 'TCP_DENIED' - obwohl die url-Aufrufe ja eigentlich in der Whitelist sind. Habt ihr da noch Tipps?

reverse-access.log:1625475316.988      5 10.1.10.xx TCP_DENIED/403 149158 POST https://xyz.xx./mapi/emsmdb/? - HIER_NONE/- text/html
reverse-access.log:1625475322.206      5 10.1.10.xx TCP_DENIED/403 148908 POST https://xyz.xx.xyz/EWS/Exchange.asmx - HIER_NONE/- text/html
reverse-access.log:1625475327.290      8 10.1.10.xx TCP_DENIED/403 149148 POST https://xyz.xx.xyz/mapi/nspi/? - HIER_NONE/- text/html
reverse-access.log:1625475357.484    80 52.97.xx.xx TCP_DENIED/403 148588 POST https://xyz.xx.xyz/Microsoft-Server-ActiveSync? - HIER_NONE/- text/html


4. Geht anstelle von einer Whitelist auch einfach eine Blacklist? Somit würde theoretisch 'reichen', das /ECP-Verzeichnis zu blacklisten. Natürlich ist ne Whitelist immer besser, aber somit hätte ich hier n
Workaround

Vielen Dank


PS: 
-Exchange 2019
-UTM v12.x.x (latest) mit ACME-LetsEncrypt-Zert mit mSAN (spdyn + externes mSAN)
-MS Outlook 365 Client (aka 2019++)
-Apple iPhone iOS ActiveSync Client v14.x

MB1982
Beiträge: 20
Registriert: Fr 05.07.2019, 17:04

Beitrag von MB1982 »

Hallo Horschd,

es geht auch Deny als ACL Set. Habe ich auch bei mehreren Exchange 2019 so gelöst. Hat bei der Exchange Lücke im Mai auch wunderbar geholfen, kein Server wurde infiziert. Dabei aber ecp und ECP eintragen, da der Reverse Proxy case sensitiv ist.

Eine kleine Einschränkung gibt es. Der Abwesenheitsassistent greift auch auf das ECP Verzeichnis zu. Daher geht dann die Abwesenheit im Outlook nicht, nur über den OWA.

Alternative ist die Regex Einträge anzupassen. Habe die gleichen Einträge wie du und hier funktioniert alles bei mehreren Kunden einwandfrei. Auch Outlook Anywhere. SP empfiehlt Outlook nur per VPN anzubinden, was ich aber als für nicht praxistauglich halte. Nicht jeder baut erst ein VPN auf um seine Mails abrufen zu können. Bleibt nur das EAC auf Admins oder lokale IPs zu begrenzen, Frank hat da einen schönen Artikel:

https://www.frankysweb.de/exchange-2016 ... -freigeben

merlin
Beiträge: 263
Registriert: So 01.07.2007, 12:34
Wohnort: Erlangen

Beitrag von merlin »

Hallo MB1982,

kannst du für das Deny mal ein Beispiel nennen? Ich bekomme das leider nicht hin.

Gruß
Rolf

horschd
Beiträge: 25
Registriert: Mo 28.06.2021, 11:39

Beitrag von horschd »

Hallo MB1982,

ich habe es jetzt hinbekommen, und teile meine Recherche-Erfahrungen gerne mich euch:

1. Man muss auf dem Zielserver (Exchange) checken, ob die virtuellen Verzeichnisse die korrekte Authentifizierung anbieten:
Im Fall vom Reverse-Proxy der UTM muss man wohl die Auth vom Typ "Basic" ("Standardauthentifizierung") aktivieren je für Autodiscover und mapi
Prüfen kann man das via:
Bei External muss 'Basic' ebenfalls vorkommen

Achtung, man sollte schon wissen, was man tut. Denn bei Aktivierung der Standardauthentifizierung muss man sicherstellen, dass der komplette Transport-Kanal stets HTTPS-verschlüsselt ist!

Get-AutodiscoverVirtualDirectory | fl *auth*

InternalAuthenticationMethods : {Basic, Ntlm, WindowsIntegrated, WSSecurity, OAuth}

ExternalAuthenticationMethods : {Basic, Ntlm, WindowsIntegrated, WSSecurity, OAuth}


...

Get-MapiVirtualDirectory | fl *auth*

IISAuthenticationMethods      : {Basic, Ntlm, OAuth, Negotiate}

InternalAuthenticationMethods : {Basic, Ntlm, OAuth, Negotiate}
ExternalAuthenticationMethods : {Basic, Ntlm, OAuth, Negotiate}

...

2. Ebenfalls prüfen muss man, ob Outlook Anywhere aktiviert und ob ggf. SSL-Offloading aktiviert ist


Get-OutlookAnywhere | fl *ssl*

SSLOffloading            : True

ExternalClientsRequireSsl : True
InternalClientsRequireSsl : True


3. Hardening im UTM Reverse Proxy

Ich habe ein wenig kämpfen müssen, aber mit diesen Settings klappen sowohl Outlook Anywhere als auch ActiveSync
am Exchange 2019 mit Outlook 365.

Wichtig ist, die autodiscover-Domain auch durchzureichen, sonst schlägt das fehl! Bei mir gibt es noch eine zweite Backup-Domain!

dstdomain: xxx.yyy.zz 
dstdomain: xxx2.yyy.zz 
dstdomain: autodiscover.xxx.zz 

URLpath_regex

^/EWS ^/ews ^/mapi ^/Mapi ^/Microsoft-Server-ActiveSync ^/OAB ^/oab ^/owa ^/Autodiscover ^/autodiscover ^/eas ^/EAS ^/rpc ^/RPC ^/AUTODISCOVER ^/MAPI ^/exchange ^/Rpc


4. Tipp zwecks Troubleshooting:
Verwendet den MS Remote Connectivity Analyzer.
https://testconnectivity.microsoft.com/

Achtung, hierfür natürlich ein Test-Dummy-Acc anlegen; und nach dem Testen gleich wieder löschen, da MS ja dessen Credentials bekommt!



Ansonsten gilt natürlich die Aussage von Securepoint:
Sichert Eure Ziel-Server ab, lasst am besten nichts rein, es gilt VPN-only is security-king!

merlin
Beiträge: 263
Registriert: So 01.07.2007, 12:34
Wohnort: Erlangen

Beitrag von merlin »

Danke Horschd,

trotzdem würde mich das "DENY" beim URLpath_regex noch interessieren, ich habe hier eine Umgebung mit einem Webserver, da wäre DENY genau das richtige,

Gruß
Rolf

merlin
Beiträge: 263
Registriert: So 01.07.2007, 12:34
Wohnort: Erlangen

Beitrag von merlin »

Hallo MB1982,

wäre eine echte Hilfe wenn du uns verraten könntest, wie du das DENY hinbekommen hast.
Auf meine Anfrage beim Support habe ich das hier zurückbekommen:
"Wenn ich es richtig in Erinnerung habe gibt es hier keine Negation, die dafuer notwendig waere."
Das ist kein "Nein", aber geht in die Richtung ;)

Danke und Gruß
Rolf

Antworten