Remote Desktop Gateway 経由でOCI Windows VMへの接続ガイド

OCI Core Services

初めに

オンプレミスからOracle Cloud Infrastructure (OCI)プライベートサブネット内のComputeインスタンスに接続する方法はいくつかあります。本記事は、Microsoft リモート・デスクトップ・ゲートウェイ (RDG) を介して Windows インスタンスに接続する方法を紹介します。
Connect OCI Windows via Remote Desktop Gateway

メリット
✅ RDG サービスは Windows サーバの標準機能である。
HTTPS (443 ポート)を経由するので、パブリック・サブネットにTCP 3389 ポートを公開しない。
✅ クライアントと踏み台サーバーの間にSSL証明書認証を利用することで、セキュアな接続が確保できる。
✅ SSHポート転送の方法 (OCI Bastionなど) と比較して、SSHセッションのタイムアウトを心配することなく、長時間の接続が可能。

デメリット
🛠️ 踏み台サーバの作成・設定には手間がかかる。
⏳ クライアント側から初期セッションを立てるまでにやや長い時間がかかり、約1分ほど。
💰 コスト面では、Linux系の踏み台サーバよりも高くなる。

1. 事前準備

関連 OCI リソース

タイプ項目コメント
VCNCIDR10.0.0.0/16
Public SubnetCIDR10.0.0.0/24踏み台サーバ
Private SubnetCIDR10.0.1.0/24接続先サーバ
Internet Gatewayルート表に追加する
Security List
(Public Subnet)
IngressXX.XX.XX.XX/32,
TCP 443
接続元の IP アドレスを指定する
XX.XX.XX.XX/32,
TCP 3389
最初にこれを追加する必要がある。RDG 経由で接続先のインスタンスに正常に接続できたら、削除しても問題がない。
Egress0.0.0.0/0,
All Protocols
Security List
(Private Subnet)
Ingress10.0.0.0/24,
TCP All
踏み台からのアクセスを許可
Egress0.0.0.0/0,
All Protocols
Route Table
(Public Subnet)
ルールTarget: Internet GW
宛先: 0.0.0.0/0
Compute (VM)踏み台サーバWindowsサーバ 2022
接続先サーバWindowsサーバ 2022プライベート IP: 10.0.1.167

2. Remote Desktop Gateway をインストール (踏み台)

サーバーマネージャーからインストールすることもできますが、PowerShellを使ったほうが手軽です。

踏み台サーバに RDP ログインし、次のPowerShell コマンドを実行します。
Install-WindowsFeature RDS-Gateway -IncludeAllSubFeature -IncludeManagementTools

Install Remote Desktop Gateway with PowerShell

3. 承認ポリシーの作成 (踏み台)

サーバー・マネージャー → ツール → Remote Desktop Services → "リモート デスクトップ ゲートウェイ マネージャー"
Select Remote Desktop Gateway Manager

RD ゲートウェイ マネージャー → ポリシー (右クリック) → 新しい承認ポリシーの作成
Create a policy
デフォルトの「RD CAP と RD RAP を作成する (推奨)」を選択し, 「次へ」をクリックします。
Create RD CAP and RD RAP (By default)

RD CAP の名前を入力し、「次へ」をクリックします。
Enter the name of RDP CAP

グループの追加」ボタンをクリックして、RD CAP に関連付けられるグループを追加します。
Click add group button

グループ名を入力し、「名前の確認」をクリックします。 有効なグループ名を確認した後、OK をクリックして画面を閉じます。
Enter group name and confirm

「次へ」をクリックして続行します。
Click next

デフォルトのままで、「次へ」をクリックして続行します。
Enable device redirect (by default)

タイムアウトを設定したくない場合、デフォルトのままで、「次へ」をクリックして続行します。
Session timeout is disalbed (by default)

「次へ」をクリックします。
Confirm RD CAP setting

RD RAP の名前を入力し、「次へ」をクリックします。
Enter the name of RD RAP

同じグループを使用してもよいので、そのままで「次へ」をクリックします。
Select group

ユーザーによる任意のネットワーク リソース (コンピューター) への接続を許可する」を選択し、「次へ」をクリックします。
Allow connection to any network

「ポート 3389 への接続のみを許可する」はデフォルトでチェックされています。 「次へ」をクリックして続行します。
Select port 3389

「完了」をクリックします。
Confirm RD RAP setting

ポリシーの作成を確認し、「閉じる」をクリックします。
Policy is created

4. SSL証明書の作成 (踏み台)

RD ゲートウェイ マネージャー → サーバー名をクリック → "証明書のプロパティを表示または変更"
Show certificate property

このテストには自己署名証明書を使用します。「証明書の作成とインポート」をクリックして続行します。
Create self-signed certificate

デフォルトの証明書の名前は、サーバー名と同じです。 踏み台サーバーのパブリック IP またはパブリック DNS 名に変更します (このテストにはパブリック IP を使用)。

デフォルトのサーバー名を使用する場合、接続セッションを立てる時、問題-3が発生する可能性がありますので、ご注意ください。
Enter certificate name

