[Server学習]第3回_RockyLinuxへRDP接続
はじめに
第2回までの記事でRocky Linuxの構築は完了しました。
サーバーとして構築は完了しましたが、現状ではRocky Linuxへのアクセス方法が以下しかありません。
・GUIへのアクセス:VMware Workstationのコンソール
・CLIへのアクセス:PuttyやTeraTerm等のターミナルエミュレータツール
CLIについてはエミュレータツール次第でどうこうなりますが、GUIについてはVMware Workstationの仕様で全画面表示にしても表示領域が固定されているなど何かと不便です。
VNC(Virtual Network Conputing)での接続方法もありますが、Windows端末からアクセスする場合はRDPとはが使えたほうが追加のソフトなどをインストールする必要が無いため楽です。
そのため、本記事ではRocky LinuxへRDP接続ができるようにする方法を説明しようと思います。
RDP(Remote Desktop Protocol)とは
そもそもRDP(Remote Desktop Protocol)が何かご存じない方は以下のサイトなどをご確認いただけますと幸いです
■CloudFlareのRDP解説サイト
https://www.cloudflare.com/ja-jp/learning/access-management/what-is-the-remote-desktop-protocol/
■MicrosoftのRDP解説サイト
RDP接続までの大まかな手順
Rocky Linux 9へのRDP接続を実装する手順として、本記事では大まかに以下の手順で説明してきます。また、本記事ではLinuxへのRDP接続の方法としてxrdpをLinux側にインストールする方法で説明します。
手順0.前提条件
手順1.一般ユーザーからrootユーザーへ切り替え
手順2.xrdpパッケージのダウンロード&インストール
手順2*.(Optional) ダウンロードしたパッケージの確認
手順3.RDPで使用するポートの解放(ファイアウォールの穴あけ)
手順4.xrdpサービスの有効化と確認
手順5.Rocky Linux 9からログアウト
手順6.WindowsPCからRocky Linux 9へRDP接続
上記手順1.から以下で説明してきます。
手順0.前提
xrdpのパッケージファイルはインターネット上からダウンロードしてくるため、Rocky Linuxがインターネットへ疎通可能であることを確認してください。
■コマンド1:
ping 8.8.8.8
■コマンド2:
nslookup google.com
[user01@localhost ~]$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 バイト応答 送信元 8.8.8.8: icmp_seq=1 ttl=128 時間=9.78ミリ秒
64 バイト応答 送信元 8.8.8.8: icmp_seq=2 ttl=128 時間=15.2ミリ秒
64 バイト応答 送信元 8.8.8.8: icmp_seq=3 ttl=128 時間=12.5ミリ秒
64 バイト応答 送信元 8.8.8.8: icmp_seq=4 ttl=128 時間=10.5ミリ秒
64 バイト応答 送信元 8.8.8.8: icmp_seq=5 ttl=128 時間=16.5ミリ秒
^C
--- 8.8.8.8 ping 統計 ---
送信パケット数 5, 受信パケット数 5, 0% packet loss, time 4009ms
rtt min/avg/max/mdev = 9.782/12.897/16.464/2.593 ms
[user01@localhost ~]$
[user01@localhost ~]$
[user01@localhost ~]$ nslookup google.com
Server: 172.16.20.2
Address: 172.16.20.2#53
Non-authoritative answer:
Name: google.com
Address: 142.250.196.110
Name: google.com
Address: 2404:6800:4004:821::200e
[user01@localhost ~]$
googleのDNSサーバー(8.8.8.8)へ疎通ができることを確認し、google.comのドメイン名も解決できていることが確認できます。
手順1.一般ユーザーからrootユーザーへ切り替え
Rocky Linuxにrootユーザーではなく一般ユーザーでログインしている場合、権限の問題でパッケージのダウンロードをすることができません。
コマンドの頭に「sudo」を付けることで一時的にコマンドをroot権限で実行できる方法もありますが、本記事ではrootユーザーに切り替えて行います。
ターミナルで以下以下コマンドを実行し、rootユーザーへの切り替えます。
rootユーザーへ切り替えのため、rootユーザーのパスワードを入力します。
※パスワードは表示されません。
■コマンド:
su root
[user01@localhost ~]$ su root
パスワード:
[root@localhost user01]#
プロンプトの「@」の前が「user01」から「root」に変わっていればrootユーザーへの切り替えは完了です。
手順2.xrdpパッケージのダウンロード&インストール
xrdpのパッケージダウンロードとインストールを実施します。
ターミナルで以下以下コマンドを実行し、xrdpパッケージのダウンロードとインストールを行います。
■コマンド:
dnf install xrdp
以下出力例中に「<<<*1」を付けている個所でプロセスの継続処理の可否を聞かれるため「y」で継続します。(※わかりにくいですが2回あります)
[root@localhost user01]# dnf install xrdp
メタデータの期限切れの最終確認: 3:06:52 前の 2024年05月12日 17時41分06秒 に実施しました。
依存関係が解決しました。
=========================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=========================================================================================================================================
インストール:
xrdp x86_64 1:0.9.25-2.el9 epel 459 k
依存関係のインストール:
imlib2 x86_64 1.7.4-1.el9 epel 225 k
弱い依存関係のインストール:
xrdp-selinux x86_64 1:0.9.25-2.el9 epel 12 k
トランザクションの概要
=========================================================================================================================================
インストール 3 パッケージ
ダウンロードサイズの合計: 697 k
インストール後のサイズ: 3.0 M
これでよろしいですか? [y/N]: y <<<*1
パッケージのダウンロード:
(1/3): xrdp-selinux-0.9.25-2.el9.x86_64.rpm 212 kB/s | 12 kB 00:00
(2/3): imlib2-1.7.4-1.el9.x86_64.rpm 1.9 MB/s | 225 kB 00:00
(3/3): xrdp-0.9.25-2.el9.x86_64.rpm 3.1 MB/s | 459 kB 00:00
-----------------------------------------------------------------------------------------------------------------------------------------
合計 1.0 MB/s | 697 kB 00:00
Extra Packages for Enterprise Linux 9 - x86_64 1.4 MB/s | 1.6 kB 00:00
GPG 鍵 0x3228467C をインポート中:
Userid : "Fedora (epel9) <epel@fedoraproject.org>"
Fingerprint: FF8A D134 4597 106E CE81 3B91 8A38 72BF 3228 467C
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
これでよろしいですか? [y/N]: y <<<*1
鍵のインポートに成功しました
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
インストール中 : imlib2-1.7.4-1.el9.x86_64 1/3
インストール中 : xrdp-selinux-1:0.9.25-2.el9.x86_64 2/3
scriptletの実行中: xrdp-selinux-1:0.9.25-2.el9.x86_64 2/3
インストール中 : xrdp-1:0.9.25-2.el9.x86_64 3/3
scriptletの実行中: xrdp-1:0.9.25-2.el9.x86_64 3/3
検証中 : imlib2-1.7.4-1.el9.x86_64 1/3
検証中 : xrdp-1:0.9.25-2.el9.x86_64 2/3
検証中 : xrdp-selinux-1:0.9.25-2.el9.x86_64 3/3
インストール済み:
imlib2-1.7.4-1.el9.x86_64 xrdp-1:0.9.25-2.el9.x86_64 xrdp-selinux-1:0.9.25-2.el9.x86_64
完了しました!
[root@localhost user01]#
最後に「完了しました!」と表示されエラーが出ていなければ問題ありません。
手順2*.(Optional) ダウンロードしたパッケージの確認
手順3.RDPで使用するポートの解放(ファイアウォールの穴あけ)
xrdpのインストールが完了してもRocky Linux側の内部ファイアウォールでRDP用のポートが閉じられているとRDP通信ができません。
そのため、以下3つのコマンドでRDP用のポート番号3389を以下コマンドで開放し、その確認も行います。
■コマンド1:
firewall-cmd --add-port=3389/tcp --zone=public --permanent
上記設定を反映させるため以下コマンドで内部ファイアウォールを再起度します。
■コマンド2:
firewall-cmd --reload
内部ファイアウォールの解放されているポートを確認します。
■コマンド3:
firewall-cmd --list-ports
[root@localhost user01]# firewall-cmd --add-port=3389/tcp --zone=public --permanent
success
[root@localhost user01]# firewall-cmd --reload
success
[root@localhost user01]# firewall-cmd --list-ports
3389/tcp
[root@localhost user01]#
コマンド1、2は実行後に「success」と表示されたら問題ありません。
コマンド3は解放したポートを表示するコマンドのため、「3389/tcp」が表示されたら問題ありません。
手順4.xrdpサービスの有効化と確認
次にxrdpサービスを有効化する必要がありますが、まずは現在の状態を確認します。
■コマンド:
systemctl status xrdp
[root@localhost user01]# systemctl status xrdp
○ xrdp.service - xrdp daemon
Loaded: loaded (/usr/lib/systemd/system/xrdp.service; disabled; preset: di>
Active: inactive (dead)
Docs: man:xrdp(8)
man:xrdp.ini(5)
[root@localhost user01]#
現状ではまだxrdpサービスを有効化していないため、3行目に「disable」と表示があります。表示の通りRDP接続できない状態です。
xrdpサービスを以下コマンドで有効化します。
■コマンド:
systemctl enable xrdp --now
[root@localhost user01]# systemctl enable xrdp --now
Created symlink /etc/systemd/system/multi-user.target.wants/xrdp.service → /usr/lib/systemd/system/xrdp.service.
[root@localhost user01]#
シンボリックリンクが作成されますが、本記事では詳細について割愛します。
再度xrdpサービスの状態を確認します。
■コマンド:
systemctl status xrdp
[root@localhost user01]# systemctl status xrdp
● xrdp.service - xrdp daemon
Loaded: loaded (/usr/lib/systemd/system/xrdp.service; enabled; preset: dis>
Active: active (running) since Tue 2024-05-14 17:05:45 JST; 3s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 3558 (xrdp)
Tasks: 1 (limit: 10759)
Memory: 1.3M
CPU: 15ms
CGroup: /system.slice/xrdp.service
└─3558 /usr/sbin/xrdp --nodaemon
5月 14 17:05:45 localhost.localdomain systemd[1]: Started xrdp daemon.
5月 14 17:05:45 localhost.localdomain xrdp[3558]: [INFO ] starting xrdp with p>
5月 14 17:05:45 localhost.localdomain xrdp[3558]: [INFO ] address [0.0.0.0] po>
5月 14 17:05:45 localhost.localdomain xrdp[3558]: [INFO ] listening to port 33>
5月 14 17:05:45 localhost.localdomain xrdp[3558]: [INFO ] xrdp_listen_pp done
[root@localhost user01]#
「disable」から「enable」へ変わり、Activeの表示も「active (running)」に変わってます。
この状態でxrdpサービスが正常に動作していることが確認できましたので、次の手順でWindowsPCからRDP接続をして確認します。
手順5.Rocky Linux 9からログアウト
xrdpによる接続はローカル含め1ユーザー 1ログインしかできません。そのため、VMware Workstationのコンソール画面でuser01にログインしていると、RDP接続が成功したと同時に切断されるといった形になってしまいます。
RDP接続したと同時に切断されないようにVMware Workstationのコンソール画面でuser01からログアウトします。
以下手順ではuser01のログアウト方法としてGUIとCLIそれぞれを説明します。
GUIでのログアウト方法
以下手順で現在ログインしているユーザーからログアウトを実施します。
1.Rocky LinuxのGUI画面右上の設定箇所を押下し展開
2.「電源オフ/ログアウト」を押下し展開
3.「ログアウト」を押下
実行後、ログイン画面に戻ります。
CLIでのログアウト方法
CLIでログインする場合はプロセスを終了する形でログアウトになります。
そのため、ユーザー「user01」からログアウトする場合はpkillコマンドでuser01のプロセスを終了させます。
-u 以降でユーザーを指定するため、user01からログアウトする場合はuser01を指定します。
■コマンド:pkill -KILL -u user01
[user01@localhost ~]$ pkill -KILL -u user01
上記コマンドを実行後、ログイン画面に戻ります。
手順6.WindowsPCからRocky Linux 9へRDP接続
WindowsPCでRDP接続をするため、「リモートデスクトップ接続」のアプリケーションを起動します。
1.Windowsキーを押下
2.検索窓に「rdp」と入力
3.検索結果に表示される「リモートデスクトップ接続」を押下
リモートデスクトップ接続のアプリケーションが起動するため、以下情報を入力し下部の「接続」を押下します。
「オプションの表示(O)」を押下するとユーザー名等の入力箇所が出ます。
・コンピューター(C):[※Rocky LinuxのIPアドレス]
・ユーザー名:user01
※Rocky LinuxのIPアドレス確認方法は以下記事をご参照いただけますと幸いです。
証明書の問題で接続前に以下画面が出る可能性がありますが、「はい(Y)」を押下し接続します。
正常に接続できるとxrdpのログイン画面が表示されます。
ユーザー名は先のリモートデスクトップ接続の際に入力済みのため、Passwordにuser01のパスワードを入力し「OK」を押下します。
問題なく接続が完了するとuser01のRocky Linux画面がリモートデスクトップ画面に表示されます。
以上でRDP接続の実装は完了です。
お疲れさまでした。
おわりに
本記事ではRocky LinuxへのRDP接続の実装方法を説明いたしました。
遠隔からのアクセス方法が確立できたため、次回はファイルサーバの構築手順をまとめようと思います。
ここまでご拝読いただきありがとうございました。
他にもネットワーク、サーバ関連の記事を投稿しておりますのでご興味がありましたらご閲読いただけますと幸いです。