前回、sshポートフォワーディングを用いた踏み台経由での接続について記述したが、Windowsでちゃんと用意されている機能はないものか、と調べてみたところWindows ServerにRDPを中継するサービス『RD ゲートウェイマネージャ』という機能が有ることが分かった。今回は、この機能について検証を行ってみる事にする。
なお、検証にはWindows Server 2008 R2を用いるものとし、Active Directoryは未導入、Windows ファイアーウォールは停止している。
1.インストール
まずは踏み台となるWindows Serverへ、RDゲートウェイマネージャをインストールする所から。
サーバーマネージャーから、役割の追加を行う。
そのまま次へ。
「リモートデスクトップサービス」にチェックを入れて次へ。
リモートデスクトップサービスに関する注意文が表示されるので、次へ。
リモートデスクトップサービスに追加する役割サービスの選択画面が表示されるので、「リモートデスクトップ ゲートウェイ」を選択する。
「リモートデスクトップ ゲートウェイ」選択後、以下のような確認ウィンドウが表示されるので、そのまま「必要な役割サービスを追加」をクリックする。
「リモートデスクトップ ゲートウェイ」選択完了後、次へ。
リモートデスクトップゲートウェイにはSSL証明書が必要なのだが、作成は後から行うため「SSL暗号化の証明書を後で選択する」を選択し次へ。
承認ポリシーの作成を行うかどうか聞かれるので、「今すぐ作成する」を選択する。
RDゲートウェイ経由で接続できるユーザーグループを聞かれる。
今回は検証なので、Administratorのみの状態で次へ。
RD_CAPの名前についても、デフォルトのまま次へ。
RD_RAPの名称はそのままで、RD ゲートウェイマネージャ経由での接続先に制限を行わないので、「ユーザーがネットワーク上の任意のコンピューターに接続できるようにする」を選択し次へ。
ネットワークポリシーとアクセスサービスに関する注意文が表示されるので、そのまま次へ。
役割サービスの選択画面が表示されるので、「ネットワークポリシーサーバー」にチェックが入ったまま次へ。
Webサーバー(IIS)に関する注意文が表示されるので、そのまま次へ。
Webサーバー(IIS)について、何をインストールするかについてもそのままで次へ。
最後に、インストールする内容について確認がされるので、インストールをクリックする。
インストールが開始される。終了までは大体2~3分ほど。
インストールが完了する。
2.証明書の設定
さて、これでRDゲートウェイマネージャのインストールが完了したのだが、じゃあすぐに使えるのか?というとそうではない。
RDゲートウェイマネージャ経由で接続を行うクライアントPC(今回の場合はWindows 7)に、RDゲートウェイマネージャを設定したサーバの証明書をインストールする必要がある。
まずは、RDゲートウェイマネージャをインストールした踏み台サーバ側で、証明書を作成する。
サーバーマネージャーから、RDゲートウェイマネージャを選択、その下にある自ホスト名を右クリックしてプロパティを選択する。
プロパティが表示されるので、「SSL 証明書」タブにある「自己署名証明書を作成する」を選択し「証明書の作成とインポート」をクリック。
「自己署名証明書の作成」ウィンドウが表示されるので、「OK」をクリック。
以下のメッセージが出力され、表示されているPATHに証明書が格納されている。
後は、その証明書ファイルをクライアントPCに持っていき、ダブルクリックさせる。
クライアントPC側で証明書ファイルを実行した結果、以下のようなウィンドウが表示されるので、「証明書のインストール」を選択する。
証明書のインポートウィザードが開始されるので、次へ。
証明書のインポート先を信頼されたルート機関証明書にし、次へ。
インポートが完了する。
3.接続
さて、これでRD ゲートウェイ経由での接続ができるようになった。
実際に接続を行ってみよう。
mstsc.exeを起動し、リモートコンピュータにRD ゲートウェイマネージャ経由で接続するマシンのホスト名(IPアドレス)、ユーザ名を入力する。
次に「詳細設定」タブを開き、「任意の場所に接続する」の設定をクリックする。
「次のRDゲートウェイサーバー設定を使用する」を選択し、先ほど構築したRDゲートウェイサーバのホスト名を入力する。
なお、このホスト名は自己署名証明書とリンクするので、ホスト名で自己署名証明書を作成した場合、IPアドレスだと動作しないため注意。
また、ログオン設定で「リモートコンピューターにRDゲートウェイの資格情報を使用する」はチェックを外す。
この状態で接続を開始すると、以下のようにRDゲートウェイサーバーで利用するIDとパスワードを要求される。
踏み台サーバのドメイン名\ユーザ名でログインすれば、後は通常のリモートデスクトップ接続と変わらず使用できる。
ちゃんと設計、構築すればかなり便利な機能ではないだろうか。
sshポートフォワーディングだと、時折ちょっと不安定になったりするので、これが一般化するといいなぁ…