特権IDセッション管理アプライアンス”Safeguard for Privileged Sessions(SPS)”は、リモートデスクトップゲートウェイ(RDゲートウェイ)として動作させることが可能です。
RDゲートウェイとは、インターネットに接続された任意のデバイスから内部あるいはプライベートネットワーク上に配置されたリソースに、認証されたリモートユーザーが接続できるようにするリモートデスクトップの役割サービスです。

RDゲートウェイを利用する主な利点
RDゲートウェイを利用する主な利点は、次の通りです。
① 転送メカニズムとしてHTTPS(ポート443)を使用
通常、RDP接続に使用されるポートは3389ですが、セキュリティ上の理由によりブロックされている場合が多いです。HTTPSを使用することで、クライアントからサーバーへのトラフィックを、ファイアウォールを越えてトンネリングして接続します。
② 仮想プライベートネットワーク(VPN)接続の構成が不要
インターネット経由で、社内のネットワークリソースに簡単にアクセスできます。VPN接続を構成する必要はありません。さらに、HTTPSを使用しているので、暗号化されたセキュアな接続を保証します。
③ ネットワークリソースのアクセス制御が可能
リモートユーザーに、社内ネットワークリソースごとのアクセス権限を設定できます。ユーザーはすべてのネットワークリソースへのアクセス許可を得るのではなく、権限に応じて必要なリソースへのRDP接続のみを確立します。
④ 二段階認証が可能
RDゲートウェイで認証後に、ネットワークリソースへの認証を二段階でおこなうことが可能です。特権が付与された共有アカウントを使用しても、任意のユーザー名で一次認証させることで、誰が接続したかを可視化できます。
以下では、SPSを使用したRDゲートウェイの設定手順、および実際にRDP接続した際の動作について説明します。
SPSを使用したRDゲートウェイの設定手順
ローカルユーザーデータベースの作成
RDゲートウェイ認証用のローカルユーザーデータベースを作成します。ローカルユーザーデータベースの作成については、過去記事「SSHリモートアクセスのゲートウェイ認証」も合わせて参照してください。
SPSのWebインターフェースにて、[Policies]>[Local User Databases]に移動し、[+]をクリックして新しいローカルユーザーを作成します。SPSでローカル認証するユーザー名およびパスワードなど入力して[Commit]をクリックします。

※本ブログでは、SPSのローカルユーザーでの認証を説明していますが、Active DirectoryやLDAPなどと連携してユーザー認証することもできます。
ユーザーマッピングポリシーの作成
ユーザーマッピングポリシーを作成します。これは、ゲートウェイ認証時のユーザーとターゲットサーバーにアクセスするためのユーザーが異なる場合に必要です。
(例)ゲートウェイ認証:yamada(任意のユーザー)
ターゲットサーバーでの認証:Administrator(共有アカウント)
SPSのWebインターフェースにて、[Policies]>[Usermapping Policies]に移動し、[+]をクリックしてユーザーマッピングポリシーを作成します。ここでは、ターゲットサーバー上で任意のユーザー名を許可するのに’*'(アスタリスク)を指定しています。

SPSの自己署名証明書の生成とダウンロード
SPSのWebインターフェースにて、[Policies]>[Signing CAs]に移動し、[+]をクリックして新しいローカルCAを作成します。[Type of Signing CA]で[Local]を選択し、必要なフィールドを入力して、[Generate private key & certificate]をクリックします。[Commit]をクリックします。

ローカルCA証明書をダウンロードします。[CA X.509 certificate]フィールドの横のDNをクリックします。 証明書ウィンドウが表示されるので、[Download]フィールドで証明書をダウンロードする形式をクリックします。

SPSの自己署名証明書のインポート
クライアント端末で”ファイル名を指定して実行”でcertmgr.mscと入力して、証明書マネージャーを開きます。

[信頼されたルート証明機関]>[証明書]を選択して、右クリックしてコンテキストメニューから[すべてのタスク]>[インポート]を選択します。

証明書のインポートウィザードが開きますので、[次へ]をクリックします。

上述でダウンロードしたSPSのローカルCA証明書を選択して、[次へ]をクリックします。

証明書の場所を確認して、[次へ]をクリックします。

確認画面が表示されるので、[完了]をクリックします。

インストールの確認に[はい]をクリックします。

証明書が正しくインストールされると、以下のメッセージが表示されます。

証明書のリストに、SPSのローカルCAがリストされます。

(注)クライアント端末にSPSのサーバー証明書が発行したローカルCAがインストールされていないと、RDP接続時に以下のエラーが発生します。

