2014年8月8日金曜日

CentOS 6 xrdp を利用したリモートデスクトップ接続

xrdpを利用するとWindows端末からLinuxサーバへリモートデスクトップ接続が可能となります。
もちろんLinuxサーバ側にはGUIの準備が必要ですが、Windows端末側ではVNCクライアントが
不要で標準のリモートデスクトップクライアントで接続できるため大変便利です。

OS: CentOS 6.5 (64-bit)
xrdp: 0.5.0


■前提
SELinux、iptablesはあらかじめ無効化しておく。
[root@centos65 ~]# vi /etc/selinux/config
[root@centos65 ~]# grep disabled /etc/selinux/config
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
[root@centos65 ~]# chkconfig iptables off; chkconfig --list iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@centos65 ~]# chkconfig ip6tables off; chkconfig --list ip6tables
ip6tables       0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@centos65 ~]#
※もちろん、ちゃんと「3389/tcp」のみ解放する設定を行ってもよい。


■EPELリポジトリのインストール
[root@centos65 ~]# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.CgUe03: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]
[root@centos65 ~]#

## yum実行時にEPELリポジトリをデフォルト参照しない設定
[root@centos65 ~]# sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel.repo


■xrdpのインストール
[root@centos65 ~]# yum --enablerepo=epel install xrdp
(中略)
=========================================================================
 Package              Arch       Version             Repository     Size
=========================================================================
Installing:
 xrdp                 x86_64     0.5.0-0.13.el6      epel          240 k
Installing for dependencies:
 tigervnc-server      x86_64     1.1.0-8.el6_5       updates       1.1 M

Transaction Summary
=========================================================================
Install       2 Package(s)
(以下省略)


■日本語キーボード対応
km-e0010411.iniをダウンロードしてシンボリックリンクを作成。
[root@centos65 ~]# cd /etc/xrdp/
[root@centos65 xrdp]# wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini
[root@centos65 xrdp]# mv km-e0010411.ini km-0411.ini
[root@centos65 xrdp]# ln -s km-0411.ini  km-e0010411.ini
[root@centos65 xrdp]# ln -s km-0411.ini  km-e0200411.ini
[root@centos65 xrdp]# ln -s km-0411.ini  km-e0210411.ini


■xrdp起動
[root@centos65 ~]# /etc/init.d/xrdp start
xrdp を起動中:                                             [  OK  ]
xrdp-sesman を起動中:                                      [  OK  ]
[root@centos65 ~]#

## vncserverが連動して自動起動される
[root@centos65 ~]# /etc/init.d/vncserver status
Xvnc (pid 8278 7730 7151 2678 2283) を実行中...
[root@centos65 ~]#
xrdpサービスは、vncserverサービスに依存関係があるようなので、tigervnc-serverもインストールしています。
/etc/sysconfig/vncserversの修正は不要でした。※全行コメントアウトのまま。


■リモートデスクトップ接続
Windows7のRDPクライアントから接続します。バージョンは、6.3.9600です。




なぜか1回目はログインに失敗します。
エラーダイアログのOKボタンをクリックして再度同じようにログインすると成功。

rootでも他ユーザでも2回目はログイン成功でした。
クリップボード経由でテキストデータのコピペは双方向で可能でした。
ただし、Gnome画面のPrintScreenのコピペはできませんでした。


■パフォーマンス
CentOS6.2で検証した時はRDP接続時にCPU使用率が跳ね上がり、重くて現実的ではなかったが、 今回のCentOS6.5ではそのような現象は発生していないようです。
[root@centos65 ~]# ps aux | grep -e xrdp -e PID | grep -v grep
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      2281  0.0  0.0  16372   700 pts/0    S    18:34   0:00 /usr/sbin/xrdp-sessvc 2283 2282
root      2286  0.0  0.0 198780  1200 pts/0    Sl   18:34   0:00 xrdp-chansrv
root      2676  0.0  0.0  16372   696 pts/0    S    18:34   0:00 /usr/sbin/xrdp-sessvc 2678 2677
root      2683  0.0  0.0 198780  1196 pts/0    Sl   18:34   0:00 xrdp-chansrv
root      7149  0.0  0.0  16376   568 pts/0    S    19:44   0:00 /usr/sbin/xrdp-sessvc 7151 7150
root      7153  0.0  0.0 198784  1264 pts/0    Sl   19:45   0:00 xrdp-chansrv
root      7728  0.0  0.0  16376   568 pts/0    S    19:58   0:00 /usr/sbin/xrdp-sessvc 7730 7729
root      7732  0.0  0.0 198784  1264 pts/0    Sl   19:58   0:00 xrdp-chansrv
root      8267  0.3  0.4 269208  8404 pts/0    Sl   20:06   0:04 /usr/sbin/xrdp
root      8271  0.0  0.0 128568  1636 pts/0    S    20:06   0:00 /usr/sbin/xrdp-sesman
root      8276  0.0  0.0  16376   568 pts/0    S    20:06   0:00 /usr/sbin/xrdp-sessvc 8278 8277
root      8282  0.0  0.0 198784  1248 pts/0    Sl   20:06   0:00 xrdp-chansrv
[root@centos65 ~]#


こちらの情報が何かのお役に立てましたら幸いです。サイト継続ご協力のほどお願い致します。m(_ _)m

0 件のコメント:

コメントを投稿