~GNOME組み込みRDP(Wayland対応)で“ログイン中セッションを共有”する安全な構成
本記事では、
RHEL10を multi-user.target(CLIモード)で最小インストールした状態 から、GNOME組み込みRDPを有効化して、Windowsクライアントからリモート接続できるようにするまでの手順を解説します。
🔍 はじめに:RHEL10のRDPは「セッション共有型」
RHEL10では、従来の xrdp サービスによるリモートデスクトップ接続は非推奨となり、GNOME自体に統合されたRDP機能(Wayland対応) が採用されました。
この仕組みは「セッション共有型RDP」です。
つまり、既にGNOMEにログインしているユーザーの画面をRDP経由で共有する形式になります。
したがって、
💡「誰もGUIログインしていない状態」ではRDP接続はできません。
コンソールや仮想端末でGUIログインしているユーザーのデスクトップを“遠隔で見る・操作する”仕組みで利用するRDP接続です。
これは、セキュリティ強化とWayland標準化の流れに沿った設計です。
🧩 対象環境
| 項目 | 内容 |
|---|---|
| OS | Red Hat Enterprise Linux 10 |
| 初期状態 | CLIのみ(multi-user.target) |
| ディスプレイサーバ | Wayland(RHEL10標準) |
| GUI環境 | GNOME(最小構成) |
| 接続方式 | GNOME組み込みRDP機能(TCP/3389) |
| 接続クライアント | Windows 10 / 11(mstsc.exe) |
🎯 本構成の特徴
- ✅ RHEL10公式推奨方式(Wayland対応RDP)
- ✅ xrdp不要(EPEL非依存)
- ✅ パスワードはGNOME Keyringで安全に暗号化
- ✅ 最小限のGNOME環境で軽量
- ✅ サーバ用途にも適した安定構成
🧱 Step 1:GUI環境(GNOME)を導入する
RHEL10では、X Window System グループが削除されているため、「サーバー (GUI 使用)」環境グループでGNOMEを導入します。
軽量化のため、推奨パッケージを除外してインストールします。
dnf groupinstall "サーバー (GUI 使用)" --setopt=install_weak_deps=False -y
💡 コマンド解説
| オプション | 説明 |
|---|---|
"サーバー (GUI 使用)" | RHEL10で唯一GNOMEを含む環境グループ ※LANG=Cの場合 "サーバー (GUI 使用)"の箇所は"Server with GUI" |
--setopt=install_weak_deps=False | 推奨パッケージを除外し軽量構成にする |
-y | 自動でYes応答(無人インストール) |
▶️Step1 実行画面


⚙️ Step 2:gdm(GNOME Display Manager)を起動・自動化
GNOMEのログイン画面を提供するサービスです。
CLI環境では無効なので、有効化してGUIログインを可能にします。
systemctl enable gdm --now
💡 このコマンドで、GNOMEログイン画面を提供するgdmが起動します。
systemctl staus gdm.service
デフォルトの起動ターゲットを multi-user.target(CLI)から「graphical.target(GUI)」に切り替えます。
systemctl get-default
systemctl set-default graphical.target
systemctl get-default
再起動後、ログイン画面(GDM)が表示されることを確認します。
shutdown -r now
▶️Step2 実行画面


🧩 Step 3:RDP機能(gnome-remote-desktop)の確認
Waylandセッションで動作するRDPサーバ機能は、gnome-remote-desktop パッケージに含まれます。
rpm -q gnome-remote-desktop || sudo dnf install gnome-remote-desktop -y
✅ 通常は標準インストール時に含まれています。未導入の場合のみ自動でインストールされます。
▶️Step3 実行画面

⚙️ Step 4:RDP機能をCLIで有効化(ユーザー単位)
Wayland版RDPではユーザー単位で設定します。 dbus-run-session を利用し、一時的にD-Busセッションを作成して設定します。
例:ユーザー adminuser の場合
※以下の様にroot権限で実行しているので「sudo -u adminuser」とユーザを切り替えて実行します。
※ユーザ(adminuser)はuseraddコマンドで事前に作成してください。
sudo -u adminuser dbus-run-session -- gsettings set org.gnome.desktop.remote-desktop.rdp enable true
sudo -u adminuser dbus-run-session -- gsettings set org.gnome.desktop.remote-desktop.rdp view-only false
💡コマンド解説
| 項目 | 内容 |
|---|---|
enable | RDP機能を有効化 |
view-only false | 操作を許可(trueなら閲覧のみ) |
dbus-run-session | GUIログインなしでも一時的にD-Busセッションを作成し設定を反映 |
▶️Step4 実行画面

🔥 Step 5:ファイアウォール設定(TCP/3389)
RDP通信ポートを開放します。今回はファイアウォールサービスは停止します。
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
▶️Step5 実行画面

