3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

Sun Ray Server Software(SRSS)のインストール Part2

Sun Ray Server Software(SRSS)のインストール Part1の続きです。

SunRayServerの構成

SunRayServerの構築マニュアルを見ると、幾つかのネットワーク形態があるようです。

一つは専用のプライベートSunRayネットワーク(既存のネットワークと別にSunRayDTUを配置)、もうひとつは既存のLAN上にSunRayDTUを配置するパターンです。

今回は後者の環境となります。

また、SunRayサーバ自体にDHCP機能を持たすこともできるようですが、今回のネットワークではDHCPはSunRayサーバ自身にも他の機器でも使いません。(静的アドレスで管理します)

SunRayのLAN接続をONにします。(このコマンドは外部DHCPサーバを使用する場合も使います)

# /opt/SUNWut/sbin/utadm -L on

### Turning on Sun Ray LAN connection

NOTE: utrestart must be run before LAN connections will be allowed

余談ですがSunRayのLAN接続をOFFにするには、以下のようにします。

# /opt/SUNWut/sbin/utadm -L off

SunRayの現在のLNA接続設定を確認するには以下のようにします。

# /opt/SUNWut/sbin/utadm -l

LAN connections: On  ←OnかOffかが表示されます。

Sun Ray interconnect framework is not configured

また、SunRayサーバ自身のDHCPサーバを使用する場合はこのようにします。

# /opt/SUNWut/sbin/utadm -A ネットワークアドレス

専用のプライベートSunRayネットワークを使う場合(専用のインターコネクトを構成)は以下のようにします。

# /opt/SUNWut/sbin/utadm -a <インターフェイス名>

これも余談ですが、SunRayのクライアントファームウェアはSunRayサーバに配置しtftpで公開するわけですが、DTUがそこにアクセスするようにするために、DHCPのオプションを使っているようです。

SunRayServerSoftwareを構成には、以下のコマンドを叩きます。

# /opt/SUNWut/sbin/utconfig

Configuration of Sun Ray Core Services Software

This script automates the configuration of the Sun Ray Core Services

software and related software products. Before proceeding, you should

have read the Sun Ray Core Services 4.0 Installation Guide and filled

out the Configuration Worksheet. This script will prompt you for the

values you filled out on the Worksheet. For your convenience, default

values (where applicable) are shown in brackets.

Continue ([y]/n)?       ←スクリプトを続行するかどうか

Enter Sun Ray admin password:  ←管理者パスワード

Re-enter Sun Ray admin password: ←管理者パスワード

Configure Sun Ray Web Administration? ([y]/n)?  ←SunRayWeb管理の構成をするかどうか

Enter Apache Tomcat installation directory [/opt/apache-tomcat]:  ←tomcatへのパス

Enter HTTP port number [1660]:      ←WebサーバポートNo

Enable secure connections? ([y]/n)?   ←HTTPSを有効にするか

Enter HTTPS port number [1661]:     ←HTTPSのポート番号

Enter Tomcat process username [utwww]:  ←Tomcatプロセスのユーザ名

Enable remote server administration? (y/[n])? y  ←リモー管理を有効にするか(有効にしておいた)

Configure Sun Ray Kiosk Mode? (y/[n])? y  ←キオスクモードを構成するか(今回SRWCを使ってWindowsサーバへ接続するので必須)

Enter user prefix [utku]:    ←キオスクモード時のユーザの接頭辞

Enter group [utkiosk]:     ←キオスクモード時のグループ

Enter userID range start [150000]:  ←キオスクモード時のユーザIDの範囲の始まり

Enter number of users [25]: 220  ←キオスクモード時のユーザ数

Configure this server for a failover group? (y/[n])? n  ←フェイルオーバーグループを構成するか(今回はしない)

About to configure the following software products:

Sun Ray Data Store 3.0

Hostname: SunRaySRV3

Sun Ray root entry: o=utdata

Sun Ray root name: utdata

