philipp05
Goto Top

Microsoft Exchange Server 2019 x Apache2 reverse Proxy - Weiterleitung zur internen URI unterbinden?

Servus!

Ich habe eine Problem bei der Installation eines Exchange Servers. Der Server läuft wie gewohnt auf einem Windows Server 2022 und ich wollte die OWA per Domain öffentlich zur Verfügung stellen.

Deshalb hatte ich Apache2 genutzt und reverse proxy konfiguriert. Das sieht dann so aus:

ProxyPass / https://10.0.120.50:443/ nocanon
ProxyPassReverse / https://10.0.120.50:443/

Diese Konfiguration gibt mir auch Zugriff auf die OWA, jedoch nur intern, da mich die Domain zur internen IP weiterleitet. (domain.example -> 10.0.120.50)
Weiß möglicherweise jemand weiter?

Beste Grüße
Philipp

Content-ID: 6389379529

Url: https://administrator.de/contentid/6389379529

Ausgedruckt am: 24.11.2024 um 10:11 Uhr

2423392070
2423392070 16.03.2023 um 08:30:20 Uhr
Goto Top
DNS und Reverse DNS passt?
Wie sieht der Rest der Konfig aus? Sicher dass du ohne FQDN in der Konfig arbeiten willst?
Philipp05
Philipp05 16.03.2023 um 08:51:21 Uhr
Goto Top
DNS und rDNS passt und ist soweit richtig konfiguriert.
Der Rest der Konfig sieht folgendermaßen aus:

<IfModule mod_ssl.c>
<VirtualHost *:443>
  ServerName mail.domain.example
  ServerAdmin admin@domain.example

  AllowEncodedSlashes NoDecode

  SSLProxyEngine on
  SSLProxyVerify none 
  SSLProxyCheckPeerCN off
  SSLProxyCheckPeerName off
  SSLProxyCheckPeerExpire off
  ProxyPass / https://10.0.120.50:443/ nocanon
  ProxyPassReverse / https://10.0.120.50:443/
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLCertificateFile /path/to/crt
SSLCertificateKeyFile /path/to/key
</VirtualHost>
</IfModule>
2423392070
2423392070 16.03.2023 um 08:59:20 Uhr
Goto Top
Das sieht sehr wenig aus. Es geht nur um OWA?

Was passiert genau, wenn es von extern nicht geht?
Kannst du HTTP-Header mitschneiden und auswerten?
6376382705
6376382705 16.03.2023 um 09:02:31 Uhr
Goto Top
Hi,

Apache2
Auch wenn es nicht gefragt ist: ich würde Dir nginx ans Herz legen. Lightweight, schnell und ideal als Reverseproxy.
Apache2 ist dagegen sehr langsam und arg unflexibel.

Just 2 cents.

Viel Erfolg, Grüße
Philipp05
Philipp05 16.03.2023 um 09:10:51 Uhr
Goto Top
Das wichtigste wäre erstmal OWA. Trotzdem sollte es wegen dem Proxy jeglichen Traffic umleiten.
Ich habe mir aber erstmal den HTTP-Header angesehen und folgendes entnommen:

Request:

Request URL: https://owa.domain.example/
Request Method: GET
Status Code: 302 (Welcher hier schon auf einen Fehler hindeutet)

Response:

location: https://10.0.120.50/owa
server: cloudflare (DNS läuft bei Cloudflare)
x-feserver: ws12050 (hostname exchange server)

