FreeBSDでXDMCPを使う(Jailで)

何となくXDMCPを使いたかったので試してみた。
ついでにJail環境を最近導入したので、Jail環境にサーバを立ててみる。
Xorgのバージョンは7.3。
以下参考までにjailの設定。

# cat /usr/local/etc/ezjail/testjail
export jail_testjail_hostname="testjail"
export jail_testjail_ip="192.168.1.250"
export jail_testjail_rootdir="/opt/jails/testjail"
export jail_testjail_exec="/bin/sh /etc/rc"
export jail_testjail_mount_enable="YES"
export jail_testjail_devfs_enable="YES"
export jail_testjail_devfs_ruleset="devfsrules_jail"
export jail_testjail_procfs_enable="YES"
export jail_testjail_fdescfs_enable="YES"
export jail_testjail_image=""
export jail_testjail_imagetype=""
export jail_testjail_attachparams=""
export jail_testjail_attachblocking=""
export jail_testjail_forceblocking=""

サーバの設定

今回は192.168.1.250をサーバとする

# portinstall xorg

これでxdmもインストールされる。

xdmの設定

  • 仮想ターミナルの設定(offからonに)
# vi /etc/ttys
〜 略 〜
ttyv8	"/usr/X11R6/bin/xdm -nodaemon"	xterm	on secure
〜 略 〜
  • 待受ポートの設定(0から177に)
# vi /usr/local/lib/X11/xdm/xdm-config
〜 略 〜
DisplayManager.requestPort:	177
〜 略 〜
# vi /usr/local/lib/X11/xdm/Xaccess
〜 略 〜
*					#any host can get a login window
〜 略 〜
  • 設定読み込み

Not Jail環境

# kill -HUP 1

Jail環境(以下をホストで)

# /usr/local/etc/rc.d/ezjail.sh restart
  • xdmとxfsの起動
# xdm &
# xfs &
  • リッスン確認

xdmとxfsがあることを確認。

# sockstat -4l
root     xfs        92775 3  tcp4   192.168.1.250:7100    *:*
root     xdm        92764 4  tcp4   192.168.1.250:60564   *:*
root     xdm        92764 5  udp4   192.168.1.250:177     *:*

クライアントの設定

# xwin -screen 0 1024x768x256 -query 192.168.1.250 -fp tcp/192.168.1.250:7100
  • Macの場合
    1. ターミナルから以下コマンドの実行
$ X -query 192.168.1.250 -fp tcp/192.168.1.250:7100

おぉー、なんかかっこいい。

おまけ

  • SSHでのX11フォワーディング

/etc/hostsに自ホストの設定の必要あり。

    • Jail環境のsshd_config
# vi /etc/ssh/sshd_config
+ X11Forwarding yes
+ X11UseLocalhost no