著者は、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クライアントのリストは以下の通りです:
- Windowsでは、デフォルトのリモートデスクトップ接続アプリケーションを使用できます。
- macOSでは、Microsoft Remote Desktopアプリケーションを使用できます。
- Linuxでは、FreeRDPまたはRemminaを使用できます。
ステップ1 — Ubuntuにデスクトップ環境をインストールする
このステップでは、Ubuntuサーバーにデスクトップ環境をインストールして構成します。デフォルトでは、Ubuntuサーバーにはターミナル環境のみが付属しています。ユーザーインターフェースにアクセスするには、デスクトップ環境をインストールする必要があります。
Ubuntuの利用可能なオプションから、Xfceデスクトップ環境をインストールします。Xfceは、Linuxベースのシステム向けの軽量で使いやすいデスクトップ環境を提供します。
まず、SSHを使用してサーバーに接続し、次のコマンドを使用して利用可能なパッケージのリストを更新します:
- sudo apt update
次に、サーバーにxfce
とxfce-goodies
パッケージをインストールします:
- sudo apt install xfce4 xfce4-goodies -y
ディスプレイマネージャーを選択するように求められます。ディスプレイマネージャーは、グラフィカルなログインメカニズムとユーザーセッションを管理するプログラムです。利用可能なディスプレイマネージャーのリストから任意のオプションを選択できますが、このチュートリアルではgdm3
を使用します。
デスクトップ環境をインストールした後、サーバーにxrdpをインストールします。
ステップ2 — Ubuntuにxrdpをインストールする
xrdpは、LinuxベースのサーバーでRDP接続を可能にするRDPサーバーのオープンソース実装です。このステップでは、Ubuntuサーバーにxrdpをインストールします。
xrdpをインストールするには、ターミナルで次のコマンドを実行します:
- sudo apt install xrdp -y
xrdpをインストールした後、systemctl
を使用してxrdpの状態を確認します:
- 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
でない場合は、次のコマンドでサービスを手動で起動する必要があります:
- sudo systemctl start xrdp
上記のコマンドを実行した後、再度状態を確認してxrdpがrunning
状態にあることを確認します:
これでサーバーにxrdpがインストールされました。次に、リモートクライアントからの接続を受け入れるためにxrdpの構成を確認します。
ステップ3 — xrdpの構成とファイアウォールの更新
このステップでは、/etc/xrdp/xrdp.ini
に格納されているxrdpのデフォルト構成を確認し、RDP接続のための構成を追加します。また、ファイアウォールの設定も更新します。
xrdp.ini
はxrdpサーバへのRDP接続を設定するためのデフォルトの構成ファイルです。この構成ファイルは、RDP接続の要件に合わせて変更およびカスタマイズできます。
ファイルをnano
テキストエディタまたは選択したエディタで開きます:
- 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経由での接続時にユーザー名とパスワードを入力するよう促すことを意味します。必要に応じて、name
、username
、および password
などのパラメータを変更できます。サーバーへの初期のRDP接続には、デフォルトの構成で十分です。
ファイルを保存して閉じます。
現在、ユーザーのホームディレクトリに移動します(すでにそこにいない場合):
- cd ~
次に、/home/sammy
以下に .xsession
ファイルを作成し、ログイン時に使用するセッションマネージャーとして xfce4-session
を追加します:
- echo "xfce4-session" | tee .xsession
tee
は、エコーされた文字列 "xfce4-session"
をファイル .xsession
に書き込みます。上記の構成により、xfce4-session
がグラフィカルログイン要求時にセッションマネージャーとして使用されます。デスクトップ環境としてxfce
をインストールした結果、xfce4-session
がそのセッションマネージャーとして機能します。これを .xsession
ファイルに含めないと、セッションマネージャーが選択されず、RDPセッションはグラフィカルディスプレイに接続できません。
xrdpサーバーを再起動します:
- sudo systemctl restart xrdp
次に、ファイアウォールを設定して、公開IPからポート 3389
でのリモート接続を許可します。RDP接続はTCP/IPポート 3389
上で提供されます。RDP経由でリモートサーバーにアクセスするには、ファイアウォールでポート 3389
を許可する必要があります。
まず、ローカルマシンの公開IPを見つけます。
- curl ifconfig.me
Windowsでこのコマンドを実行するには、Windowsコマンドプロンプトを使用します。
curl
は、ifconfig.me
にリクエストを送信し、公開IPを出力として返します。
Output...
your_local_ip
次に、リモートサーバーでRDPポート3389
へのアクセスを許可します。前のコマンドの出力でyour_local_ip
を置き換えます。
- sudo ufw allow from your_local_ip/32 to any port 3389
UFW
ファイアウォールの状態を確認します。
- sudo ufw status
出力は次のようになります。
OutputStatus: 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クライアントをインストールします:
- 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デスクトップへのリモート接続の別のオプションです。