Ubuntu 22.04でxrdpを使用してリモートデスクトッププロトコルを有効にする方法は次の通りです。
著者は、「Write for Donations」プログラムの一環として、寄付金の寄付先としてCOVID-19救済基金を選択しました。
1. イントロダクション
2. はじめに
3. 接続部分
4. 紹介
5. 導入
リモート デスクトップ プロトコル(RDP)は、マイクロソフトが開発したネットワーク プロトコルであり、ユーザーがリモートのWindowsサーバーのグラフィカルユーザーインターフェースにリモートアクセスして相互作用できるようにします。RDPはクライアント-サーバーモデルで動作し、クライアント側のマシンにはRDPクライアントが、リモートサーバーにはRDPサーバーがインストールされます。
RDPはWindowsのリモート接続で広く使われていますが、xrdpのようなツールを使うことで、オープンソースのRDPサーバーの実装であるxrdpを使用して、リモートLinuxサーバーのグラフィカルユーザーインターフェースにもアクセスして対話することができます。
このチュートリアルでは、Ubuntu 22.04 サーバー上で xrdp を使用して RDP サーバーをインストールおよび設定し、ローカルマシンから RDP クライアントを使用してアクセスします。RDP 接続を設定および使用することで、リモート Linux サーバーへのアクセスを確立する方法を理解することができます。
Info
前提条件
このチュートリアルを完了するには、次のものが必要です。
- One Ubuntu 22.04 server with a non-root user with sudo privileges, a firewall, and at least 1GB of RAM, which you can set up by following the Ubuntu 22.04 initial server setup guide.
- A local computer with an RDP client installed. A list of available RDP clients for different operating systems is provided below:On Windows, you can use the default Remote Desktop Connection application.
On macOS, you can use the Microsoft Remote Desktop application.
On Linux, you can use FreeRDP, or 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
このコマンドは、アクティブ(実行中)の状態を表示します。
● 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の状態が実行中でない場合、次のコマンドでサービスを手動で起動する必要があるかもしれません。
- sudo systemctl start xrdp
上記のコマンドを実行した後、xrdpが正常に実行されていることを確認するため、再度ステータスを確認してください。
現在、サーバーにxrdpがインストールされました。次に、xrdpの設定を確認して、リモートクライアントからの接続を受け入れるようにします。
ステップ3 – xrdpの設定とファイアウォールの更新
このステップでは、/etc/xrdp/xrdp.ini に格納されている xrdp のデフォルト設定を確認し、RDP 接続のための設定を追加します。また、ファイアウォールの設定も更新します。
xrdp.iniは、xrdpサーバーへのRDP接続を設定するためのデフォルトの設定ファイルです。この設定ファイルは変更やカスタマイズが可能であり、RDP接続要件に合わせて調整することができます。
ナノテキストエディタまたはお好みのエディタでファイルを開いてください。
- sudo nano /etc/xrdp/xrdp.ini
設定ファイルには異なるセクションが含まれています。
- Globals defines some global configuration settings for xrdp.
- Logging defines logging subsystem parameters for logs.
- Channels defines multiple channel parameters that RDP supports.
- Session types defines multiple supported session types by xrdp. Every session type configuration is defined as a separate section under its session type name enclosed in square brackets, such as [Xorg] and [XVnc]. There is no [Sessions types] heading in the file; instead, it is written as a comment.
構成ファイルで、セッションの種類のセクションに移動してください。複数のサポートされているセッションの種類とそのパラメータがリストされています。
… ; ; 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] … …
デフォルトでは、ユーザー名とパスワードのパラメータは「ask」に設定されています。これにより、ユーザーはRDP接続時にユーザー名とパスワードの入力を求められます。必要に応じて名前、ユーザー名、パスワードなどのパラメータを変更することもできます。サーバーへの最初のRDP接続では、デフォルト設定で十分です。
作業が終わったら、ファイルを保存して閉じてください。
もしまだユーザーのホームディレクトリにいない場合は、ユーザーのホームディレクトリに移動してください。
- cd ~
次に、ログイン時に使用するセッションマネージャーとしてxfce4-sessionを追加し、/home/sammyの下に.xsessionファイルを作成してください。
- echo “xfce4-session” | tee .xsession
teeは、ファイル「.xsession」に「xfce4-session」というエコーコマンドの文字列を書き込みます。上記の設定により、グラフィカルログイン要求時にxfce4-sessionがセッションマネージャーとして使用されることが保証されます。デスクトップ環境としてxfceをインストールした結果、xfce4-sessionがセッションマネージャーとして機能します。もし、「.xsession」ファイルにこの情報を含めない場合、セッションマネージャーが選択されず、RDPセッションはグラフィカルディスプレイに接続できなくなります。
xrdpサーバーを再起動してください。
- sudo systemctl restart xrdp
次に、あなたはファイアウォールの設定を行い、ポート3389を使用して公開IPからのリモート接続を許可します。RDP接続はTCP/IPポート3389で提供されます。リモートサーバーにRDPでアクセスするには、ファイアウォールでポート3389を許可する必要があります。
最初に、ローカルマシンの公開IPを見つけてください。
- curl ifconfig.me
Windowsであれば、Windowsコマンドプロンプトを使用してこのコマンドを実行してください。
curlは、ifconfig.meにリクエストを送り、公開IPを出力として返します。
… your_local_ip
次に、前回のコマンドの出力でyour_local_ipを置き換えて、リモートサーバーのRDPポート3389へのアクセスを許可してください。 (Tsugini, zenkai no komando no shutsuryoku de your_local_ip wo okikaete, rimōto sābā no RDP pōto 3389 e no akusesu wo kyoka shite kudasai.)
- sudo ufw allow from your_local_ip/32 to any port 3389
自分のUFWファイアウォールの状態を確認してください。
- 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上のRemote Desktop Connectionクライアントを使用して接続をテストするには、まずMicrosoft Remote Desktop Connectionアプリを起動します。
「Add PC」を押し、その後、入力可能なボックスにリモートサーバーの公開IPを入力してください。
接続の設定時にユーザーアカウントを追加することができます。
セットアップ中にユーザーを追加しない場合は、ユーザーログインの資格情報を入力するように求められます。
アイデンティティー確認ポップアップをスキップするには、はいを押してください。
ログインしたら、Ubuntuのリモートデスクトップにアクセスできます。グラフィカルデスクトップを使用し終わったら、終了ボタンで閉じることができます。
Linux上でRDP接続をテストする.
ローカルのLinuxマシンでRDP接続をテストするには、RDPクライアントが必要です。最初に、Ubuntu用のRemmina RDPクライアントをインストールしてください。
- sudo apt install remmina
インストールを完了させるために指示が表示されたら、y を選択してください。このコマンドは、apt を使用してオープンソースのリモートデスクトップクライアントであるRemminaをUbuntuシステムにインストールします。他のLinuxディストリビューションの場合は、Remminaのインストール方法を確認するためにドキュメントを参照してください。
インストールしたら、ローカルのLinuxマシンのリミナアプリケーションを起動し、リモートサーバーの公開IPを入力欄に入力してください。キーボードでEnterキーを押すと、リモートデスクトップに接続されます。
それでは、リモートサーバーのユーザー名(このチュートリアルではユーザー名はsammyとします)と、初めてサーバー設定を行った際に作成したパスワードを入力してください。OKを押してください。
リモートデスクトップを解除するために、ユーザーのパスワードをもう一度入力する必要があるかもしれません。
ログインすると、Ubuntuデスクトップ環境にアクセスできるようになります。
あなたのローカルマシンからリモートのUbuntuサーバーにRDPを使用して正常に接続できました。グラフィカルデスクトップの使用が終わったら、[閉じる]ボタンで終了させることができます。
リモート接続が正常に動作することを確認したら、リモートLinuxサーバーのグラフィカルインターフェースを使用する際にはいつでもこの手順を利用できます。
結論
この記事では、ローカルマシンからのRDP接続を介してリモートのUbuntuサーバーにグラフィカルデスクトップに接続するため、xrdpを設定しました。
今、Ubuntu 20.04でVNCをインストールして設定する方法を試すことができます。VNCはLinuxデスクトップに対するリモート接続の別のオプションです。