«前の日記(2010-10-09) 最新 次の日記(2010-12-04)» 編集

meta's blog - The Power To Serve

筆者について

FreeBSDを通じてOSSにささかな貢献を。

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 を適切に設定する必要があります。