Da Microsoft den TMG aka ISA zu 2015 einstellen will und eine Loadbalancer als Reverse Proxy etwas übertrieben ist, baue ich dafür immer wieder mal einen Apache mit mod_proxy. Und weil ich mir das nicht immer zusammensuchen will, hier wieder ein Artikel nur für mich selbst *g*
Zum Einsatz kommt ein Linux nach Wahl mit Apache und einigen Module. (mod_ssl, mod_proxy, mod_proxy_connect, mod_proxy_html, mod_headers, mod_deflate)
Dann noch etwas Konfiguration und fertig ist der einfache Proxy.
Der Exchange wird hier unter der IP: 192.168.111.2 betrieben.
Es werden nur die Verzeichnisse /owa, /ecp und /Microsoft-Server-ActiveSync weitergereicht.
Zum Weiterreichen von /ews (Exchange web Services) sind noch einige Anpassungen notwendig, da der Apache ab Version 2.0.55 mit dem Chunked Header ein Problem hat.
### Host auf 80 mit Redirects ###
<VirtualHost *:80>
ServerName server.domain.tld
ServerAlias www.domain.tld
ServerAlias mail.domain.tld
ServerAdmin webmaster@domain.tld
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
Header always set X-Frame-Options SAMEORIGIN
Header set Server Apache
Header unset X-AspNet-Version
Header unset X-OWA-Version
Header unset X-Powered-By
ProxyRequests Off
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/owa(.*) https://www.domain.tld/owa$1 [R,L]
RewriteRule ^/ecp(.*) https://www.domain.tld/ecp$1 [R,L]
RewriteRule ^/Microsoft-Server-ActiveSync(.*) https://www.domain.tld/Microsoft-Server-ActiveSync$1 [R,L]
DocumentRoot /var/www
<Directory />
Order deny,allow
Deny from all
</Directory>
<Directory /var/www>
DirectoryIndex index.php index.html
Options -Indexes +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
### SSL Host ###
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName www.domain.tld
ServerAdmin webmaster@domain.tld
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
Header always set X-Frame-Options SAMEORIGIN
Header set Server Apache
Header unset X-AspNet-Version
Header unset X-OWA-Version
Header unset X-Powered-By
ProxyRequests Off
ProxyPreserveHost On
SSLProxyEngine On
# owa
ProxyPass /owa https://192.168.111.2/owa
ProxyPassReverse /owa https://192.168.111.2/owa
# ecp
ProxyPass /ecp https://192.168.111.2/ecp
ProxyPassReverse /ecp https://192.168.111.2/ecp
# Microsoft-Server-ActiveSync
ProxyPass /Microsoft-Server-ActiveSync https://192.168.111.2/Microsoft-Server-ActiveSync
ProxyPassReverse /Microsoft-Server-ActiveSync https://192.168.111.2/Microsoft-Server-ActiveSync
DocumentRoot /var/www
<Directory />
Order deny,allow
Deny from all
</Directory>
<Directory /var/www>
DirectoryIndex index.php index.html
Options -Indexes +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
<Proxy *>
SetEnv proxy-nokeepalive 1
SetEnv force-proxy-request-1.0 1
Order deny,allow
Allow from all
</Proxy>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/www.domain.tld.pem
SSLCertificateKeyFile /etc/ssl/private/www.domain.tld.key
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
# old Server config
#BrowserMatch ".*MSIE.*" \
# nokeepalive ssl-unclean-shutdown \
# downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>
Weitere Links dazu im Netz
http://www.msxfaq.de/internet/apache.htm
http://geekerrific.blogspot.de/2010/08/exchange-2010-cas-apache-2-reverse.html