Apache als Reverse Proxy
RPC und Apache
Anscheinend kann Apache ab Version 2.0.55 nicht mehr als Reverse Proxy für
RPC over HTTP eingesetzt werden. Laut Apache Entwickler verhält sich
Outlook/Exchange nicht HTTP-Konform und könnte bei einer Umsetzung dieser
Abweichung ein Sicherheitsloch öffnen.
http://www.mail-archive.com/bugs@httpd.apache.org/msg23000.html
Andere Quellen behauten aber mit 2.2.8 eine funktionierende Konfiguration zu
haben
Case Sensibel
Die Apache Veröffentlichungen beachten Groß/Kleinschreibung. Die Benutzer
müssen also die "richtige" URL eingeben. Das ist ungewohnt, da ISA und IIS
nicht darauf achten.
Lesen Sie dazu auch die Seite OWA Absichern
Zwar ist der Marktanteil des ISA-Servers schon recht hoch aber sehr viele Firmen setzen andere Proxy Systeme für den Zugriff auf das Internet und die Veröffentlichung von Webseiten ein. Für den Outlook Webzugriff sind auch hier einige "Besonderheiten" zu beachten
Auch wenn Apache eher als leistungsstarker Webserver bekannt ist, so kann Apache über die "MOD"-Schnittstelle mit zusätzlichen Funktionen erweitert werden, z.B. mit einer Anmeldung gegen ein Active Directory. Apache kann zwar nicht als OWA-Server arbeiten, da er ISAPI-Filter nicht unterstützt, aber Apache kann über das Modul MOD_PROXY als HTTP-Proxy arbeiten. Das funktioniert sogar in beide Richtungen. Apache kann also als "OWA Veröffentlichungsserver" als auch als Proxy für den Zugriff über das Internet auf einen entfernten OWA-Server genutzt werden.
Ich bin nun kein Apache Spezialist, aber folgende Einträge in der httpd.conf sollen für OWA und ActiveSync funktionieren, wenn Sie "exchangesrever.firma.tld." durch ihren Server ersetzen.
LoadModule proxy_module /usr/lib/apache/mod_proxy.so
AddModule mod_proxy.c
ProxyPreserveHost On
#Config:
#Veroeffentlichungen fuer OWA
ProxyPass /owa https://exchangserver.firma.tld/owa
ProxyPassReverse /owa https://exchangeserver.firma.tld/owa
ProxyPass /exchange https://exchangserver.firma.tld/exchange
ProxyPassReverse /exchange https://exchangeserver.firma.tld/exchange
ProxyPass /Exchange https://exchangeserver.firma.tld/exchange
ProxyPassReverse /Exchange https://exchangeserver.firma.tld/exchange
ProxyPass /exchweb https://exchangeserver.firma.tld/exchweb
ProxyPassReverse /exchweb https://exchangeserver.firma.tld/exchweb
ProxyPass /public https://exchangeserver.firma.tld/public
ProxyPassReverse /public https://exchangeserver.firma.tld/public
# Einstellungen um per OWA das Kennwort zu aendern
ProxyPass /iisadmpwd https://exchangeserver.firma.tld/iisadmpwd
ProxyPassReverse /iisadmpwd https://exchangeserver.firma.tld/iisadmpwd
# Einstellungen fuer ActiveSync
ProxyPass /Microsoft-Server-ActiveSync https://exchangeserver.firma.tld/Microsoft-Server-ActiveSync
ProxyPassReverse /Microsoft-Server-ActiveSync https://exchangeserver.firma.tld/Microsoft-Server-ActiveSync
# Proxy fuer SSL aktivieren
SSLProxyEngine On
# Zeichensatz spezifieren fuer Umlaute
AddDefaultCharset ISO-8859-1
Auch wenn hier sich mehrere Parameter oft wiederholen, möchte ich drei Einträge erläutern, da sie sehr wichtig sind
- ProxyPreserveHost On
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypreservehost
Dieser Eintrag stellt sicher, dass der Hostname, welcher im Request durch den Client angekommen ist auch 1:1 an den nachfolgenden Server weiter gegeben wird. Sehr viele Webseiten (auch Exchange und WSUS) nutzen den Namen im Request um nicht nur die richtige Webseite anzusprechen, sondern auch in der Rückgabe vorhandenen Links mit dem richtigen Namen zu versehen. Nicht alle Anwendungen nutzen nämlich immer relative URLs. Und hiermit werden Probleme aufgrund interner (nicht erreichbarer) Hostnamen in Antworten schon mal verhindert - ProxyPass /owa https://exchangserver.firma.tld/owa
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypass
Dieser Eintrag lässt die angegeben remote Seite "https://exchangserver.firma.tld/owa" so erscheinen, als wenn Sie auf dem lokalen Server liegen würde. Dieser Eintrag ist also die relevante Konfiguration, dass der Apache auch tatsächlich einen Reverse Proxy ausführt - ProxyPassReverse /owa https://exchangeserver.firma.tld/owa
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypassreverse
Dieser Eintrag weißt den Apache an, die Namen im HTTP-Reply-Header umzuschreiben, d.h. immer wenn in der Antwort die Interne URL auftaucht, wird dieser durch die Adresse des Apache ersetzt. Das gilt aber nur für die Felder "Location", "Content-Location" und "URI header". Apache ersetzt aber so erst mal keine Einträge in den Nutzdaten. Diese sollten vom eigentlichen Webserver im Hintergrund durch die ProxyPreserveHost-Directive korrekt erstellt werden oder Sie können mit dem Modul "MOD_PROXY" auch noch diese Daten ersetzt.
Dies sind die drei wichtigsten Einstellungen aber nicht die einzigen Parameter, die in Verbindung mit Apache als Reverse Proxy eingesetzt werden können. Wer z. B. Kerberos oder NTLM einsetzt, wird in größeren Umgebungen die Buffer für die Ticketsize (Siehe Kerberos Ticketsize) und andere Dinge anpassen müssen.
Reverse Proxy mit Authentifizierung
Apache kann aber nicht nur ein dummer Reverse Proxy sein. Über entsprechende Module kann Apache sogar Windows DCs zur Überprüfung der Anmeldedaten heran ziehen. So könnte ein Apache den Zugriff auf die per Reverse Proxy veröffentlichten Dateien ebenfalls per Anmeldung absichern. Der Client würde also zuerst eine 401 Meldung vom Apache bekommen und müsste sich z.B.: per Kerberos anmelden, ehe der Apache dann die Anfragen weiter gibt. Allerdings wäre dann zu prüfen, wie der nachgeschaltete Server die Anmeldung akzeptiert. Apache kann zwar Header-Felder setzen aber das Kennwort des Anwender hat er in der Regel erst einmal nicht und kann dies daher auch nicht weiter geben. Inwieweit Kerberos Constraint Delegation möglich ist, wäre zu testen.
Weitere Links
Weitergehende Informationen finden Sie auf:
- Kerberos
-
Apache module mod_proxy
http://httpd.apache.org/docs/1.3/mod/mod_proxy.html -
Apache 2.0.55 unterstützt nicht mehr RPC
http://www.mail-archive.com/bugs@httpd.apache.org/msg23000.html -
HOWTO: OWA 2K/2K3 Front-end SSL Proxy with Apache 2.0
http://3cx.org/item/46
Xampp 1.4.13 funktioniert nicht mehr ordnungsgemäß mit RPC over HTTPS
Apache 2.2.8 soll gehen -
Apache als Reverse Proxy für Exchange
http://media.plominski.de/docs/Xampp-ReverseProxy-fuer-Exchange-RPCoverHTTPS-12.pdf
http://media.plominski.de/docs/Xampp-ReverseProxy-fuer-Exchange-OWA-09.pdf - http://www.administrator.de/%28Apache%29_Reverse_Proxy_f%FCr_OutlookWebAccess.html
-
How To: OWA2000/2003 SSL Proxy with Apache
http://3cx.org/static/pages/1
Damit wird ein Apache als Reverse Proxy vor den OWA-Server geschaltet. Dies ist aber genauso wie der ISA kein "Frontend"-Server mit einem Routing auf mehrere Backend Server etc. -
Apache als Reverse Proxy
http://www-personal.umich.edu/~malth/gaptuning/apache/ - http://www.schirrms.net/sme/SMEApacheReverseProxy.php
- http://httpd.apache.org/docs-2.0/mod/mod_proxy.html
- http://www.apacheweek.com/features/reverseproxies
-
Apache Reverse Proxy für Windows
http://www.icarusindie.com/mod_proxy_html/ - http://www.administrator.de/HOWTO%3A_%28Apache%29_Reverse_Proxy_f%FCr_OutlookWebAccess.html
-
Running a Reverse Proxy in Apache
http://www.apachetutor.org/admin/reverseproxies
Schöne schrittweise Beschreibung der Apache Proxy Konfiguration - ISA-Server und SSL
- Web Proxy
-
IT's Showtime Sichere Exchange Veröffentlichung mit ISA Server 2004
http://www.Microsoft.com/germany/technet/itsshowtime/sessionh.aspx?videoid=138 -
http://www.eisfair.org
Linux als einfacher Internet Server mit Apache Proxy zum testen
Fertiges VMware Image ebenfalls verfügbar - 330463 How to troubleshoot server ActiveSync HTTP error codes
- RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0
http://www.faqs.org/rfcs/rfc1945.html - RFC 2616 Hypertext Transfer
Protocol -- HTTP/1.1
http://www.faqs.org/rfcs/rfc2616.html
Ersetzt frühere RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1 - RFC 2518 - HTTP Extensions for Distributed Authoring -- WEBDAV
http://www.faqs.org/rfcs/rfc2518.html - 198116 Authentication Options and Limitations Using Proxy Server 2.0
Mit umfangreicher Beschreibung, warum NTLM über Proxy 2.0 nicht funktioniert. - 290113 How to publish Outlook Web Access behind Internet Security and Acceleration Server
- 280823 Troubleshooting OWA when the contents frame displays “Loading”
- 296232 Empty Inbox when using Internet Explorer 5 and later to gain access to OWA
- 207655 Setting up Web Publishing and OWA access through a proxy
- 330220 Outlook Web Access does not display Inbox messages when a "Loading..." message is displayed
- 262181 Virtual Internet Information Server directories used by Outlook Web Access
- 309508 IIS Lockdown and URLscan configurations in an Exchange environment
- Pound - Einfacher Reverse Proxy
http://www.apsis.ch/pound/ - Reverse Proxy/NAT
http://www.linuxvirtualserver.org/whatis.html - URL Rewrite
http://www.codeplex.com/Wikipage?ProjectName=urlrewriter
IIS-Applikation, die Anfragen auf eine URL annehmen und die Daten von einem anderen WebServer abrufen kann. - ModNTLM
http://modntlm.sourceforge.net/
Modul um NTLM-Authentifizierung zu addieren. Ich würde diesen Weg aber nicht mehr wählen und auf Kerberos setzen. - Kerberos mit Apache und anderen Systemen









