筆者について
FreeBSDを通じてOSSにささかな貢献を。
- 日本xrdpユーザ会発起人
- xrdp developer
- FreeBSD developer
OSS活動をご支援いただける方を募集しています
2010-10-24 シンクライアント
■ FreeBSDでRDPシンクライアントの作成
FreeBSDでRDPシンクライアントを作成したときのまとめです。
FreeBSDを最小構成でインストール後、X11サーバが使用できる状態にしておきます。
今回はログインマネージャにSLiMを使用します。また、サーバにはRDPで接続するのでrdesktopもインストールします。
# pkg_add -r slim rdesktop
/etc/ttys を下記のように編集します。SLiMの起動方法については/usr/local/etc/rc.d/slim にも解説があります。
-ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure +ttyv8 "/usr/local/bin/slim" xterm on secure
SLiMは大変シンプルなログインマネージャなので $HOME/.xinitrc 以外を参照することはほとんどありません。シンクライアントとして動作させるためには、SLiMからログインしたセッションでrdesktopを自動起動させる必要があります。
rdesktopを起動させるために $HOME/.xinitrc の代わりとなるスクリプトを作成します。下記のファイルを適当な場所に保存します。今回は /usr/local/bin/startrdesktop としました。作成したら実行権を付けておくのを忘れずに。
#!/bin/sh # rdesktop を英字配列、フルスクリーンで起動する。 exec rdesktop -k en-us -f rdp.example.jp
次に /usr/local/etc/slim.conf を変更して、SLiMでログインしたらこのスクリプトが実行されるように変更します。
-login_cmd exec /bin/sh -login ~/.xinitrc %session +login_cmd exec /bin/sh - /usr/local/bin/startrdesktop %session
以上で完成です。init(8)にSIGHUPを送ればSLiMが起動してログイン画面が現れます。SLiMでログインするとRDPクライアントがフルスクリーンで起動しているので、そこからさらにログインすればシンクライアントとして使用することができます。
補足
この設定ではシンクライアントとして使う端末にユーザアカウントが必要です。 rdesktopの起動をrc.localに書くことでユーザアカウントは不要となりますが、サーバやrdesktopをユーザ権限で動かすためにこのような方法を採っています。
実際に運用している環境では、シンクライアント端末のSLiMによる認証をリモートデスクトップ先のアカウントと統合しているので、同じアカウントでSLiMとリモートデスクトップの2回認証することでログイン可能にしています。
SLiMでPAM認証を行うためには /etc/pam.d/slim を適切に設定する必要があります。