これは、SPSから提示されたサーバー証明書の発行者(ここでは、jtc-i)が信頼されていなため、その発行者が発行したサーバー証明書も信頼できず、クライアントは接続を拒否するためです。

SPSのエイリアスIPの設定
SPSにエイリアスIPを設定します。リモートデスクトップゲートウェイサーバープロトコルは443を使用しますが、SPSのWebインターフェースも同じ443を使用します。このため、SPSのWebインターフェースと異なるエイリアスIPアドレスで、リモートデスクトップ接続させるためです。
SPSのWebインターフェースにて、[Basic Settings]>[Network]に移動し、[Address]フィールドの[+]をクリックして、SPSのWebインターフェースへのアクセスに使用しているIPアドレスと異なるエイリアスIPアドレスを設定します。下図の例では、SPSのWebインターフェースを192.168.91.169、RDゲートウェイ接続に192.168.91.170(エイリアスIPアドレス)を設定しています。

接続ポリシーの設定
リモートデスクトップゲートウェイとして接続できるように、接続ポリシーを設定します。
SPSのWebインターフェースにて、[RDP Control]>[Connections]に移動し、[+]をクリックして新しい接続ポリシーを作成します。
[To]フィールドにRDゲートウェイ接続を受け付けるIPアドレス(上述で設定したエイリアスIPアドレス)、および[Port]フィールドに443を入力します。
[Targets]フィールドに、ターゲットサーバーのサブネットおよび[Port]フィールドにRDP接続用の3389を入力します。

[Act as a Remote Desktop Gateway]を有効にします。
[Gateway certificate]セクションで[Generate certificate on-the-fly]にチェックし、[Signing CA]に上述で設定したローカルCAを選択し、[Custom Common Name]フィールドに”sps600t1.2016dom.local”を入力します。これは、SPSで生成されたサーバー証明書のコモンネーム(CN)に使用されます。
[Authentication backend]セクションで、[Local User Database]にチェックし、[Domain]フィールドに”2016dom.local”、[Local User Database]に上述で設定したローカルユーザーデータベースを設定します。

[RDP settings]に、ネットワークレベル認証(NLA)を有効にしたRDP設定を適用し、[Usermapping policy]に上述で設定したユーザーマッピングポリシーを適用します。

[Custom Common Name]フィールドに設定した”sps600t1.2016dom.local”にアクセスできるように、クライアント端末のhostsファイルに以下の行を追加します。
この[Custom Common Name]フィールドに設定したコモンネームと、RDPクライアントで設定するRDサーバー名は同じにする必要があります。
例えば、RDゲートウェイサーバー名にIPアドレスを直接入力して接続すると、サーバー証明書の発行先名(“sps600t1.2016dom.local”)とRDPクライアントで設定したRDゲートウェイサーバー名が異なるため、クラインとは接続を拒否します。



RDPクライアントからRDゲートウェイ接続
リモートデスクトップ接続クライアントを開きます。
オプションを表示し、[詳細設定]タブの[設定]をクリックします。”次のRDゲートウェイサーバー設定を使用する”にチェックし、サーバー名に”sps600t1.2016dom.local”を入力し、ログオン方法は”パスワードを要求する”にします。
”ローカルアドレスににはRDゲートウェイサーバーを使用しない”などのチェックは無効にします。

[全般]タブで、[コンピューター]に接続先のサーバーのホスト名またはIPアドレスを入力(ここでは、192.168.91.46)し、ユーザー名に接続先サーバーにアクセスするユーザー名を入力します。[接続]をクリックします。

RDゲートウェイサーバーで認証するユーザー名とパスワードを入力します。

証明書の確認に[はい]をクリックします。

SPSのRDPログイン画面が表示されます。サーバーのユーザー名を確認し、パスワードを入力して[OK]をクリックします。

再度、証明書の確認ウィンドウが表示されるので、[はい]をクリックします。

SPSのWebインターフェースの[Active Connections]ページで、ゲートウェイユーザーとターゲットサーバーのアクセスユーザーを確認できます。
ゲートウェイユーザー(USER):yamada
ターゲットサーバーのアクセスユーザー(REMOTE USER):Administrator

同様に[Search]ページで、ゲートウェイユーザーとターゲットサーバーのアクセスユーザーを確認できます。

(エラーの例)
ユーザーマッピングポリシーで許可されたリモートユーザーと異なるリモートユーザーでアクセスした場合、以下のエラーが発生します

SPSのRDPログイン画面で不正なパスワードでアクセスすると、以下のエラーが表示され接続が終了します。

ゲートウェイ認証時に、不正なパスワードあるいは存在しないユーザー名でアクセスすると、以下のエラーが表示されます。
