そーいえば・・・RPC over HTTP・・・
去年blogやろうと思って書き留めてたメモ帳に残ってたものを見てたら面白いのがあったので
記載してみる・・・
そういや、こんな仕事してたなぁ。。。なんて思いふけってみたりして・・・w
RPC over HTTP使われている方っていますか?
最近仕事で導入したのでちょっと書いてみようかと、
RPC over HTTPはExchageとOutlook2003のMAPI通信をHTTPもしくはHTTPSでトンネル化すると言うものです。
これを有効にすればVPNを張らなくても会社のExchangeサーバと簡単にMAPI接続が張れるのでOWAなんてもう古いぜ!ってなノリでやってみましたが。。。事前に準備するものがいくつかありました。
・RPC Proxyコンポーネント(デフォルト無効)
・証明書
・Outlook2003のRPC over HTTP用パッチ
・ExchangeSP1
てな訳でまずはExchangeにSP1を適用。
システムマネージャからサーバのプロパティでRPC over HTTPタブからフロントエンドとバックエンドを設定します。(今回はフロント2台、バック1台)
続いて各フロントエンドのIISマネージャからRPCディレクトリのディレクトリアクセスで匿名を無効
Windows認証と基本認証を有効に設定。
SSLで通信出来るように証明書をインストール
適当な証明書をLinuxで作成してRPCディレクトリをSSL用に設定。(これが悲劇を・・・)
そしてクライアント側はパッチを適用、再起動は無しでした。
そうしてみるとExchangeアカウントの詳細設定にある接続タブに
「[インターネットを経由した Exchange 接続」という新しい項目が増えました!
この中で設定した項目は:
・「Exchange 用のプロキシ サーバーへの接続に使用する URL」ExchangeサーバのURL
つまりサーバ名を入力します。
例:www.freeend.co.jp
・「セキュリティで保護された接続 (SSL) のみ使用する」 チェック ボックスをオン!
・「SSL 接続時にセッションを相互認証する」もオン!
・「プロキシ サーバーのプリンシパル名」にはmsstd:www.freeend.co.jpを入力。
・「Exchange 用のプロキシ サーバーに接続する際の認証方法」で基本認証を選択!
これで繋がる!と思いレッツトライ!
(この時にoutlook /rpcdiagと言うコマンドを使うとHTTPSで接続しているかどうかが分かる)
しかし、全然ダメ!Snifferでパケットを眺めてみると HTTPSで通信しに行っているものの
そこから先のセッションが全く無い!
何故なんだろう?何かSSLセッションで問題が。。。
ん?証明書か?
IEでHTTPS接続してみるとやっぱり「信頼出来ない証明書メッセージ」が出てくる。
これを処理できないでいた訳の様でした・・・
仕方ないのでドメインコントローラにルートCAを設立!IISから証明書を要求して再度接続、あっさり解決!
ホッと一安心したのもつかの間、今度はHTTPでの接続を試してみる。
まずはクライアントの設定をHTTPSからHTTPに変更、IIS上では両対応になっているので大丈夫だろうと思って
接続すると、あっさり失敗。。。
何が悪いのかなぁ?と思って調べてみると、"HTTPで接続する場合はフロントエンドをレジれ!"
と書いてある。嫌だなぁと思いながらもレジる。
HKLM\Software\Microsoft\Rpc\RpcProxyにDWORD値で"AllowAnonymous"を1で追加し再起動。
あっさり接続ヽ(´ー`)ノ
その後も色々試しましたがProxyサーバを介してもうまくいったのでそれなりに使えるのでは?
セキュリティ的にどうかはまだ問題が残りそうですがExchangeの為に
VPNを導入するコストを考えれば安く済むのではないでしょうか?