« これ。 | 閑話休題 »
2010.06.08: Office Communication Server 2007 R2 外部接続
久しぶりにテクニカルな内容で。
ここ最近、表題の件でやたらと悩んでおりました。
office communication server 2007 R2(以下 OCS2007 R2) を外部から参照するという構成。
なんとか解決したので、今後の為に備忘録を残しておきます。
以下がその内容。
OCS2007R2は内部 (LAN) での展開はぺぺぺっとやれば、何ら問題ないのですが、外部 (WAN) から接続しようとすると、やたらと面倒になります。
外部公開の詳細な構成はマイクロソフトの技術書を見てもらうとして、最低限必要なものは
・エッジサーバ
・ISAサーバ
の二つになります。
正直、外部公開をするためだけに二つもサーバを用意するのは、面倒きわまりないのですが、ISAは以前よりExchangeの外部公開で使用していたので、今回はエッジサーバだけを構築します。(ISAは2006を使用)
OCS2007 R2は完全に64bit onlyでしか動作しないので、64bit CPUを搭載したサーバを用意します。
マイクロソフトのスターティングガイドを見ると、メモリは最低8GB必要と書いてありますが、そんなメモリを搭載したサーバは無いので、とりあえず4GBで我慢してもらう。
OSはWindows 2003 Server Standard Edition. R2 SP2 64bit。
(内部に配置したOCS2007 R2 Server は Windows 2008 Standard 64bit)
エッジサーバの構築はスターティングガイドの通りに行っていけばいいんですが、これがやたらと面倒。
まず、IPの確保。
スターティングガイドによると、必要なIPは
・グローバル IP x 3 (エッジサーバ用)
・グローバル IP x 1 (ISA用)
・ローカル IP x 1 (エッジサーバ用)
となってます。
グローバルIPはポートを変更すれば、一つでよいそうですが、ISAの分を考えると最低でも二つ。スターティングガイドの通りに構築すると、グローバルIPが4つ必要となります。
この時点で、普通なら「やめますか!!」となるんですが、仕事なのでそうも言ってられず、ムカムカしつつも続けます。
今回、グローバルIPが多く使える環境だったので、4IPを使用しました。
グローバルIP (DMZ)は 10.1.1.1 - 10.1.1.4
中間ネットワーク (LAN)は 192.168.1.0/24
LANネットワーク (LAN2)は 192.168.10.0/24
とします。
また外部向けのDNSと内部向けDNSが必要になります。
外部向けDNSは今回、既存のBINDを使用。ゾーン名は hogehoge.co.jp
内部向けDNSはActive Directory内のMS DNSを使用。 hogehoge.local
とします。
さらにさらに、証明機関が二つ必要になります。
外部の証明機関を使用する場合は、内部向けだけで問題有りません。
今回は、証明書が4つ必要になり、そのコストも馬鹿にならないので、証明機関を二つとも、社内で立ち上げます。
・HOGEHOGE-CA ... 内部向けCA エンタープライズCA
・EXT-CA ... 外部向けCA スタンドアロンルートCA
とします。
まずはISAの設定。ISAはDMZゾーンに配置し、WAN側のI/FはDMZへ、LAN側のI/Fは中間ネットワークに接続します。
ここまでの環境は既に有ったので、新たにOCSを公開するための設定をISAに追加。
以下の手順で行いました。
1.外部向け証明書発行機関を設定 (適当なサーバにインストール。スタンドアロンのROOTCAとして設定)
2.ISAサーバのDMZ I/F にIPエイリアスを割り振る。(10.1.1.1)
3.新規に設定したIPに対して外向けのDNS名を設定する。(BIND)
※DMZのI/Fに割り当てるFQDNは OCSEXT01.hogehoge.co.jp とします。
4.3の手順で追加したFQDN名に対して1の証明機関から証明書を発行
※内部のOCSに新規の仮想ホストを追加して、証明書のCSRを作成。WEB経由で証明書発行を申請
5.4.の手順で発行した証明書をインストール
6.新規FireWall Policyを追加する。
※リスナ追加時に使用する証明書は5.の手順でインストールしたもの。
7.外部からOCSへアクセスできているか、ブラウザから確認
※正常に設定できている場合、ブラウザにOCSからのエラーが表示される。
8.必要なポートをFirewall (ISAではない)で許可。
この時点で、かなりほげほげしてきます。
ここまで終わったら、次はエッジサーバの構築。に行きたいところですがまずは外部公開用のホスト名をFQDNで、ネームサーバへ設定します。
今回は使用しているサーバがBINDなので、SRVレコードは除外しました。
ホスト名は以下のように設定
(外部向け、ホストの登録 BINDに登録 ()内はIP)
・aeexternal.hogehoge.co.jp (10.1.1.2)
・weexternal.hogehoge.co.jp (10.1.1.3)
・avexternal.hogehoge.co.jp (10.1.1.4)
・sip.hogehoge.co.jp (10.1.1.2)
(内部向け、ホストの登録 AD内のDNSに登録)
・OCSEDGE01.hogehoge.local (192.168.1.1)
その後、ようやくエッジサーバの構築。と思いますが、その前に外部向けルート証明書を内部OCSへインストールします。ここの手順は割愛します。
今度こそ、ようやくエッジサーバの構築。
OSの基本セットアップが終わっているという前提で、OCSのメディアからインストーラーを起動。
インストーラーから、エッジサーバの構築メニューを開きます。
あとはウィザード通りに進めます。
ウィザードを進めていくと、各サービスの使用するIP、全てに別々のホスト名を割り振り、全てのホスト名に対して、サーバ証明書を作成するパートになります。
※上記ホスト名とIPを参照。
くくっ。。こんなのめんどくさすぎて、普通、やらんだろ、、「やめますか!!」という気持ちになりましたが、ここは何とか、気持ちを落ち着かせて、外部向け証明書を三つ、内部向けローカルIPに一つの、計4つのサーバ証明書を作成する。
いやいやいや!さすがはマイクロソフトさんですな。
こんな面倒なことをユーザーに実施させるとは!と独白しつつ、インストールを進める。
最終的にウィザードを完了後、ログをチェックしてインストールを終了。
この後、接続テストを行うわけですが、この前に二つほど作業。
一つはエッジサーバへ接続するためのポート:443と5061をfirewallで許可します。(ISAではない。)
もう一つは接続テスト用PCに外部向けルート証明書、内部向けルート証明書をインストール。インストールの方法はここでは割愛します。
これで準備が整いました!!(みずっち風)
早速、外部から接続をテストしてみます。
正直、まったくつながる気はしなかったのですが、予想通り全くつながりません。
いろいろな部分 (firewall 、エッジサーバ、内部OCSなど) でパケットキャプチャやログを取ってみるが、どうもエッジサーバが全く反応していない感じ。
httpsで外部からエッジサーバまでパケットは来ているが、その後、エッジサーバのグローバルIPから返事 (ACK) が来ない。
証明書を入れ替えて見たり、設定を見直して見たりと、いろいろと試してみましたが、なにをやっても接続できないので、ちょっと冷静に考えてみました。
そういえば、以前、exchangeの外部公開時もこんなことあったな。。と思い出す。
そのときは、、
ネットワークインターフェイスが2枚ある時は、通常、グローバル側にデフォルトゲートウェイを設定して、LAN側のI/Fには、GWを設定せず、スタティックルートを設定するんだった。
そこで、エッジサーバのネットワーク設定を確認すると、LAN側のI/FにGWが設定してあり、WAN側にもGWが設定されていました。
まず、LAN側のゲートウェイを削除し、変わりに内部LANへのゲートウェイをroute addコマンドで追加します。
ここで、再度、動作確認。
おそるおそる、接続してみると、外部からcommunicatorで接続が可能になりました。
だた、接続の際、認証ダイヤログが出力されてそこから先へ進みません。
エラーは認証プロトコルが対応していないという内容。
続きます。。
ここ最近、表題の件でやたらと悩んでおりました。
office communication server 2007 R2(以下 OCS2007 R2) を外部から参照するという構成。
なんとか解決したので、今後の為に備忘録を残しておきます。
以下がその内容。
OCS2007R2は内部 (LAN) での展開はぺぺぺっとやれば、何ら問題ないのですが、外部 (WAN) から接続しようとすると、やたらと面倒になります。
外部公開の詳細な構成はマイクロソフトの技術書を見てもらうとして、最低限必要なものは
・エッジサーバ
・ISAサーバ
の二つになります。
正直、外部公開をするためだけに二つもサーバを用意するのは、面倒きわまりないのですが、ISAは以前よりExchangeの外部公開で使用していたので、今回はエッジサーバだけを構築します。(ISAは2006を使用)
OCS2007 R2は完全に64bit onlyでしか動作しないので、64bit CPUを搭載したサーバを用意します。
マイクロソフトのスターティングガイドを見ると、メモリは最低8GB必要と書いてありますが、そんなメモリを搭載したサーバは無いので、とりあえず4GBで我慢してもらう。
OSはWindows 2003 Server Standard Edition. R2 SP2 64bit。
(内部に配置したOCS2007 R2 Server は Windows 2008 Standard 64bit)
エッジサーバの構築はスターティングガイドの通りに行っていけばいいんですが、これがやたらと面倒。
まず、IPの確保。
スターティングガイドによると、必要なIPは
・グローバル IP x 3 (エッジサーバ用)
・グローバル IP x 1 (ISA用)
・ローカル IP x 1 (エッジサーバ用)
となってます。
グローバルIPはポートを変更すれば、一つでよいそうですが、ISAの分を考えると最低でも二つ。スターティングガイドの通りに構築すると、グローバルIPが4つ必要となります。
この時点で、普通なら「やめますか!!」となるんですが、仕事なのでそうも言ってられず、ムカムカしつつも続けます。
今回、グローバルIPが多く使える環境だったので、4IPを使用しました。
グローバルIP (DMZ)は 10.1.1.1 - 10.1.1.4
中間ネットワーク (LAN)は 192.168.1.0/24
LANネットワーク (LAN2)は 192.168.10.0/24
とします。
また外部向けのDNSと内部向けDNSが必要になります。
外部向けDNSは今回、既存のBINDを使用。ゾーン名は hogehoge.co.jp
内部向けDNSはActive Directory内のMS DNSを使用。 hogehoge.local
とします。
さらにさらに、証明機関が二つ必要になります。
外部の証明機関を使用する場合は、内部向けだけで問題有りません。
今回は、証明書が4つ必要になり、そのコストも馬鹿にならないので、証明機関を二つとも、社内で立ち上げます。
・HOGEHOGE-CA ... 内部向けCA エンタープライズCA
・EXT-CA ... 外部向けCA スタンドアロンルートCA
とします。
まずはISAの設定。ISAはDMZゾーンに配置し、WAN側のI/FはDMZへ、LAN側のI/Fは中間ネットワークに接続します。
ここまでの環境は既に有ったので、新たにOCSを公開するための設定をISAに追加。
以下の手順で行いました。
1.外部向け証明書発行機関を設定 (適当なサーバにインストール。スタンドアロンのROOTCAとして設定)
2.ISAサーバのDMZ I/F にIPエイリアスを割り振る。(10.1.1.1)
3.新規に設定したIPに対して外向けのDNS名を設定する。(BIND)
※DMZのI/Fに割り当てるFQDNは OCSEXT01.hogehoge.co.jp とします。
4.3の手順で追加したFQDN名に対して1の証明機関から証明書を発行
※内部のOCSに新規の仮想ホストを追加して、証明書のCSRを作成。WEB経由で証明書発行を申請
5.4.の手順で発行した証明書をインストール
6.新規FireWall Policyを追加する。
※リスナ追加時に使用する証明書は5.の手順でインストールしたもの。
7.外部からOCSへアクセスできているか、ブラウザから確認
※正常に設定できている場合、ブラウザにOCSからのエラーが表示される。
8.必要なポートをFirewall (ISAではない)で許可。
この時点で、かなりほげほげしてきます。
ここまで終わったら、次はエッジサーバの構築。に行きたいところですがまずは外部公開用のホスト名をFQDNで、ネームサーバへ設定します。
今回は使用しているサーバがBINDなので、SRVレコードは除外しました。
ホスト名は以下のように設定
(外部向け、ホストの登録 BINDに登録 ()内はIP)
・aeexternal.hogehoge.co.jp (10.1.1.2)
・weexternal.hogehoge.co.jp (10.1.1.3)
・avexternal.hogehoge.co.jp (10.1.1.4)
・sip.hogehoge.co.jp (10.1.1.2)
(内部向け、ホストの登録 AD内のDNSに登録)
・OCSEDGE01.hogehoge.local (192.168.1.1)
その後、ようやくエッジサーバの構築。と思いますが、その前に外部向けルート証明書を内部OCSへインストールします。ここの手順は割愛します。
今度こそ、ようやくエッジサーバの構築。
OSの基本セットアップが終わっているという前提で、OCSのメディアからインストーラーを起動。
インストーラーから、エッジサーバの構築メニューを開きます。
あとはウィザード通りに進めます。
ウィザードを進めていくと、各サービスの使用するIP、全てに別々のホスト名を割り振り、全てのホスト名に対して、サーバ証明書を作成するパートになります。
※上記ホスト名とIPを参照。
くくっ。。こんなのめんどくさすぎて、普通、やらんだろ、、「やめますか!!」という気持ちになりましたが、ここは何とか、気持ちを落ち着かせて、外部向け証明書を三つ、内部向けローカルIPに一つの、計4つのサーバ証明書を作成する。
いやいやいや!さすがはマイクロソフトさんですな。
こんな面倒なことをユーザーに実施させるとは!と独白しつつ、インストールを進める。
最終的にウィザードを完了後、ログをチェックしてインストールを終了。
この後、接続テストを行うわけですが、この前に二つほど作業。
一つはエッジサーバへ接続するためのポート:443と5061をfirewallで許可します。(ISAではない。)
もう一つは接続テスト用PCに外部向けルート証明書、内部向けルート証明書をインストール。インストールの方法はここでは割愛します。
これで準備が整いました!!(みずっち風)
早速、外部から接続をテストしてみます。
正直、まったくつながる気はしなかったのですが、予想通り全くつながりません。
いろいろな部分 (firewall 、エッジサーバ、内部OCSなど) でパケットキャプチャやログを取ってみるが、どうもエッジサーバが全く反応していない感じ。
httpsで外部からエッジサーバまでパケットは来ているが、その後、エッジサーバのグローバルIPから返事 (ACK) が来ない。
証明書を入れ替えて見たり、設定を見直して見たりと、いろいろと試してみましたが、なにをやっても接続できないので、ちょっと冷静に考えてみました。
そういえば、以前、exchangeの外部公開時もこんなことあったな。。と思い出す。
そのときは、、
ネットワークインターフェイスが2枚ある時は、通常、グローバル側にデフォルトゲートウェイを設定して、LAN側のI/Fには、GWを設定せず、スタティックルートを設定するんだった。
そこで、エッジサーバのネットワーク設定を確認すると、LAN側のI/FにGWが設定してあり、WAN側にもGWが設定されていました。
まず、LAN側のゲートウェイを削除し、変わりに内部LANへのゲートウェイをroute addコマンドで追加します。
ここで、再度、動作確認。
おそるおそる、接続してみると、外部からcommunicatorで接続が可能になりました。
だた、接続の際、認証ダイヤログが出力されてそこから先へ進みません。
エラーは認証プロトコルが対応していないという内容。
続きます。。
