【CentOS7.7】デスクトップ環境インストール～リモートデスクトップ接続可能迄(最小限インストールから)

# はじめに
WindowsからCentOSのGUI環境に業務でRDP接続するように設定する機会がありました。
今回は、ナレッジとしてこちらを残したいと思います。

# 環境
端末 : Windows 10 Pro
OS: CentOS7.7

```
[root@tspshell01 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@tspshell01 ~]#
```

「最小限のインストール」にてOSインストール

# 前提条件

- 下記設定が完了していること
**・ホスト名/IPアドレス設定**
**・DNS設定**

- 「/etc/yum.repos.d」直下が初期状態であること
※下記が初期状態

```
[root@tspshell01 ~]# ll /etc/yum.repos.d/
合計 32
-rw-r--r--. 1 root root 1664  9月  5  2019 CentOS-Base.repo
-rw-r--r--. 1 root root 1309  9月  5  2019 CentOS-CR.repo
-rw-r--r--. 1 root root  649  9月  5  2019 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  630  9月  5  2019 CentOS-Media.repo
-rw-r--r--. 1 root root 1331  9月  5  2019 CentOS-Sources.repo
-rw-r--r--. 1 root root 6639  9月  5  2019 CentOS-Vault.repo
-rw-r--r--. 1 root root  314  9月  5  2019 CentOS-fasttrack.repo
[root@tspshell01 ~]#
```

- インターネット上に接続できていること


# 手順

手順についてはこちらになります。

 **①ファイアウォールを無効化する(もしくはポートを開放する)**
 **②リポジトリファイルの読み込み**
 **③GNOMEデスクトップのインストール**
 **④epelリポジトリのインストール**
 **⑤リモートデスクトップに必要なパッケージのインストール**
 **⑥動作確認**

では、解説していきます。

## ①ファイアウォールを無効化する(もしくはポートを開放する)

- ファイアウォール無効化/自動起動無効

```
・ファイアウォール停止
systemctl status firewalld
systemctl stop firewalld
systemctl status firewalld

・ファイアウォール無効化
systemctl is-enabled firewalld
systemctl disable firewalld
systemctl is-enabled firewalld
```


- 3389ポート開放(ファイアウォールを停止しない場合)

```
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload
firewall-cmd --list-all
```

## ②リポジトリファイルの読み込み

※リポジトリ(repository)とはファイルの保管場所になります。
「/etc/yum.repos.d」直下にファイルの保管場所へアクセスするための接続先が記載されたファイルが保存されています。

- yumのキャッシュクリア

```
yum clean all
```

- 「/etc/yum.repos.d」直下のファイルの読み込み

```
yum repolist all
```
→「base/7/x86_64」が有効であることを確認

## ③GNOMEデスクトップのインストール

```
yum groupinstall "GNOME Desktop"
```

**※インストール直前に「yes」か「no」を聞かれるので、「y」を実行**

## ④epelリポジトリのインストール

「epelリポジトリ」は「xrdp」のインストールに使用します。

- 「/etc/yum.repos.d」直下にepelリポジトリをインストール

```
yum install epel-release
```

- 「/etc/yum.repos.d」直下に「epel.repo」があることを確認

```
[root@tspshell01 yum.repos.d]# ll /etc/yum.repos.d/
合計 36
-rw-r--r--. 1 root root 1664  9月  5  2019 CentOS-Base.repo
-rw-r--r--. 1 root root  649  9月  5  2019 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  630  9月  5  2019 CentOS-Media.repo
-rw-r--r--. 1 root root 1331  9月  5  2019 CentOS-Sources.repo
-rw-r--r--. 1 root root 6639  9月  5  2019 CentOS-Vault.repo
-rw-r--r--. 1 root root  314  9月  5  2019 CentOS-fasttrack.repo
-rw-r--r--  1 root root 1050 10月  3  2017 epel-testing.repo
-rw-r--r--  1 root root  951 10月  3  2017 epel.repo
[root@tspshell01 yum.repos.d]#
```

- yumのキャッシュクリアを実施

```
yum clean all
```

- 「/etc/yum.repos.d」直下のファイルの読み込み

```
yum repolist all
```

## ⑤リモートデスクトップに必要なパッケージのインストール

- パッケージインストール

```
yum install tigervnc-server
yum install xrdp
```

※「yes」か「no」の選択肢については全て「y」にて実施

- xrdpサービス起動/自動起動

```
・xrdpサービス起動
systemctl status xrdp
systemctl start xrdp
systemctl status xrdp
```
```
・xrdp自動起動
systemctl is-enabled xrdp
systemctl enable xrdp
systemctl is-enabled xrdp
```