Das ist natürlich auf das wichtigste zugeschnitten. Falls du mehr benötigst, sag einfach Bescheid.
2423392070
2423392070 16.03.2023 um 09:12:59 Uhr
Goto Top
Und der externe öffentliche Client bekommt dann auch diese private IP genannt?
Philipp05
Philipp05 16.03.2023 um 09:17:57 Uhr
Goto Top
So ist es. Dem Gerät, das darauf eben zugegriffen hat, wurde auch die interne IP übermittelt.
2423392070
2423392070 16.03.2023 um 09:22:20 Uhr
Goto Top
Der Externe, der kein VPN hat, bekommt eine interne IP genannt? Und das vom CF DNS?
Philipp05
Philipp05 16.03.2023 um 09:24:22 Uhr
Goto Top
Nein, der externe Client bekommt von Cloudflare die externe, öffentliche IP mitgeteilt. So wie ich das sehe, leitet der Exchange Server selbst an die interne IP weiter.
2423392070
2423392070 16.03.2023 um 09:26:18 Uhr
Goto Top
Wo hast du wie den Header mitgeschnitten?
Philipp05
Philipp05 16.03.2023 um 09:28:49 Uhr
Goto Top
In dem Fall relativ Simpel mit den Chrome DevTools. Falls benötigt könnte ich auch versuchen, am Server den Header zu catchen.
2423392070
2423392070 16.03.2023 um 09:37:29 Uhr
Goto Top
Wenn jemand im öffentlichen Internet, eine private IP aufruft, würde der erste ISP Router das nicht routen. Daher die Frage.
Vielleicht habe ich auch einen Kurzschluss im Kopf, daher noch einmal die Frage.
Philipp05
Philipp05 16.03.2023 um 09:51:52 Uhr
Goto Top
Nein, der DNS Eintrag ist so gesetzt, dass er auf die öffentliche IP zeigt. Der Apache2 Server erkennt die Verbindung auch, jedoch leitet irgendwas und irgendwie schlussendlich auf die interne weiter.
2423392070
2423392070 16.03.2023 aktualisiert um 10:13:45 Uhr
Goto Top
Warum auf die IP? Cname/Alias macht Sinn.

Du solltest klären, warum der Client die IP bekommt. Ich tippe auf die Konfig des Indianers mit der IP.
Mit IPs arbeiten ist meistens schlecht, besonders wenn es nicht lokale Sachen sind.

DNS muss perfekt sitzen.
6247018886
Lösung 6247018886 16.03.2023, aktualisiert am 17.03.2023 um 07:20:17 Uhr
Goto Top
Dani
Dani 16.03.2023 um 12:23:52 Uhr
Goto Top
Moin,
Request URL: https://owa.domain.example/
Request Method: GET
Status Code: 302 (Welcher hier schon auf einen Fehler hindeutet)
und
mail.domain.example
sind zwei paar Stiefel. Das würde ad-hoc erst einmal bedeuten, dass es von owa.domain.example zu mail.domain.example eine Weiterleitung gibt. Damit wäre der HTTP Code 302 erst einmal richtig.

Nein, der DNS Eintrag ist so gesetzt, dass er auf die öffentliche IP zeigt. Der Apache2 Server erkennt die Verbindung auch, jedoch leitet irgendwas und irgendwie schlussendlich auf die interne weiter.
Geh doch hin, nimm einem Client im Netzwerk und manipuliere die hosts Datei. Und zwar dahingehend, dass du dort den FQDN mail.domain.example hinzufügst. Als IP-Adresse nimmst du die des Servers auf dem der Apache2 läuft. Somit kannst du dein Setup verifizieren, ohne dass euere Firewall oder CF Einfluss hat.


Gruß,
Dani

P.S. Ein Reverse Proxy, der die Verbindungen 1:1 durchreicht, schützt dich bzw. dein Exchange Server vor keinem Angriffsvektor.
Philipp05
Philipp05 17.03.2023 um 07:14:23 Uhr
Goto Top
Zitat von @6247018886:

Da fehlen einige Direktiven fehlen unter anderem diese:
Apache als Reverse Proxy für Exchange Server (Teil 1)
Apache als Reverse Proxy für Exchange Server (Teil 2)

Cheers briggs

Danke für die hilfreichen Links! Daraus habe ich nun die Konfiguration entnommen und anstatt jede Verbindung (also /) umzuleiten, hat es tatsächlich geholfen, nur die jeweiligen Links anzusprechen. Nun habe ich von außen Zugriff!

Ich danke auch @2423392070 und @Dani für die Unterstützung!

Ich wünsche ein schönes Wochenende!
Grüße
Philipp