作成後、次のようなメッセージが表示されます。
Self-signed certificate is created

「適用」をクリックします。
Click apply button

証明書が踏み台サーバーにインストールされていることを確認し、OK をクリックして終了します。
Click OK button to close

5. SSL証明書のエクスポート (踏み台)

検索ボックスにcertlm.mscと入力し、管理コンソールを起動します。
Startup certlm.msc

個人 → 証明書 → 証明書を選択 → すべてのタスク → エクスポート
Click export

「次へ」をクリックします。
Click next to begin

デフォルトのままで、「次へ」をクリックします。
Click next

デフォルトのままで、「次へ」をクリックします。
Click next (DER encoded binary X.509)

ファイル名を入力し、「次へ」をクリックして続行します。
Enter export file name

「完了」をクリックすると、次のような成功メッセージが表示されます。OK をクリックして終了します。
Certificate is exported

踏み台サーバーからローカル クライアントに証明書をコピーします。
Copy certificate to local

6. SSL証明書のインポート (クライアント)

ローカル クライアントに保存されている証明書ファイルWin2022-RDG.cerをダブルクリックしたら、以下の画面が表示されます。「証明書のインストール」ボタンをクリックします。
Import certificate

「現在のユーザー」は、デフォルトでチェックされています。「次へ」をクリックして続行します。
Click next to begin import

「証明書をすべての次のストアに配置する」を選択し、「参照」ボタンをクリックします。
Select certificate store

「信頼されたルート証明機関」を選択し、OK をクリックします。それ以外のストアを選択した場合、接続セッションを立てる時、問題-4が発生する可能性がありますので、ご注意ください。
Select trusted Certificate Authority

「次へ」をクリックして続行します。
Click next

「完了」をクリックします。
Certificate is imported

次のような警告メッセージが表示されたら、「はい」 をクリックして続行します。
Confirm warning message

「OK」をクリックしてウィザードを終了します。
Click OK button

7. 接続テスト (クライアント/踏み台)

RD ゲートウェイ サービスを起動 (踏み台)

サービスを起動します。起動後の状態は「停止」から「実行中」に変わったことを確認します。

サーバー・マネージャー → リモート デスクトップ サービス → サーバー → サービス
Startup service

ユーザをグループに追加 (踏み台)

RD CAP/RAP に関連付けられているグループにログイン・ユーザーを追加することを忘れないでください。このテストでは、デフォルトの opc ユーザーでログインします。
Add user into group

接続を開始 (クライアント)

ローカル クライアントから「リモート デスクトップ接続」を起動します。 「詳細設定」タブに切り替え、「設定」ボタンをクリックします。
Advanced setting

次の RD ゲートウェイ サーバー設定を使用する」を選択し、踏み台のパブリック IP またはパブリック DNS 名を入力します。 「ローカル アドレスには RD ゲートウェイ サーバーを使用しない」のチェックを外し、OK をクリックします。
Specify RD gateway server

「全般」タブに切り替え、接続先のWindowsサーバーのプライベートIPとユーザー名を入力し、「接続」ボタンをクリックします。
Enter Private IP and user name

踏み台サーバーのユーザー名とパスワードを入力します。
ユーザー名の例:localhost\opc
Enter user name and password

次のように、リモート セッションの作成が始まります。しばらくお待ちください。このテストは、接続完了まで1分ほどかかりました。
Begin to setup remote session

「このコンピュータへの接続について今後確認しない」にチェックを入れ、「はい」をクリックして続行します。
Confirm popup message

接続先サーバーのユーザー名とパスワードを入力します。
Enter username and password

接続先の Windows サーバーにログインできました。
Remote Windows desktop is shown

セキュリティ・リスト(パブリック サブネット用)
最後に、TCP 3389 ポートのルールを削除し、443 ポートのみを保留します。
Edit security list

踏み台サーバーを接続先にしたい場合
「詳細設定」タブを上記と同様に設定し、「全般」タブで、コンピューター名にlocalhostを入力します。
RDP login to bastion server

トラブル・シューティング

問題-1 「リモート リソースを使用できません」

Trouble Shooting - Issue 1
考えられる理由

  1. RD ゲートウェイ サービスが開始されていません。
    (STEP-7の "RD ゲートウェイ サービスを起動"をご参照)
  2. セキュリティ・リストのIngressルールに、接続元からのアクセスが許可されていません。

問題-2 「リモート コンピューターに接続できません」

Trouble Shooting - Issue 2
考えられる理由:ログイン ユーザーは、RD CAP/RAP に関連付けられているグループに追加されていません。(STEP-7の "ユーザをグループに追加"をご参照)

問題-3 「サーバーアドレスと証明書のサブネット名が一致しません」

Trouble Shooting - Issue 3
考えられる理由:証明書のサブジェクト名は、踏み台サーバーのパブリック IP または、パブリック DNS 名ではありません。(Step 4をご参照)

問題-4 「RD ゲートウェイの ID を確認できません」

Trouble Shooting - Issue 4
考えられる理由:証明書は、「信頼されたルート証明機関」に配置されていません。(Step 6をご参照)

以上

タイトルとURLをコピーしました