【ファイアーウォールサービスを停止しない場合】
sudo firewall-cmd --permanent --add-service=rdp
sudo firewall-cmd --reload
🖥️ Step 6:パスワード認証を設定(GUI操作)
RHEL10では、RDPのパスワードはCLIでは設定できません。 GNOMEの「設定」アプリ内で、Keyringに暗号化保存されます。
■設定手順(GUI上で実施)
- GNOMEログイン後、右下の「Show Apps」から 「設定 (Settings)」→「システム」→「Remote Desktop」 を開く
- 「Remote Control(リモート操作)」をオンにする
- 「Login Details」にて以下を設定
- ユーザー名: adminuser
- パスワード: 任意の安全なパスワードを入力
※サーバへログインする際の「adminuser」のパスワードとは別で設定します。
この状態でパスワード認証がオンになり、 Keyring内に暗号化保存されます。
▶️Step6 実行画面






🧩 Step 7:WindowsからRDP接続確認(※重要条件あり)
ここが最も重要なポイントです。
RHEL10のGNOME組み込みRDPは「ログイン中セッション共有型」です。
そのため、誰もGUIログインしていない状態ではRDP接続できません。
✅ 事前準備(RHEL側)
- RHEL10のコンソール、または仮想マシンのディスプレイ画面を開く
adminuserで GNOMEデスクトップにログインしておく
⚠️ ログイン画面(GDM)が表示されたままの状態では接続できません。※ログインしていない状態
必ず adminuser のセッションが開いていることを確認してください。
💻 Windows側の操作
- 「リモートデスクトップ接続(mstsc.exe)」を起動
- 接続先にRHEL10サーバのIPアドレスを入力
- パスワードに Step6 で設定したものを入力
✅ 結果:
- adminuserがログイン中のGNOMEデスクトップに接続される
- 新しいログイン画面は生成されない
- セッションは1人のみ(共有型)
▶️Step7 実行画面





⚙️ RDP設定の状態確認(オプション)
adminuser のGNOME RDP設定をすべて確認するコマンド。dbus-run-session は一時的にGNOME設定を参照するための仕組みです。
sudo -u adminuser dbus-run-session -- gsettings list-recursively org.gnome.desktop.remote-desktop.rdp
出力例
org.gnome.desktop.remote-desktop.rdp enable true
org.gnome.desktop.remote-desktop.rdp negotiate-port true
org.gnome.desktop.remote-desktop.rdp port uint16 3389
org.gnome.desktop.remote-desktop.rdp screen-share-mode 'mirror-primary'
org.gnome.desktop.remote-desktop.rdp tls-cert '/home/adminuser/.local/share/gnome-remote-desktop/certificates/rdp-tls.crt'
org.gnome.desktop.remote-desktop.rdp tls-key '/home/adminuser/.local/share/gnome-remote-desktop/certificates/rdp-tls.key'
org.gnome.desktop.remote-desktop.rdp view-only false
⚙️ 出力項目の解説
| 項目 | 意味 |
|---|---|
| enable true | RDP機能が有効 |
| negotiate-port true | RDPポート(通常3389)を自動交渉 |
| port 3389 | RDP待受ポート番号 |
| screen-share-mode 'mirror-primary' | コンソール上の画面(メインディスプレイ)をそのまま共有 |
| tls-cert / tls-key | RDP通信の暗号化に使うTLS証明書と秘密鍵の保存場所 |
| view-on / view-only | 閲覧専用か操作可かの設定(falseで操作可) |
✅まとめ
🧠 RHEL10のRDP仕様:RHEL9との違い
| 項目 | RHEL9 | RHEL10 |
|---|---|---|
| RDP方式 | xrdp (Xorg) / GNOME組み込み(限定) | GNOME組み込みRDP(Wayland標準) |
enable-auth キー | 存在する | 廃止 |
password キー | 存在する | 廃止(Keyring管理) |
| CLIでのパスワード設定 | 可能 | 不可(GUIのみ) |
| 認証保存先 | dconf (平文) | GNOME Keyring(暗号化) |
| TLS証明書 | 任意 | 自動生成(初回設定時) |
| xrdpサポート | EPEL経由 | 非推奨(動作制限) |
🧭 トラブルシューティング
| 症状 | 原因 | 対処 |
|---|---|---|
dconf-WARNING: X11 $DISPLAY なしで D-Bus を自動起動できません | GUIセッションがない状態で gsettings 実行 | dbus-run-session -- を付ける |
キー "password" がありません | RHEL10仕様。CLI設定不可 | GUIで設定する |
| RDP接続時に「暗号化エラー」 | 証明書未生成 | GUIでRDP有効化し、TLS証明書生成 |

コメント