Debian Lenny にXRDPを導入する | labunixのラボゆにっくす

labunixのラボゆにっくす

Debian [ Lenny | squueze | kfreebsd ] amd64

XRDPはリモートデスクトップ(Terminal Service)と同様に動作します。

mstsc、または、tsclientで接続可能です。



内部的には、RDPからlocalhostのVNCサーバに接続することで、X Windowを操作する仕組みです。



amd64、i386共に同じ設定方法で接続出来ました。



■XRDPサーバの導入



$ apt-cache showpkg xrdp | grep --color vnc4server

$ apt-cache showpkg gnome-session | grep --color metacity



$ sudo apt-get install xrdp gnome-session gnome-terminal

$ sudo /etc/init.d/xrdp restart



■RDPクライアントの導入



$ sudo apt-get install tsclient



■ホームディレクトリに「.vnc/xstartup」を作成、パスワードを設定します。



$ vnc4server && vnc4server -kill :1



■「xstartup」を以下のように編集します。



$ cat .vnc/xstartup | grep -v "^#\|^\$"

/bin/sh /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

xsetroot -solid grey

vncconfig -iconic &

x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

exec gnome-session &



■参照しているVNCサーバを確認します。



$ ls /usr/bin/vncserver -l | cut -c 44-

/usr/bin/vncserver -> /etc/alternatives/vncserver



$ ls /etc/alternatives/vncserver -l | cut -c 44-

/etc/alternatives/vncserver -> /usr/bin/tightvncserver



$ ls /usr/bin/tightvncserver -l | cut -c 47-

/usr/bin/tightvncserver



■XRDPの参照も確認します。



$ ls /etc/xrdp/* | for list in `xargs`;do sudo grep vnc "$list" > /dev/null 2>&1 && echo "$list";done

/etc/xrdp/sesman.ini

/etc/xrdp/starttwm.sh

/etc/xrdp/xrdp.ini



■XRDPのRSAキーを再作成します。



$ sudo /usr/bin/xrdp-keygen xrdp



■待ち受けポートを確認します。



$ netstat -an | grep 3389

$ netstat -an | grep 3350

※待ち受けポートは、「/etc/xrdp/xrdp.ini」で「port=13389」等に変更可能です。


■mstsc/tsclientでの接続を確認します。



■ログを確認します。



$ sudo tail -f /var/log/sesman.log

$ sudo grep "xrdp\|vnc\|sesman" /var/log/syslog



■プロセスIDの格納場所



$ ls /var/run/xrdp/



■接続確認を行います。



リッスンポートは「0.0.0.0:3389」なので、以下の順で確認します。



127.0.0.1で接続出来る⇒localhostで接続出来る⇒IP指定で接続出来る⇒ホスト名で接続出来る



ローカルではtsclientを使用します。

リモートからはWindowsのmstscでも構いません。



■Puttyのsshトンネルに設定します。



トンネル設定を行うと、セキュリティレベルがlowでもssh通信をしてしまうので便利です。

XRDP自体は、RSAキーしか利用しませんが、「ssh-keygen -t dsa」とすれば、

DSAキーでの通信も可能です。



[Windows]

13389 -> localhost:3389



[Linux]

$ sudo ssh -L 13389:localhost:3389 user@remotehost -p 22



■クライアントから接続

mstsc

tsclient



「localhost:33389」で接続すると、sshポートをトンネルして、リモートの3389ポートに接続されます。



ssh通信なので、パケットを見ても暗号化されています。。。

サーバ側のログを見ましょう。