ウェブサイト検索

Ubuntu 22.04でxrdpを使用してリモートデスクトッププロトコルを有効にする方法


著者は、Write for DOnationsプログラムの一環として寄付を受けるために、COVID-19救済基金を選択しました。

紹介

リモートデスクトッププロトコル (RDP) は、ユーザーがリモートWindowsサーバーのグラフィカルユーザーインターフェースにリモートでアクセスし、相互作用できるようにするためにMicrosoftによって開発されたネットワークプロトコルです。RDPはクライアント-サーバーモデルで動作し、ローカルマシンにRDPクライアントがインストールされ、リモートサーバーにRDPサーバーがインストールされます。

RDPはWindowsのリモート接続に広く使用されていますが、xrdpのようなツールを使用することで、リモートLinuxサーバーのグラフィカルユーザーインターフェースにアクセスして対話することもできます。xrdpはRDPサーバーのオープンソース実装です。

このチュートリアルでは、Ubuntu 22.04サーバー上でxrdpを使用してRDPサーバーをインストールおよび構成し、ローカルマシンからRDPクライアントを使用してアクセスします。RDP接続を構成して使用することで、リモートLinuxサーバーへのアクセスを確立する方法を理解します。

GitHubからDigitalOcean App Platformを使用してフロントエンドアプリケーションをデプロイします。DigitalOceanにアプリのスケーリングに集中させましょう。

前提条件

このチュートリアルを完了するためには、次のものが必要です:

  • 1つのUbuntu 22.04サーバー、非rootユーザーでsudo権限を持ち、ファイアウォールがあり、少なくとも1GBのRAMが必要です。これは、Ubuntu 22.04の初期サーバー設定ガイドに従ってセットアップできます。

  • RDPクライアントがインストールされたローカルコンピュータ。さまざまなオペレーティングシステムに対応した利用可能なRDPクライアントのリストは以下に示されています:

    • Windowsでは、デフォルトのリモートデスクトップ接続アプリケーションを使用できます。
    • macOSでは、Microsoft Remote Desktopアプリケーションを使用できます。
    • Linuxでは、FreeRDPまたはRemminaを使用できます。

ステップ1 — Ubuntuにデスクトップ環境をインストールする

このステップでは、Ubuntuサーバーにデスクトップ環境をインストールして構成します。デフォルトでは、Ubuntuサーバーにはターミナル環境のみが搭載されています。ユーザーインターフェースにアクセスするためには、デスクトップ環境をインストールする必要があります。

利用可能なUbuntuのオプションから、Xfceデスクトップ環境をインストールします。Xfceは、Linuxベースのシステム向けに軽量で使いやすいデスクトップ環境を提供します。

まず、SSHを使用してサーバーに接続し、以下のコマンドを使用して利用可能なパッケージのリストを更新します:

  1. sudo apt update

次に、サーバーに xfce と xfce-goodies パッケージをインストールします:

  1. sudo apt install xfce4 xfce4-goodies -y

表示マネージャを選択するように促されます。表示マネージャは、グラフィカルログインメカニズムとユーザーセッションを管理するプログラムです。利用可能な表示マネージャのリストから任意のオプションを選択できますが、このチュートリアルではgdm3を使用します。

デスクトップ環境をインストールした後、サーバーにxrdpをインストールします。

ステップ2 — Ubuntuにxrdpをインストールする

xrdpは、LinuxベースのサーバーにRDP接続を可能にするRDPサーバーのオープンソース実装です。このステップでは、Ubuntuサーバーにxrdpをインストールします。

xrdpをインストールするには、ターミナルで次のコマンドを実行してください:

  1. sudo apt install xrdp -y

xrdpをインストールした後、systemctlを使用してxrdpのステータスを確認してください:

  1. sudo systemctl status xrdp

このコマンドはステータスをアクティブ (実行中)として表示します:

● xrdp.service - xrdp daemon
     Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
     Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago
       Docs: man:xrdp(8)
             man:xrdp.ini(5)
   Main PID: 17904 (xrdp)
      Tasks: 1 (limit: 1131)
     Memory: 1016.0K
     CGroup: /system.slice/xrdp.service
             └─17904 /usr/sbin/xrdp

