OutLookAnywhereを利用するとVPN接続をしなくても社内にあるExchnageサーバにアクセスできるようになります。PCの場合はOutLookが使えるのでとても便利です。
Androidの場合はGmail、iOSの場合は標準メーラーからActiveSyncを利用して同様にアクセスできるようになります。メール受信をプッシュで通知してくれますのでPOP/IMAPよりも使い勝手がとても良くなります。
この設定を行えば、Office365の移行ツールが利用できます。
DNSの登録
公開DNSに2つのレコードを登録する必要があります。
; exchnage サーバ exchnage.rin-ka.net. A グローバルIP ; OutLookAnywhere に利用 autodiscover.rin-ka.net. CNAME exchnage.rin-ka.net.
OS
CentSO7は最小パッケージでインストールを実施しています。
SSL証明書の取得
OutLookAnywhereはのHTTPS通信を行いますので2つのSSL証明書が必須になります。今回はLet’s Encrypt を利用してSSL証明書を作成します。
Let’s Encrypt を利用する準備はこちらを参照ください。
# cd /etc/letsencrypt # ./certbot-auto certonly --webroot \ -w /var/www/html -d exchnage.rin-ka.net autodiscover.rin-ka.net \ -m [email protected] \
Apache
初めはnginxにてリバースプロキシを構築する予定でしたが、どうしても上手く動いてくれなかったので諦めてApacheにて稼働させました。
mod_proxy_msrpc のインストール
このモジュールが一番大事です。ソースからコンパイルを行うのですが、OSの最小パッケージからだと必要なパッケージを沢山追加する必要がありました。
# yum install httpd-devel # yum install git # yum groupinstall 'Development tools' # yum install check check-devel # yum install libuuid-devel
開発環境のパッケージを個々にいれるのは大変だったので、’Development tools’で一気にインストールしました。不要なパッケージも入ってしまいますがコンパイルが出来る事を優先しました。
# git clone git://github.com/bombadil/mod_proxy_msrpc # cd mod_proxy_msrpc # ./configure # make # cd .libs/ # cp mod_proxy_msrpc.so /usr/lib64/httpd/modules/
Gitからソースを展開します。環境チェックが完了したらコンパイルを実行し、モジュールを既定の位置にコピーします。
# cd /etc/httpd/conf.modules.d # vi 00-proxy.conf # add OutLookAnywhere LoadModule proxy_msrpc_module modules/mod_proxy_msrpc.so
モジュールをApacheに読み込ます設定を入れます。
非公開になった場合に備えて保存。mod_proxy_msrpc-master.zip(18 Aug 2014)
設定ファイルの編集
Let’s Encrypt で作成される fullchain.pem (サーバ証明書と中間証明書が結合したファイル)はApache 2.4.8 未満では利用できません。
CentOS7にインストールされるApacheのバージョンは 2.4.6 ですので、サーバ証明書と中間証明書を利用します。
# cd /etc/httpd/conf.d # vi exchange.conf <VirtualHost *:443> ServerName exchnage.rin-ka.net SSLEngine on # SSL証明書の設定 SSLCertificateFile /etc/letsencrypt/cert.pem SSLCertificateKeyFile /etc/letsencrypt/privkey.pem SSLCertificateChainFile /etc/letsencrypt/chain.pem SSLProxyEngine on ProxyPreserveHost On # ヘッダーの追加と削除 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 RequestHeader unset Expect early SetEnvIf User-Agent ".*MSIE.*" value BrowserMSIE Header unset WWW-Authenticate Header add WWW-Authenticate "Basic realm=exchnage.rin-ka.net" ProxyRequests Off ProxyPreserveHost On # オレオレ証明書のエラー回避 SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off # リバースプロキシの設定 # 内部ネットワークに設置されたExchnageサーバに # パケットを転送します。 # Outlook Web Access(OWA) ProxyPass /owa https://exchnage.rin-ka.local/owa ProxyPassReverse /owa https://exchnage.rin-ka.local/owa # Outlook Anywhere / RPC over http(s) OutlookAnywherePassthrough On ProxyPass /rpc https://exchnage.rin-ka.local/rpc ProxyPassReverse /rpc https://exchnage.rin-ka.local/rpc # Microsoft ActiveSync ProxyPass /Microsoft-Server-ActiveSync https://exchnage.rin-ka.local/Microsoft-Server-ActiveSync connectiontimeout=600 ProxyPassReverse /Microsoft-Server-ActiveSync https://exchnage.rin-ka.local/Microsoft-Server-ActiveSync <Directory /Microsoft-Server-ActiveSync> SSLRenegBufferSize 31457280 </Directory> </VirtualHost> <VirtualHost *:443> ServerName autodiscover.rin-ka.net SSLEngine on SSLCertificateFile /etc/letsencrypt/cert.pem SSLCertificateKeyFile /etc/letsencrypt/privkey.pem SSLCertificateChainFile /etc/letsencrypt/chain.pem SSLProxyEngine on ProxyPreserveHost On 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 RequestHeader unset Expect early ProxyRequests Off ProxyPreserveHost On SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off ProxyPass /autodiscover https://exchange.rin-ka.local/autodiscover ProxyPassReverse /autodiscover https://exchange.rin-ka.local/autodiscover </VirtualHost>
以上、「CentOS7 + Apache + Exhcange2013 OutLookAnywhereの設定」という記事でした。