こんにちは。Tachanです🌸
先日、別チームの先輩Iさんから、「Windows端末からOCI上に立てたLinuxサーバーにデスクトップ接続した」というお話を伺い、記事にして皆様に共有したいなと思いました。
今回はLinuxサーバーにデスクトップ接続する方法についてご紹介します。
使用するもの
今回使用するGUIのパッケージは「Server with GUI 」、「TigerVNC」、「xrdp」です。
- Server with GUI:LinuxのGUI環境です。isoファイルからOSインストールする際にオプションで選択できたりします。Server with GUIのパッケージ名は「graphical-server-environment」です。
- TigerVNC:RFBプロトコル(GUI操作でリモートアクセスする際に使用される通信プロトコル)を使用して、 コンピューターを遠隔操作するときに使うソフトです。TigerVNCのパッケージ名は「tigervnc-server」になります。
- xrdp:Windowsのリモートデスクトップ接続で使用される機能をLinux向けに提供しているサーバです。
作成手順① インスタンスとユーザーの作成
Linuxインスタンスを作成します。
詳しい作成方法はこちらの記事をご参照ください。
インスタンスが作成できましたらSSHでアクセスし、
リモートデスクトップ実行時にログインするユーザーを作成します。
[opc@instancename ~]$ sudo su -
[root@instancename ~]# useradd -m test
[root@instancename ~]# passwd test
Changing password for user test.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
作成手順② SELinuxの停止
SELinuxが有効化になっているとxrdpがうまく起動しない場合があります。
まずは今の設定を確認し、disabled以外の場合はconfigで設定変更をします。
[root@instancename ~]# getenforce
Enforcing
[root@instancename ~]# sudo vi /etc/selinux/config
[root@instancename ~]# cat /etc/selinux/config
"/etc/selinux/config" 14L, 543C# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are prootected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
作成手順③ デスクトップ環境のインストール
サーバーにGUI環境をインストールしていきます。
[root@instancename ~]# sudo yum groupinstall -y graphical-server-environment
[root@instancename ~]# yum install -y tigervnc-server
この後にインストールするxrdpはEPELから提供されているため、EPELリポジトリを有効にしておきます。
[root@instancename ~]# yum install -y https://dl.fedoraproject.org/pub/epel/epel -release-
latest-7.noarch.rpm
話が逸れますが、EPELとは、Linuxディストリビューション向けのリポジトリです。
EPELはCentOS公式のリポジトリとは違い、サードパーティー製になります。
EPELなどのサードパーティーがパッケージを提供することで、
CentOS 標準のyumリポジトリでは提供されていないパッケージをインストールすることができます。
ただし、CentOSサポート対象外になるため、利用は自己責任となります。
作成手順④ xrdpのインストールと起動
xrdpをインストールして起動します。
[root@instancename ~]# yum install -y xrdp
[root@instancename ~]# systemctl start xrdp
[root@instancename ~]# systemctl enable xrdp
作成手順⑤-1 通信制御設定
リモートデスクトップ接続させるために、通信制御設定を行います。
1.ポートがリッスン状態か確認
[root@instancename ~]# netstat -antup | grep xrdp
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 20802/xrdp
tcp 0 0 127.0.0.1:3350 0.0.0.0:* LISTEN 20801/xrdp-sesman
2.Firewalldにリモートデスクトップ接続のポートを追加
ポートの追加設定をします。
[root@instancename ~]# firewall-cmd --zone=public --add-port=3389/tcp --permanent
success
[root@instancename ~]# firewall-cmd --reload
success
※OCI上のNSGの設定も適宜変更する必要があります。
作成手順⑤-2 リモートデスクトップのポートを変更したい場合
リモートデスクトップ接続する際に3389番ポートを使いたくない方向けです。
リモートデスクトップはデフォルトで3389番ポートを使って接続されます。
インスタンスがパブリックに公開されている場合、「IPアドレス」、「ユーザー名」、「パスワード」を知っている人なら誰でもログインすることができてしまいます。
そのため、使用するポートは変更しておきましょう。
1.管理者権限でxrdpの設定ファイルを開く
[opc@instancename ~]# sudo su -
[root@instancename ~]# cd /etc/xrdp/
[root@instancename xrdp]# ll
total 336
(省略)
-rw-r--r--. 1 root root 6063 Jan 2 00:27 xrdp.ini
-rw-r--r--. 1 root root 3693 Jan 2 00:27 xrdp_keyboard.ini
[root@instancename xrdp]# vi xrdp.ini
2.xrdp.ini の[Globals]内にあるポートを変更
[Globals]
(省略)
; Examples:
; port=3389
; port=unix://./tmp/xrdp.socket
; port=tcp://.:3389 127.0.0.1:3389
; port=tcp://:3389 *:3389
; port=tcp://:3389 192.168.1.1:3389
; port=tcp6://.:3389 ::1:3389
; port=tcp6://:3389 *:3389
; port=tcp6://{}:3389 {FC00:0:0:0:0:0:0:1}:3389
; port=vsock://:
#port=3389
port=13389 (ここでは13389としました)
; 'port' above should be connected to with vsock instead of tcp
; use this only with number alone in port above
(省略)
3.firewalldに設定変更したポートを追加
作成手順⑤-1の2と同じ手順です。
作成手順⑤-1で3389を追加している場合は削除してください。
[root@instancename xrdp]# firewall-cmd --zone=public --remove-port=3389/tcp --permanent
4.xrdpサービスを再起動
[root@instancename xrdp]# systemctl restart xrdp.service
※OCI上のNSGの設定も適宜変更する必要があります。
作成手順⑥ 接続
Windowsのリモートデスクトップ接続でアクセスします。
※作成手順⑤-2を実施した場合、IPアドレスの後ろに「:」でポート番号をつけます。
例) 123.456.789.012:13389
接続するとインストールしたxrdpの画面が出てきますので、 作成手順①で作成したユーザー名とパスワードを入力します。
以上でリモートデスクトップにアクセスすることができました。
クラウド上にインスタンスを立てたけどGUIが欲しい、そんな方に本記事が少しでもお役に立てれば幸いです。
最後までお読みいただきありがとうございました。
今回の記事は以上になりますが、
弊社では、他にも検証記事やクラウド移行に関する記事を作成しています。
OCIと社内ネットワークをVPN接続してみた
https://cloudsolution.terilogy.com/blog/oci-vpn-20201225
OCI上でWindows DHCPサーバを動かしてみた
https://cloudsolution.terilogy.com/blog/oci-windows-dhcp-server
また、弊社では、Oracle Cloudの構築やOCVSを使ったVMWareの移行サービス、
他にも設定ミスや各種ガイドライン・コンプライアンスに違反がないか継続的にチェックするCSPMサービスの取り扱いもございますので、こちらからぜひ詳細をご覧ください。
Oracle Cloud:https://cloudsolution.terilogy.com/oci
OCVS:https://cloudsolution.terilogy.com/oci/ocvs
CSPMサービス:https://cloudsolution.terilogy.com/corestack/cspm
- カテゴリ:
- OCIで作ってみた