xrdpのステータスがrunningでない場合、このコマンドでサービスを手動で開始する必要があります:

  1. sudo systemctl start xrdp

上記のコマンドを実行した後、xrdpが実行中の状態であることを確認するために、再度ステータスを確認してください。

あなたは今、サーバーにxrdpをインストールしました。次に、リモートクライアントからの接続を受け入れるために、xrdpの設定を確認します。

ステップ3 — xrdpの設定とファイアウォールの更新

このステップでは、デフォルトのxrdp設定を確認し、それは/etc/xrdp/xrdp.iniに保存されています。また、RDP接続のための設定を追加します。さらに、ファイアウォールの設定も更新します。

xrdp.ini は、xrdp サーバーへの RDP 接続を設定するためのデフォルトの構成ファイルです。この構成ファイルは、RDP 接続要件を満たすために変更およびカスタマイズできます。

ファイルをnanoテキストエディタまたは自分の好きなエディタで開いてください:

  1. sudo nano /etc/xrdp/xrdp.ini

設定ファイルには異なるセクションが含まれています:

  • Globals は xrdp のためのいくつかのグローバル設定を定義します。
  • ロギングはログのためのログサブシステムパラメータを定義します。
  • Channelsは、RDPがサポートする複数のチャネルパラメータを定義します。
  • セッションタイプは、xrdpによってサポートされている複数のセッションタイプを定義します。各セッションタイプの構成は、そのセッションタイプ名の下に角括弧で囲まれた別のセクションとして定義されます。例えば、[Xorg]や[XVnc]のようにです。ファイル内には[セッションタイプ]の見出しはなく、代わりにコメントとして記述されています。

構成ファイルで、セッションタイプセクションに移動してください。サポートされている複数のセッションタイプとそのパラメータがリストされています:

...

;
; Session types
;

; Some session types such as Xorg, X11rdp, and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000

[vnc-any]
...

[neutrinordp-any]
...

...

デフォルトでは、usernameおよびpasswordパラメータはaskに設定されており、これはユーザーがRDP経由で接続するためにユーザー名とパスワードを入力するように求められることを意味します。必要に応じて、name、username、およびpasswordなどのパラメータを変更することができます。サーバーへの最初のRDP接続には、デフォルトの設定で十分です。

作業が終わったら、ファイルを保存して閉じてください。

まだユーザーのホームディレクトリにいない場合は、今すぐ移動してください:

  1. cd ~

次に、/home/sammyの下に.xsessionファイルを作成し、ログイン時に使用するセッションマネージャーとしてxfce4-sessionを追加します:

  1. echo "xfce4-session" | tee .xsession

teeは、エコーされた文字列"xfce4-session"をファイル.xsessionに書き込みます。上記の設定により、グラフィカルログイン要求時にxfce4-sessionがセッションマネージャーとして使用されることが保証されます。デスクトップ環境としてxfceをインストールした結果、xfce4-sessionはそのセッションマネージャーとして機能します。この情報を.xsessionファイルに含めない場合、セッションマネージャーが選択されず、RDPセッションはグラフィカルディスプレイに接続できません。

xrdpサーバーを再起動します:

  1. sudo systemctl restart xrdp

次に、ファイアウォールを設定して、3389ポートであなたのパブリックIPからのリモート接続を許可します。RDP接続はTCP/IPポート3389でサービスを提供します。RDP経由でリモートサーバーにアクセスするには、ファイアウォールでポート3389を許可する必要があります。

まず、ローカルマシンのパブリックIPを見つけてください:

  1. curl ifconfig.me

Windowsでは、Windowsコマンドプロンプトを使用してこのコマンドを実行してください。

curl は ifconfig.me にリクエストを送り、あなたのパブリックIPを出力として返します。

...
your_local_ip

次に、リモートサーバーのRDPポート3389へのアクセスを許可します。your_local_ipを前回のコマンドの出力で置き換えてください:

  1. sudo ufw allow from your_local_ip/32 to any port 3389

UFWファイアウォールの状態を確認してください:

  1. sudo ufw status

出力は以下のようになるべきです:

