Apache2.xでOWA(Outlook Web Access)用のリバースプロキシ環境構築

 

(注意)実はこの設定でリバースプロキシを構築した際、不具合があってうまくOWAを参照できなかったことがあった。一応、参考までに当時の手順を残しておく。

Apacheでリバースプロキシを構築し、バックエンドのOWA(Outlook Web Access)にリクエストを転送する手順を確認した。
これもWindowsサーバをインターネットに晒したくないための措置。

実装方法はいくつかあるようだが、動作確認がとれたのは以下の方法。
ApacheはCentOS上の2.x系、Exchangeは2003を使用。

■Apache側の設定メモ

Apacheのconfigure時、mod_ssl、mod_proxy、mod_headers等を組み込んだ。
※mod_headersは後述のRequestHeader設定のため必須
参考までに、動作確認時のLoadModuleは以下のとおり。davやrewriteはOWA連携の観点では必要なし。


LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule headers_module modules/mod_headers.so

conf/extra/httpd-vhosts.confは以下のように設定した。
※httpd.confでIncludeしておくこと。
ApacheはインターネットからのSSLリクエストを受信し(基本認証を使用するため、SSL必須)、バックエンドのExchangeにはhttpでリクエストを転送。


#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
#
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80
NameVirtualHost 1.2.3.4:443 ←ApacheのIP
ProxyRequests Off

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#

ServerAdmin root@localhost
ServerName www.miracosta.co.jp
DocumentRoot /var/www/exchange
RequestHeader set Front-End-Https "On" ←Outlook Web Access連携のため必須
ProxyRequests Off
ProxyPreserveHost On

SSLEngine On
SSLCertificateFile /usr/local/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/httpd/conf/ssl.key/server.key


ProxyPass http://1.2.3.10/exchange ←バックエンドのExchangeのIPを指定すること
ProxyPassReverse http://1.2.3.10/exchange
SSLRequireSSL


ProxyPass http://1.2.3.10/exchweb
ProxyPassReverse http://1.2.3.10/exchweb
SSLRequireSSL


ProxyPass http://1.2.3.10/public
ProxyPassReverse http://1.2.3.10/public
SSLRequireSSL


OMA(Outlook Mobile Access)用の環境もあるのであれば、Locationを追記する必要がある。

■Exchange側の設定

Exchangeサーバ上のIISで、仮想ディレクトリExchangeのWindows統合認証を解除すること。
また、受信メール本文に記載されたURLリンクを辿るためには、仮想ディレクトリExchWeb/binで基本認証をオンにすること。規定のドメインも設定しておく。

■参考URL

HOWTO: OWA 2K/2K3 Front-end SSL Proxy with Apache 2.0
http://3cx.org/item/46

Protecting OWA with Apache
http://blog.scottlowe.org/2005/12/03/protecting-owa-with-apache/

ApacheReverseProxy
http://www.wlug.org.nz/ApacheReverseProxy

Xampp-ReverseProxy-fuer-Exchange-OWA-09.pdf
http://media.plominski.de/docs/Xampp-ReverseProxy-fuer-Exchange-OWA-09.pdf