Sun Ray utdata admin password: (not shown)

SRDS 'rootdn': cn=admin,o=utdata

Sun Ray Web Administration hosted at Apache Tomcat/5.5.20

Apache Tomcat installation directory: /opt/apache-tomcat

HTTP port number: 1660

HTTPS port number: 1661

Tomcat process username: utwww

Remote server administration: Enabled

Sun Ray Core Services 4.0

Failover group: no

Sun Ray Kiosk Mode: yes

Sun Ray Kiosk Mode 4.0

User name prefix: utku

Base user ID: 150000

Number of accounts: 220

Kiosk group name: utkiosk

Kiosk group ID: auto

Continue ([y]/n)? y    ←yとすると設定実行

Updating Sun Ray Data Store schema ...

Updating Sun Ray Data Store ACL's ...

Creating Sun Ray Data Store ...

Restarting Sun Ray Data Store ...

Starting Sun Ray Data Store daemon .

Wed Oct 17 14:18 : utdsd starting

Loading Sun Ray Data Store ...

Executing '/usr/bin/ldapadd -p 7012 -D cn=admin,o=utdata' ...

新規エントリ o=utdata を追加

新規エントリ o=v1,o=utdata を追加

新規エントリ utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=desktops,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=users,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=logicalTokens,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=rawTokens,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=multihead,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=container,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=properties,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ cn=utadmin,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=smartCards,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utordername=probeorder,utname=smartCards,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=policy,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=resDefs,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=prefs,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utPrefType=resolution,utname=prefs,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utPrefClass=advisory,utPrefType=resolution,utname=prefs,utname=SunRaySRV3,o=v1,o=utdata を追加

Added 18 new LDAP entries.

Creating Sun Ray Core Services Configuration ...

Adding user account for 'utwww' (ut admin web server user) ...done

Sun Ray Web Administration enabled to start at system boot.

Starting Sun Ray Web Administration...

See /var/opt/SUNWut/log/utwebadmin.log for server logging information.

Unique "/etc/opt/SUNWut/gmSignature" has been generated.

Restarting Sun Ray Data Store ...

Stopping Sun Ray Data Store daemon

Sun Ray Data Store daemon stopped

Starting Sun Ray Data Store daemon .

Wed Oct 17 14:19 : utdsd starting

Adding user admin ...

User(s) added successfully!

Creating new Sun Ray Kiosk Mode configuration ...

Validating new user ids.

Validating new user accounts.

Creating kiosk group utkiosk

Configuring new kiosk user accounts:

............................................................................................................................................................................................................................

220 users configured

***********************************************************

The current policy has been modified. You must restart the

authentication manager to activate the changes.

***********************************************************

Configuration of Sun Ray Core Services has completed. Please check

the log file, /var/adm/log/utconfig.2012_10_17_14:08:36.log, for errors.

構成が終わったらサーバを再起動します。

# sync;sync;sync;reboot

Sun Ray Connector for Windowsの初期設定

Sun Ray Connector for Windowsの初期設定を行います。

# /opt/SUNWuttsc/sbin/uttscadm -c

Creating required LDAP schema ...

新規エントリ utname=remoteclient,utname=SunRaySRV3,o=v1,o=utdata を追加

新規エントリ utname=users,utname=remoteclient,utname=SunRaySRV3,o=v1,o=utdata を追加

Done.

*****************************************************************************

A restart of Sun Ray services is required before the Sun Ray Connector for

Windows Operating Systems is used. Please run :

/opt/SUNWut/sbin/utrestart

Note that this will *NOT* terminate any sessions.

*****************************************************************************

Stopping Sun Ray Connector Proxy..

Starting Sun Ray Connector proxy

以下コマンドでSunRayServerSoftwareを再起動します。

# /opt/SUNWut/sbin/utrestart

システムポリシーの設定

ここまでの状態で、SunRayDTUのconfigで接続先のサーバIPを10.1.5.101にしました。

そうすると、カード挿していなくてもSolarisのログイン画面が表示されました。