Status: Active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
3389                       ALLOW       your_local_ip                 
OpenSSH (v6)               ALLOW       Anywhere (v6)  
...

あなたは現在、ポート 3389 を有効にして、パブリックIPからの接続を受け入れています。次に、ローカルマシンのRDP接続をリモートサーバーにテストします。

ステップ4 — RDP接続のテスト

このステップでは、ローカルマシンからRDP接続をテストします。以下のセクションには、Windows、macOS、およびLinuxマシンで接続をテストするためのアクションが含まれています。

WindowsでRDP接続をテストする

Windowsのリモートデスクトップ接続クライアントを使って接続をテストするには、まずリモートデスクトップ接続アプリを起動します。

リモートサーバーのパブリックIPとユーザー名を、コンピュータおよび ユーザー名 の入力可能なテキストボックスに入力してください。ユーザー名を入力するために オプションを表示 のために下矢印を押す必要があるかもしれません:

接続ボタンを押してください。リモートデスクトップはリモートコンピュータに接続できませんという警告が表示された場合は、システム設定でリモートデスクトップオプションがオンになっているか確認してください。

本人確認ポップアップが表示されたらはいを押してください:

次に、リモートサーバーのユーザー名(sammy)と、初期サーバー設定の際にユーザーsammyのために作成したパスワードを入力します。OKを押してください。

ログインすると、Ubuntuデスクトップ環境にアクセスできるようになります:

RDPを使用して、ローカルマシンからリモートのUbuntuサーバーに正常に接続しました。グラフィカルデスクトップの使用が終わったら、終了ボタンで閉じることができます。

macOSでRDP接続をテストする

macOSでリモートデスクトップ接続クライアントを使って接続をテストするには、まずMicrosoft Remote Desktop Connectionアプリを起動します。

PCを追加を押し、次にリモートサーバーの公開IPを入力欄に入力してください:

接続を設定する際にユーザーアカウントを追加することができます:

セットアップ中にユーザーを追加しない場合は、ユーザーのログイン認証情報を入力するように求められます。

アイデンティティ確認ポップアップをバイパスするには、はいを押してください:

ログインした後は、Ubuntuのリモートデスクトップにアクセスできます。グラフィカルデスクトップの使用が終わったら、終了ボタンで閉じることができます。

LinuxでRDP接続をテストする

ローカルのLinuxマシンでRDP接続をテストするには、RDPクライアントが必要です。まず、Ubuntu用のremmina RDPクライアントをインストールします:

  1. sudo apt install remmina

インストールを完了するように求められた場合は、yを選択してください。このコマンドは、aptを使用してUbuntuシステムにオープンソースのリモートデスクトップクライアントであるRemminaをインストールします。他のLinuxディストリビューションの場合は、インストールのためにRemminaのドキュメントを確認できます。

インストールが完了したら、ローカルのLinuxマシンでremminaアプリケーションを起動し、リモートサーバーのパブリックIPアドレスを入力ボックスに入力します。接続するには、キーボードのEnterキーを押してください。

次に、リモートサーバーのユーザー名(このチュートリアルでは、ユーザー名はsammyです)と、最初のサーバーセットアップ時にユーザーのために作成したパスワードを入力します。OKを押してください。

リモートデスクトップのロックを解除するために、ユーザーのパスワードを再入力する必要があるかもしれません。

ログインすると、Ubuntuデスクトップ環境にアクセスできるようになります。

RDPを使用して、ローカルマシンからリモートのUbuntuサーバーに正常に接続しました。グラフィカルデスクトップの使用が終わったら、終了ボタンで閉じることができます。

リモート接続が正常に動作することを確認したら、リモートLinuxサーバーのグラフィカルインターフェースを使用する必要があるときに、この手順を使用できます。

結論

この記事では、ローカルマシンからのRDP接続を介して、リモートUbuntuサーバーにグラフィカルデスクトップで接続するためにxrdpを設定しました。

今、Ubuntu 20.04にVNCをインストールして設定する方法を使用して、LinuxサーバーのVNC接続を設定してみることができます。VNCはLinuxデスクトップへのリモート接続のもう一つの選択肢です。

関連記事: