*xrdp [#z05446e5] [[xrdp>+http://www.xrdp.org/]] Linuxでリモートデスクトップを待ち受けるソフトウェア。 実際は、ローカルでVNCやconsole接続を行い、それらのパケットをRDPに変換(カプセリング?)する事で、 WindowsのRDPクライアントでも操作出来るようにする物。 その為、xrdp単体でLinuxをリモートGUIで操作はできず、何らかのリモートソフトと組み合わせる事が必須になる。 ~ *構築環境 [#bbe8febd] 今回検証した環境はこちら -openSUSE Leap 42.1 ~ *構築 [#l9e166c9] &size(16){&font(b){0. 注意事項};}; xrdpを動かすには最低限、Xvnc(TigerVNC)かX11rdp(後述)が必須になる。 今回は、構築が一番楽なXvnc+xrdpの構築メモを記述。 ~ &size(16){&font(b){1. パッケージインストール};}; -openSUSE 既にビルドされているパッケージからインストールする場合、 openSUSEのオフィシャルに用意されているympファイルを使う。 ympファイルをダウンロードしたら、そのままWebブラウザからyastを起動させるか、 OCICLIコマンドを使って個別にインポートすればxrdpをインストールする事が出来る。 [[Open Source remo desktop protocol (RDP) server>+https://software.opensuse.org/package/xrdp]] ~ -CentOS / Debian xrdpユーザ会で、CentOS用とDebian用のビルドツールが用意されている。 また、yumとかapt-getでも用意されているので、用途に合った方を使えばOK CentOS版 [[X11RDP-o-Matic>+https://xrdp.vmeta.jp/X11RDP-o-Matic]] Debian版 [[X11RDP-RH-Matic>+https://xrdp.vmeta.jp/X11RDP-RH-Matic]] [CentOS] # yum install xrdp [Debian] # apt-get install xrdp ~ &size(16){&font(b){2. ビルドインストール};}; 通常はパッケージで入れれば良いが、別途特殊オプションをenableにする場合はソースから入れる。 また、パッケージで入れた際にキーボードマップが日本語106で認識しない場合には、 ソースからマップファイルをコピーすれば認識する様になる。 ~ ビルドでのインストールは未検証なのでコマンドの羅列のみ。 [[オフィシャルのドキュメント>+http://www.xrdp.org/index.php?option=com_content&view=article&id=32:building-xrdp-in-opensuse-13x&catid=2:documents&Itemid=7]]に詳しく書いてあるので、そっち参照を推奨。 # cd /usr/local/src # git clone "https://github.com/neutrinolabs/xrdp.git" # cd xrdp # ./bootstrap # ./configure --prefix=/usr/local/xrdp --enable-fuse # make # make install # /usr/local/xrdp/bin/xrdp-keygen xrdp auto # cp /usr/local/xrdp/etc/pam.d/* /etc/pam.d/ ~ &size(16){&font(b){3. キーボードマップの更新};}; xrdpのログイン画面で、&font(b){[Shift]+[2]};を押した時に&color(#ff0000){&font(b){[@]};};が出力されるなら&color(#ff0000){必須}; # cd /usr/local/src # git clone "https://github.com/neutrinolabs/xrdp.git" # cd xrdp/instfiles # ls *.ini | grep -v e0 | xargs -i cp {} /etc/xrdp/ # cd /etc/xrdp # ln -s km-0411.ini km-e0010411.ini # ln -s km-0411.ini km-e0200411.ini # ln -s km-0411.ini km-e0210411.ini # ln -s km-0411.ini km-e0220411.ini ~ &size(16){&font(b){4. WindowManagerの変更};}; デフォルトではRDP接続した時、WMがgnomeになるのでお好みに合わせて変更する。 実際には、xrdpのセッションを張った時に実行されるstartwm.shスクリプトの中にWMが定義されているので、 使いたいWMに合わせて入れ替える事になる。 # vi /etc/xrdp/startwm.sh ===== ・gnome SESSIONS="gnome-session blackbox fluxbox startxfce4 startkde xterm" ----- ・kde SESSIONS="startkde gnome-session blackbox fluxbox startxfce4 xterm" ----- ・xterm SESSIONS="xterm gnome-session blackbox fluxbox startxfce4 startkde" ~ &size(16){&font(b){5. 証明書認証};}; デフォルトでは証明書も入っていないので、必要ならば証明書も作成する ※xrdpがver0.8.1以上でないと使えないので注意 # cd /etc/xrdp # openssl req -x509 -newkey rsa:2048 -nodes -keyout xrdp.key -out xrdp.cert -days 1095 # vi /etc/xrdp/xrdp.ini ----- >> # security layer can be 'tls', 'rdp' or 'negotiate' >> # for client compatible layer >> security_layer=tls >> # X.509 certificate and private key >> # openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365 >> certificate=/etc/xrdp/xrdp.key >> key_file=/etc/xrdp/xrdp.cert >> certificate=/etc/xrdp/xrdp.cert >> key_file=/etc/xrdp/xrdp.key ----- # systemctl restart xrdp