実際の運用では、登録されたカードを挿した場合のみシステムを使えるようにするため、SunRay管理ツールからシステムポリシーを変更します。

ブラウザで管理画面(https://10.1.5.101:1661/)へアクセスします。

[詳細]→[システムポリシー]を開きます。

 [カードユーザ]の[アクセス]を[すべてのユーザー]→[登録されているトークンを持つユーザ]に変更します。

 また、[自己登録を許可する]と[ユーザーアカウント認証は必須]、[キオスクモード]の[使用可能]にもチェックを入れます。

 [非カードユーザー]の[アクセス]を[なし]に変更します。

このシステムポリシーの設定の意味ですが、おそらく以下のようになっているんじゃないかと思います。

[カードユーザ]:カードを挿入した場合の動作を指定。

[非カードユーザー]:カードを挿入していない時の動作の指定。

[アクセス]→[なし]:SunRayサーバを使わせない。待機画面のまま。

[アクセス]→[すべてのユーザー]:認証は行わないので誰でもシステムを使わせます。(Everyone的な感じ?)

[アクセス]→[登録されたトークンを持つユーザー]:SunRayサーバに登録されたトークンを持っていたら、システムを使わせます。

[アクセス]→[自己登録を許可する]:トークンの登録をクライアントからでも許可するようにします。

[アクセス]→[ユーザーアカウント認証は必須 ]:多分ですがトークン登録時にUnixユーザの認証を行います。誰でもトークンを登録させないようにするためと思われます。

なお、トークンについてですが、SunRay管理ツールのヘルプにはこう書いていました。

Sun Ray トークンは、セッションとユーザーの関連付けに使用する認証キーです。トークンはトークンタイプと識別子で構成される文字列です。ユーザーが DTU にスマートカード を挿入すると、カードのタイプと識別子がトークンとして使用されます (例: mondex.9998007668077709)。ユーザーがスマートカードを使用しない場合は、トークンタイプは「擬似」となり、DTU の識別子 (MAC アドレス) がトークンとして使用されます (例: pseudo.080020861234)。

つまり、DTUにもトークンがあり、カードを挿していないときはDTUのトークンが使われるということです。これでSunRayのログを見た時に端末のMACアドレスっぽいのが表示されている意味がわかりました。

システムポリシーを変更した場合は、SunRayサーバの管理ツール→[サーバー]から、コールドリスタートをさせる必要があります。

ウォームリスタートとコールドリスタートの違いはヘルプを見ると以下のようです。

・ウォームリスタート: 既存の Sun Ray セッションはそのまま保持されます。軽微な設定変更を行なった場合に、このオプションを使用します。軽微な変更であれば、既存のセッションを終了する必要はありません。

・コールドリスタート: 既存のすべての Sun Ray セッションが終了されます。重要な変更が行われた場合に、このオプションを使用します。

スマートカードトークンの登録(自己登録)

システムポリシーで登録されてトークンしか使えないようにしたので、新しいスマートカードを挿入した時にカードトークンをそのカードを認証マネージャに登録しないといけません。

そのために、utregistというUnixユーザを作成します。(ユーザ名はなんでもよいと思います)

# useradd -g 101 -u 101 -s /bin/sh -d /tmp utregist

# passwd utregist

新しいパスワード:

新しいパスワードを再入力してください:

passwd: utregist のパスワードが変更されました

これで、スマートカードをDTUに挿入すると、「トークンは未登録です」という画面が表示されます。

それで、以下の情報を入力してトークンを登録します。

ユーザの名前:Windowsのユーザ名(この名前がWindowsのログイン画面のユーザ名に渡される)

Please enter user name:登録したUnixユーザ名入力(今回は utregist)

「了解」を押下。

Password:登録したUnixユーザのパスワード入力

これでカードが認証マネージャに登録されました。

ちなみに、スマートカードトークンの登録はサーバ側でもできます。

SunRay管理ツール→[トークン]→リストの上部にある[新規]から登録できますが、トークンの識別子が分かっていないといけません。

トークンの識別子はブランクカードをSunRayDTUに挿入すると出てきますが面倒なので、自己登録したほうが便利かもしれませんね。

キオスクモードの設定

次にキオスクモードの設定を行います。

今回はSunRayDTUからWindowsサーバを利用させることが最終目的なのでキオスクモードは必須です。

(キオスクモードにしないとSun Ray Connector for Windows OSが使えません)

SunRay管理ツールから[詳細]→[キオスクモード]を開き以下のように設定します。

[セッション]:[Sun Ray Connector for Windows OS]

[タイムアウト]: 12000 秒(このタイムアウト時間以上過ぎるとセッションが消えるため、Windowsターミナルサーバ側もログアウトしてしまうようです)

[引数]: -m -l ja:IME -u `/opt/SUNWut/sbin/sunrayuser.sh` `/opt/SUNWut/sbin/card2user.sh`

(引数の意味ですが、-m はフルスクリーン表示、-l は言語設定、-u はWindowsログインウィンドウに渡すユーザ名、-A 24 は24bitカラー表示、-M all はマルチメディア拡張有効、-Etheming はテーマ表示ON、-r sound:highはサウンドON、末尾が接続先IPじゃないかと思われます)

さらに、/opt/SUNWut/sbin/sunrayuser.sh と /opt/SUNWut/sbin/card2user.sh のファイルを作成します。

vi /opt/SUNWut/sbin/sunrayuser.sh

#!/bin/sh

/opt/SUNWut/sbin/utuser -p "$SUN_SUNRAY_TOKEN"|/usr/bin/grep 'User Name'|/usr/bin/awk '{print $4}'

vi /opt/SUNWut/sbin/card2user.sh

#!/bin/sh

PRAM=`/opt/SUNWut/sbin/utuser -p $SUN_SUNRAY_TOKEN | grep 'Other Info' | sed 's/Other Info//g' | sed 's/[ , ,=]//g'`

if [ "$PRAM" = wt01 ] ; then

echo 10.1.5.20

elif [ "$PRAM" = wt02 ] ; then

echo 10.1.5.21

else

echo 10.1.5.25

fi

/opt/SUNWut/sbin/sunrayuser.shはトークン情報からユーザ名を取得するスクリプト、/opt/SUNWut/sbin/card2user.sh は接続するWindowsターミナルサーバを指定するものです。SunRayサーバに登録しているトークンのその他の情報に基いて接続先Windowsサーバを切り替えできるようになっています。詳しくは、Sun Ray Server でのトークン情報に基づくターミナルサーバ切替え時の障害を参照。

上記2つのファイルは実行可能権限を与えてやらないといけません。

# chmod 775 /opt/SUNWut/sbin/sunrayuser.sh

# chmod 775 /opt/SUNWut/sbin/card2user.sh

これで、SunRayDTUにカードを挿入してトークン登録すれば、Windowsにログインできるようになりました。

思った以上に簡単にできました。

ただSunRayのシステムを構築する場合は、マニュアル等をよく読んで、アーキテクチャや構成をよく知ることが必要かと思います。

参考:

Sun Ray Server Software 4.0 管理者マニュアル

Sun Ray Server Software 4.0 インストールと構成マニュアル

Solaris 10 に SRSS をインストールする方法 | だいたいおっけぇ

CentOS 5 の SRS から Windows OS に接続する方法 | だいたいおっけぇ

Sun Ray Connector for Windows Operating Systems 2.0 インストールおよび管理マニュアル

(余談:SunRayの帯域)

SRWC環境で車窓からの風景という比較的画面描画が高いYoutubeの動画をフルスクリーン再生してみました。解像度はSXGAで16bitです。

大体ALP部分(SunRayDTU~SRSS間)が7-9Mbps、RDP部分(SRSS~Windowsターミナルサーバ間)が2-3Mbpsでした。