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
Reverse Proxy; Outlook Anywhere (Exchange) Zugriff mapi over https + ActiveSync
Moderator: Securepoint
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
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
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!
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!
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
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