CentOS7 + Apache + Exhcange2013 OutLookAnywhereの設定

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 を利用する準備はこちらを参照ください。

Nginx + Let's Encrypt のインストール
事前準備 インストールは自動化されていますので、動かすための必要パッケージをインストールをします。 # yum -y install...
Amazon Linux + Apache + Let's Encrypt のインストール
事前準備 インストールは自動化されていますので、動かすための必要パッケージをインストールをします。 # yum -y install...
# cd /etc/letsencrypt
# ./certbot-auto certonly --webroot \
 -w /var/www/html -d exchnage.rin-ka.net autodiscover.rin-ka.net \
 -m sample@example.com \

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>
スポンサーリンク

シェアする

フォローする

スポンサーリンク