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

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

紹介

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

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

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

DigitalOcean App Platformを使用してGitHubからフロントエンドアプリケーションを展開します。DigitalOceanにアプリのスケーリングを任せてください。

前提条件

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

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

  • RDPクライアントがインストールされたローカルコンピューターが必要です。さまざまなオペレーティングシステム用の利用可能なRDPクライアントのリストは以下の通りです:

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

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

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

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

  1. sudo apt update

次に、サーバーにxfcexfce-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

このコマンドは、状態をactive (running)として表示します:

Output
● 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がrunning状態にあることを確認します:

これでサーバーにxrdpがインストールされました。次に、リモートクライアントからの接続を受け入れるためにxrdpの構成を確認します。

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

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

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

ファイルをnanoテキストエディタまたは選択したエディタで開きます:

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

構成ファイルにはさまざまなセクションが含まれています:

  • Globalsはxrdpのためのいくつかのグローバル構成設定を定義します。
  • Loggingはログのためのログサブシステムパラメータを定義します。
  • ChannelsはRDPがサポートする複数のチャネルパラメータを定義します。
  • Session typesはxrdpがサポートする複数のセッションタイプを定義します。各セッションタイプの構成は、それぞれのセッションタイプ名を角かっこで囲んで別々のセクションとして定義されます。例:[Xorg]および[XVnc]。ファイルには[Sessions types]の見出しはありませんが、コメントとして記述されています。

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

Output
... ; ; 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経由での接続時にユーザー名とパスワードを入力するよう促すことを意味します。必要に応じて、nameusername、および 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

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

まず、ローカルマシンの公開IPを見つけます。

  1. curl ifconfig.me

Windowsでこのコマンドを実行するには、Windowsコマンドプロンプトを使用します。

curlは、ifconfig.meにリクエストを送信し、公開IPを出力として返します。

Output
... 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

出力は次のようになります。

Output
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のRemote Desktop Connectionクライアントを使用して接続をテストするには、まずRemote Desktop Connectionアプリを起動します。

リモートサーバーの公開IPとユーザー名をコンピューターユーザー名の入力欄に入力してください。ユーザー名を入力するには、オプションを表示するために下矢印を押す必要があるかもしれません:

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

身元確認ポップアップが表示された場合は、はいを押します:

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

ログインしたら、Ubuntuデスクトップ環境にアクセスできるはずです:

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

macOSでのRDP接続のテスト

macOS上のRemote Desktop Connectionクライアントを使用して接続をテストするには、まず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サーバーのグラフィカルインターフェースを使用する必要がある場合は、この手順を使用できます。

結論

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

次に、Ubuntu 20.04にVNCをインストールして構成する方法を試してみることができます。Ubuntu 20.04にVNCをインストールして構成する方法。VNCはLinuxデスクトップへのリモート接続の別のオプションです。

Source:
https://www.digitalocean.com/community/tutorials/how-to-enable-remote-desktop-protocol-using-xrdp-on-ubuntu-22-04