TSゲートウェイをISA Serverで保護してみる
こいつを参考にhttpsブリッジを構成してみた。
とりあえず、現行動かしているISA Server 2004で。
この機にISA Server 2006もぼちぼち実験中なので、いずれはそっちに乗り換える予定。
今回、TSゲートウェイ用のSSL証明書を自己署名証明書ではなく、証明機関をインストールしてやってみた。
証明機関なんてろくに使ったことないし、SSLの設定方法すらよく分かって無かったので苦労したといえば苦労した。
証明機関のあたりは、3.1.2 証明機関(CA)をインストールする こちらが大変参考になりました。
先に、やっちまったなあってのを書くと、
証明書の”一般名”にはIPアドレスではなく名前を使うこと!
→ ISA2006ではこの呪縛から解放されているっぽい(1/13加筆)
これやっちまうと、あとで手順を書くけれども、1からやり直しになっちゃう。
一般名を入力するのは一番最初なんでね。
一般名をグローバルIPアドレスにしちゃうと、ISAでSSLのリスナを作る時にどうにもこうにもならなくなる。
リスナのプロパティに、公開する内部サーバ(TSゲートウェイサーバ)を入力するところがあるのだが、そこの値と証明書の一般名が一致していなければならないのだ!
名前にしとけば、名前解決の仕組(DNSやらHostsやら)でグローバルとプライベートのIPアドレスをすり替えることができる。
オレ、一般名がグローバルIPアドレスの証明書作っちゃって、エラーの原因がさっぱりわかんなくってかなり嵌った。
ISAのログ監視では、ISA→TSGWサーバーでの接続エラーてかんじにしか出てこないし・・・。
ISAからTSGWサーバーへhttpsできないと話しにならんので、TSGWの方に適当なテキストファイルを置いてISAからブラウザでhttpsアクセスしてみた。
すると証明書が不正です警告が出たので、そこで証明書の名前とホスト名(FQDN)が違うよということが分かった。
やり直し中に、消さなくてもいい証明書まで消しちゃったらしく、証明機関サービスが起動しなくなっちゃったりもしたけど、証明機関のアンインストール&インストールで復帰してくれたからよかった。
たぶんIISで最初から入ってた証明書まで消しちゃったんだと思う。
ISAの設定に関しては冒頭で紹介したリンクを見るのが一番なんだけど、全体を通してざっくりと順序を書くと
- IISの[サーバー証明書]で[証明書の要求を作成] (一般名は名前で。この名前でTSGWにアクセスすることになる)
- 証明機関で[新しい要求の送信]で1のファイルを取り込む
- 保留中の要求のを発行し、発行した証明書から[ファイルにコピー]で.cerに
- IISの[サーバー証明書]で”証明書の要求を完了”で3のファイルを取り込む
- TSゲートウェイマネージャでサーバーのプロパティの[SSL証明書]タブで3の証明書をインストール
- 証明機関のCAのプロパティの[全般]タブでCA証明書を[ファイルにコピー](これクライアントに配る)
- 6をLAN内のPCにインストールし、Hostsで1の名前にTSゲートウェイの内部IPアドレスを割り当てて、ローカルでTSゲートウェイ経由のリモートデスクトップ接続テスト
- 証明書スナップイン(mmc)で[個人]にある5の証明書(目的が”サーバー認証”のやつ)を[エクスポート](どのような設定でエクスポートするかは冒頭のリンク参照)
- 8をISA Serverにコピってインストール(インストール方法は冒頭リンク参照)
- ISAのファイアウォールポリシーにTSゲートウェイ用のWeb公開ルールを追加(設定方法は冒頭リンク参照)
- ISAのHostsで1の名前にTSゲートウェイの内部IPアドレスを割り当て(7のHostsエントリと同じ)
- クライアントPCのHostsで1の名前にTSゲートウェイのグローバルIPアドレスを割り当てるように変更
ISA Server 2006では2004と比べると、httpsブリッジする時の設定が柔軟になったようだ。公開先タブで、内部のコンピューター名またはIPアドレスを指定できるようになってる。