## ⑥動作確認

- リモートデスクトップを起動後、IPアドレスを入力&接続  
(「mstsc」にて一発起動可能)

![7.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/c634cbf7-73eb-647b-5747-41d976198b82.jpeg)


- 接続成功した場合、ログイン画面が表示される。
サーバーのユーザー名/パスワードを入力

![8.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/f299b8b5-2a1e-f10f-c547-09ff4d92034f.jpeg)

- ログイン成功した場合は、このような画面が表示される。
![9.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/8beedcca-48b4-dea7-9576-e3167f300c47.jpeg)


# リモートデスクトップができない場合(もしくはログインできない場合)

- セッションの変更
- 画面の色深さ設定

## セッションの変更
※ログイン後に画面が真っ暗で表示されない場合の対処方法になります。

**「Xvnc」→「Xorg」**

- 設定ファイルバックアップ

```
cp -p /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_`date "+%Y%m%d_%H%M%S"`
```

- ファイルバックアップの確認

```
[root@tspshell01 yum.repos.d]# ll /etc/xrdp | grep xrdp
-rw-r--r-- 1 root root  5427  3月 11 19:53 xrdp.ini
-rw-r--r-- 1 root root  5427  3月 11 19:53 xrdp.ini_20200518_223104
-rw-r--r-- 1 root root  3570  3月 11 19:53 xrdp_keyboard.ini
[root@tspshell01 yum.repos.d]#
```

- ファイル内容変更

```
vi /etc/xrdp/xrdp.ini
```
※「vi」の使用方法については割愛します。

**修正前**

```
#[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
```

**修正後**

```
[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
```

→ログイン画面に「Xorg」のみ表示させる設定

- バックアップファイルと比較

```
diff /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_20200518_223104
```

実行結果

```
[root@tspshell01 yum.repos.d]# diff /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_20200518_223104
181,192c181,183
< [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
---
> #[Xorg]
> #name=Xorg
> #lib=libxup.so
196a188,196
> #code=20
>
> [Xvnc]
> name=Xvnc
> lib=libvnc.so
> username=ask
> password=ask
> ip=127.0.0.1
> port=-1
[root@tspshell01 yum.repos.d]#
```
→編集した箇所のみ差異があること

- 「xrdp」サービス再起動

```
systemctl status xrdp
systemctl restart xrdp
systemctl status xrdp
```

- リモートデスクトップ実施

接続できることを確認(sessionが「Xorg」に変更されている)

![10.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/fe82b9ea-82ca-67b3-7c03-459a9341c6d5.jpeg)


##画面の色深さ設定
※ログイン後にGUI画面の表示がおかしい場合の対処方法になります。

-　設定ファイルバックアップ

```
cp -p /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_`date "+%Y%m%d_%H%M%S"`
```

- ファイルバックアップ確認

```
[root@tspshell01 yum.repos.d]# ll /etc/xrdp | grep xrdp
-rw-r--r-- 1 root root  5426  5月 18 22:37 xrdp.ini
-rw-r--r-- 1 root root  5427  3月 11 19:53 xrdp.ini_20200518_223104
-rw-r--r-- 1 root root  5426  5月 18 22:37 xrdp.ini_20200518_224629
-rw-r--r-- 1 root root  5426  5月 18 22:37 xrdp.ini_20200518_224633
-rw-r--r-- 1 root root  3570  3月 11 19:53 xrdp_keyboard.ini
[root@tspshell01 yum.repos.d]#
```

- 設定ファイル変更

```
vi /etc/xrdp/xrdp.ini
```

**修正前**

```
max_bpp=32
```

**修正後**

```
max_bpp=24
```

- バックアップファイルと比較

```
[root@tspshell01 yum.repos.d]# diff /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_202005
18_224633
73c73
< max_bpp=24
---
> max_bpp=32
[root@tspshell01 yum.repos.d]#
```
→編集した箇所のみ差異があること

- 「xrdp」サービス再起動

```
systemctl status xrdp
systemctl restart xrdp
systemctl status xrdp
```

- リモートデスクトップ実施

接続できることを確認

![9.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/7e3df392-21e3-6afc-abcf-fccf2dadeded.jpeg)




# 参考ページ
CentOS7にxrdpを導入しWindowsからリモートデスクトップで接続
https://qiita.com/shinoere/items/35793d9c6155145cb37c

xrdp
https://qiita.com/n-yamanaka/items/653af5cdac63721ff074



# Twitter
主にインフラエンジニアのキャリアハック等について呟いています。**
https://twitter.com/satton6987